Как запутать файлы Jar или AAR - PullRequest
0 голосов
/ 22 февраля 2019

Может ли кто-нибудь помочь мне, обфусцировать или привести пример для этого?

Я создал файл .aar и файл .jar и поместил класс getter и setter, который даст значение, если онидоступ к нему.

но нужно поставить скрытые значения, чтобы кто-то не увидел, что это за значение.

     package com.example.test;
     public class MyClass  extends  privateClass{
            String testing;
            public MyClass() {
              this.testing = getStringExample();
            }
            public String getTesting() {
                return testing;
            }
            public void setTesting(String testing) {
                this.testing = testing;
            }
     }

и этот класс должен быть скрыт / скрытдругие разработчики, если я дам свою библиотеку

    package com.example.test;

    public class privateClass {
        String getStringExample()
        {
             return "TEST RESULT";
        }
    }

Примечание: я тоже пытался установить proguard и проверить библиотеку, но все же они могут видеть мой закрытый класс, я пытался использовать интерфейс и расширяет класс, новсе тот же,

вот мой пример с охранником:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontwarn ccom.example.test.R*
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class
-keepclassmembers class com.example.test.** { *; }
-keep class com.example.eyefixdata.** {
    void set*(***);
    void set*(int, ***);
    boolean is*();
    boolean is*(int);
    *** get*();
    *** get*(int);
}

Пожалуйста, спасите мой день.надеюсь, ты поможешь мне.Заранее спасибо.

1 Ответ

0 голосов
/ 22 февраля 2019

Вы можете переместить свои частные классы / интерфейсы в другие пакеты, например, поместите ваш privateClass во внутренний пакет package com.example.your.library.internal;, чтобы отличить его от ваших открытых классов / интерфейсов.


package com.example.your.library.internal;

public class privateClass {
    String getStringExample()
    {
        return "TEST RESULT";
    }
}

И добавьте нижнюю строку в вашу конфигурацию Proguard

-keep public class com.example.your.library.* { public *; }

Обратите внимание, что вы должны использовать single wild char * to NOT запутывать внутренние пакеты.

...