准备工作:
一、开启ROOT权限。
ROOT方法:下载一键ROOT之类的软件,根据操作步骤进行,就可以获取ROOT权限了。
二、安装RE文件管理器。
清理系统自带应用
一、用RE打开系统根目录下的system/app,进行精简系统自带应用,注意,要对照一些总结可删减程序的文件,以免删错了导致系统故障。
二、根目录:preload目录下,可能会有系统的预装应用,不用的也可以全部删掉。
移动APK到system/app 目录
一、移动apk:用RE管理器把要安装的apk软件移动到/system/app 目录下。
在操作前,将/system/app 目录挂载为可读写;
注意软件名不要有中文 、空格及其他特殊字符等;
如果无法移动,显示空间不足时,可以先移动到data/app/下,再移动到/system/app;
二、修改apk权限:对移动进来的apk软件更改权限,即改为:用户权限为 读+写,分组权限为 读,其他权限为 读。
三、提取 .so文件:用RE提取apk软件中/lib/目录下的所有 .so文件,将其移动到/system/lib中。
点击apk软件,用RE查看文件内容,即可找到 ,so文件。
四、修改 .so文件权限:方法同上。
五、重启手机。在此过程中,可能加载的时间稍长点,请耐心等待即可。
完成以上操作后,手机的可用内存空间就会增大一些,同时,/system的剩余空间也可以有效的利用,机器运行时的速度也会有所提升了。
注意:在以后的恢复出厂设置中,还原的系统就会变为现在修改过的系统了。
操作截图如下:
㈡ app可以被反编译到什么程度
Android APK中的Java代码可以被反编译到什么程度主要看APK的加密程度。
第一种情况:无混淆无加密无加壳。
直接利用Dex2jar和JD-GUI可把源码从APK里抠出来,代码逻辑清晰,基本上做到可复用,只是资源文件的引用需要计算一下。
第二种情况:混淆。
通常是利用Proguard做的防护。因为是对jar做的不可逆混淆(除非有mapping),因此不能还原成原来的代码。但是代码结构,代码逻辑一致,只要花长时间对代码进行梳理一样可找准核心代码,解密方法跟第一种一致。
第三种情况:加密。
这里以DexGuard为例。对于这种代码加密的方法,在程序运行中必定会进行解密,只要抽出它解密的逻辑便可。PS:我自己做过DexGuard的解密,如果用Dex2jar反编译看的话逻辑是不对的,一定要从Smali代码看。后来发现网上已经有人做了。
解密的脚本:A look inside Dexguard
第四种情况:加壳。
这种情况跟第三种类似。无论你怎么加壳,运行的时候必定是Dalvik可识别的Odex代码,建议直接在内存里mp出来。这里推荐Xpose的ZjDroid。
加固可以在一定程度上保护自己核心代码算法,提高破解/盗版/二次打包的难度,缓解代码注入/动态调试/内存注入攻击等。
目前市面上有很多第三方加固的平台, 如果新应用发布前需要扫描或者加固的话,可以先试试免费的,例如腾讯御安全,建议自己先去扫描测试下。