Menu

#648 proguard 5.3.3 large progect apply mapping not working

v5.3.3
closed-rejected
5
2017-06-12
2017-06-06
No

hello,
I used apply mapping in proguard rule,

first add useuniqueclassmembernames in rule ,assemble gen 20046_mapping.txt then i applymapping use 20046_mapping.txt

-useuniqueclassmembernames
-applymapping  20046_mapping.txt
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
-optimizationpasses 5
-allowaccessmodification
-dontpreverify

# The remainder of this file is identical to the non-optimized version
# of the Proguard configuration file (except that the other file has
# flags to turn off optimization).

-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose

-keepattributes *Annotation*
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService

then start new assemble

: com.google.inject.spi.TypeConverterBinding: method 'java.lang.Object getSource()' is not being kept as 'getSource', but remapped to 'a'
Warning: com.google.inject.spi.TypeListenerBinding: method 'java.lang.Object getSource()' is not being kept as 'a', but remapped to 'getSource'
Warning: com.google.inject.spi.TypeListenerBinding: method 'java.lang.Object getSource()' is not being kept as 'getSource', but remapped to 'a'
e: method 'rx.Observable just(java.lang.Object)' is not being kept as 'v', but remapped to 'dz'
Warning: rx.Observable: method 'rx.Observable just(java.lang.Object)' is not being kept as 'dz', but remapped to 'a'
Warning: rx.Observable: method 'rx.Observable just(java.lang.Object)' is not being kept as 'a', but remapped to 'b'
Warning: rx.Observable: method 'rx.Observable just(java.lang.Object)' is not being kept as 'b', but remapped to 'a'
Warning: rx.Observable: method 'rx.Observable just(java.lang.Object)' is not being kept as 'a', but remapped to 'dA'

sample project is ok,but my project to large,and classes number 5w+

i read usage from http://proguard.sourceforge.net/manual/troubleshooting.html#mappingconflict1 but not work
thanks

Discussion

  • helloproguard

    helloproguard - 2017-06-06

    apply mapping find this

    Warning: rx.Observable: method 'rx.Observable just(java.lang.Object)' is not being kept as 'v', but remapped to 'dz'
    Warning: rx.Observable: method 'rx.Observable just(java.lang.Object)' is not being kept as 'dz', but remapped to 'a'
    Warning: rx.Observable: method 'rx.Observable just(java.lang.Object)' is not being kept as 'a', but remapped to 'b'
    Warning: rx.Observable: method 'rx.Observable just(java.lang.Object)' is not being kept as 'b', but remapped to 'a'
    Warning: rx.Observable: method 'rx.Observable just(java.lang.Object)' is not being kept as 'a', but remapped to 'dA'
    

    28583:28583:rx.Observable just(java.lang.Object):1583:1583 -> dC
    23583:23583:rx.Observable just(java.lang.Object):1583:1583 -> dA

     
  • Eric Lafortune

    Eric Lafortune - 2017-06-11

    The option -applymappping tries to apply the given obfuscation mapping to the processed code. However, if the class hierarchy has changed too much, it may become impossible to apply all specified names, e.g. if classes start implementing different interfaces. In this case, the optimization step itself may change the code a lot, e.g. by merging classes.

    It may be possible to improve the results by specifying -useuniqueclassmembernames both in the initial obfuscation pass (with -printmapping) and in the second obfuscation pass (with -applymapping).

     
  • Eric Lafortune

    Eric Lafortune - 2017-06-11
    • status: open --> closed-rejected
     
  • helloproguard

    helloproguard - 2017-06-12
     

    Last edit: helloproguard 2017-09-01

Log in to post a comment.