如何混淆 Jar 或 AAR 文件
How to Obfuscated Jar or AAR files
有人可以帮助我,混淆或给我例子吗?
我创建了一个 .aar
文件和 .jar
文件,并放置了 getter 和 setter 的 class,如果他们访问它就会产生价值.
但是需要把隐藏的值放在上面,别人不会看到它的值是什么。
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;
}
}
如果我把我的图书馆
交给其他开发者,这个class必须hide/obfuscated
package com.example.test;
public class privateClass {
String getStringExample()
{
return "TEST RESULT";
}
}
注意:我也尝试使用混淆器,检查库但他们仍然可以看到我的私有 class,我尝试使用接口并扩展 class 但仍然一样,
这是我的混淆器示例:
-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);
}
请拯救我的一天。希望你能帮助我。
提前致谢。
您可以将您的私有 classes/interfaces 移动到其他包,例如将您的 privateClass
放入 内部 包 package com.example.your.library.internal;
以与您的 public classes/interfaces 区分开来。
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 *
来 NOT 混淆内部包。
有人可以帮助我,混淆或给我例子吗?
我创建了一个 .aar
文件和 .jar
文件,并放置了 getter 和 setter 的 class,如果他们访问它就会产生价值.
但是需要把隐藏的值放在上面,别人不会看到它的值是什么。
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;
}
}
如果我把我的图书馆
交给其他开发者,这个class必须hide/obfuscated package com.example.test;
public class privateClass {
String getStringExample()
{
return "TEST RESULT";
}
}
注意:我也尝试使用混淆器,检查库但他们仍然可以看到我的私有 class,我尝试使用接口并扩展 class 但仍然一样,
这是我的混淆器示例:
-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);
}
请拯救我的一天。希望你能帮助我。 提前致谢。
您可以将您的私有 classes/interfaces 移动到其他包,例如将您的 privateClass
放入 内部 包 package com.example.your.library.internal;
以与您的 public classes/interfaces 区分开来。
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 *
来 NOT 混淆内部包。