1. SharedPreferences漏洞, 无法避免,所以不要在里面存储敏感信息
2. 数据存储检测,content://com.starcor.launcherInfo/deviceInfo",这样的串,可以放在字符串资源中编译加密,或者加密存储在配置文件中,或者放到数据库中
3. "http://apkinfo.voole.com/apk-upload-log.do", 这样的串,和上一个一样加密
com/voole/logsdk/localservice/LocalService:openFileInput(Ljava/lang/String;)Ljava/io/File,这样的警告,如果不是敏感信息可以不用理会,否则只能使用加密文件方式操作
4. "http://127.0.0.1:5656/exception",这样的信息,某些部分,也应该放到字符串资源中进行编译加密
5. ((TelephonyManager)paramContext.getSystemService("phone")).getDeviceId();这种提示说获取设备敏感信息窃取用户隐私的警告,不须理会
6. ProGuard只能保护代码,不能保护字符串资源。如果要保护字符串资源,需要购买使用google的DexGuard工具
微信团队给了一个工具,可以保护字符串资源:https://github.com/shwenzhang/AndResGuard/blob/master/README.zh-cn.md
用法:java -jar andresguard.jar input.apk
7. 日志打印过多,泄露信息。这个只能修改源码,调试阶段输出日志,Release下减少日志输出,可以如下修改:
// http://stackoverflow.com/questions/7085644/how-to-check-if-apk-is-signed-or-debug-build
boolean isDebuggable = ( 0 != ( getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE ) );
if (isDebuggable )
Log.i(xxxxx);
2. 数据存储检测,content://com.starcor.launcherInfo/deviceInfo",这样的串,可以放在字符串资源中编译加密,或者加密存储在配置文件中,或者放到数据库中
3. "http://apkinfo.voole.com/apk-upload-log.do", 这样的串,和上一个一样加密
com/voole/logsdk/localservice/LocalService:openFileInput(Ljava/lang/String;)Ljava/io/File,这样的警告,如果不是敏感信息可以不用理会,否则只能使用加密文件方式操作
4. "http://127.0.0.1:5656/exception",这样的信息,某些部分,也应该放到字符串资源中进行编译加密
5. ((TelephonyManager)paramContext.getSystemService("phone")).getDeviceId();这种提示说获取设备敏感信息窃取用户隐私的警告,不须理会
6. ProGuard只能保护代码,不能保护字符串资源。如果要保护字符串资源,需要购买使用google的DexGuard工具
微信团队给了一个工具,可以保护字符串资源:https://github.com/shwenzhang/AndResGuard/blob/master/README.zh-cn.md
用法:java -jar andresguard.jar input.apk
7. 日志打印过多,泄露信息。这个只能修改源码,调试阶段输出日志,Release下减少日志输出,可以如下修改:
// http://stackoverflow.com/questions/7085644/how-to-check-if-apk-is-signed-or-debug-build
boolean isDebuggable = ( 0 != ( getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE ) );
if (isDebuggable )
Log.i(xxxxx);