我正在尝试使用proguard来删除所有日志:我在proguard-project.txt中输入了以下行:
-assumenosideeffects class android.util.Log { *; }
Run Code Online (Sandbox Code Playgroud)
我的project.properties看起来像这样:
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
Run Code Online (Sandbox Code Playgroud)
尽管如此,日志仍然会在我的申请中显示出来.我到底错在了什么?
如何在Android应用程序中保护字符串?
ProGuard:它不保证字符串? proguard是否可以模糊静态字符串常量?
加密字符串:对于加密我需要在某些地方存储加密密钥(字符串)同样的问题,如何保护加密密钥.
从Web服务获取字符串:但是这个解决方案对我来说不起作用,因为app没有Internet要求/访问权限/需求/业务决策.
NDK:写入包含字符串的c文件并使用JNI返回,但我发现Hex-Ray反编译可以反编译*.so文件 https://www.hex-rays.com/index.shtml
================================================
C中的功能
jstring Java_com_abc_xyz_getString(JNIEnv* env, jobject javaThis) {
return (*env)->NewStringUTF(env, "Hello String");
}
Run Code Online (Sandbox Code Playgroud)
====================================
请建议在Android SDK/NDK中保护字符串的最佳选项.
我有Android应用程序,它具有硬编码(静态字符串常量)凭据(用户/通行证),用于通过SMTP发送电子邮件.
问题是.apk中的.dex文件可以很容易地进行逆向工程,每个人都可以看到我的密码.
有没有办法如何保护这些凭据,而我仍然可以在我的课程中使用它们?