首页
社区
课程
招聘
[求助]odex优化后启动失败
2016-4-20 09:05 3453

[求助]odex优化后启动失败

2016-4-20 09:05
3453
我自己的一部三星手机,在这之前我已经能把boot.img,system.img反编译后打包能刷入手机,并让手机正常运行。
之后我打算把手机内的system/framework or app都导出来反编译,重打包为jar和apk。然后我再通过手机本身的root权限用以下脚本进行odex化。重打包的时候除jar,所有apk都进行了重新的签名,用的是自己的签名。最后,还将service.jar内的PackageManagerService.smali中的verifySignaturesLP函数的实现给修改掉了。

odex化脚本:
#!/system/bin/sh
F_SYSTEM_FRAMEWORK=/sdcard/myframe/framework_out
F_SYSTEM_APP=/sdcard/myframe/app_out
F_SYSTEM_PRIVAPP=/sdcard/myframe/priv-app_out

F_MY_FRAMEWORK=/sdcard/myframe/framework
F_MY_APP=/sdcard/myframe/app
F_MY_PRIVAPP=/sdcard/myframe/priv-app


if [ ! -d $F_SYSTEM_FRAMEWORK ];then
		#echo "$F_SYSTEM_FRAMEWORK not found!"
		#exit 1
		mkdir $F_SYSTEM_FRAMEWORK
fi
if [ ! -d $F_SYSTEM_APP ];then
		#echo "$F_SYSTEM_APP not found!"
		#exit 1
		mkdir $F_SYSTEM_APP
fi
if [ ! -d $F_SYSTEM_PRIVAPP ];then
		#echo "$F_SYSTEM_PRIVAPP not found!"
		#exit 1
		mkdir $F_SYSTEM_PRIVAPP
fi

BOOTCLASSPATH="/system/framework/core.jar:/system/framework/conscrypt.jar:/system/framework/okhttp.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/frameworkframework.jar:/system/framework/framework2.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/webviewchromium.jar:/system/framework/sec_edm.jar:/system/framework/timakeystore.jar:/system/framework/seccamera.jar:/system/framework/scrollpause.jar:/system/framework/stayrotation.jar:/system/framework/commonimsinterface.jar:/system/framework/smartfaceservice.jar:/system/framework/secocsp.jar:/system/framework/simageis.jar:/system/framework/qcmediaplayer.jar:/system/framework/WfdCommon.jar:/system/framework/oem-services.jar:/system/framework/org.codeaurora.Performance.jar"


for file_a in ${F_MY_FRAMEWORK}/*.jar; do
		base_name=${file_a##*/}
		odex_name=${base_name%.*}".odex"
		jarpath=${F_MY_FRAMEWORK}/$base_name
		odexpath=${F_MY_FRAMEWORK}/$odex_name
		dexopt-wrapper $jarpath $odexpath $BOOTCLASSPATH
		cat $odexpath > $F_SYSTEM_FRAMEWORK/$odex_name
		rm -rf $odexpath
done

for file_a in ${F_MY_APP}/*.apk; do
		base_name=${file_a##*/}
		odex_name=${base_name%.*}".odex"
		jarpath=${F_MY_APP}/$base_name
		odexpath=${F_MY_APP}/$odex_name
		dexopt-wrapper $jarpath $odexpath $BOOTCLASSPATH
		cat $odexpath > $F_SYSTEM_APP/$odex_name
		rm -rf $odexpath
done


for file_a in ${F_MY_PRIVAPP}/*.apk; do
		base_name=${file_a##*/}
		odex_name=${base_name%.*}".odex"
		jarpath=${F_MY_PRIVAPP}/$base_name
		odexpath=${F_MY_PRIVAPP}/$odex_name
		dexopt-wrapper $jarpath $odexpath $BOOTCLASSPATH
		cat $odexpath > $F_SYSTEM_PRIVAPP/$odex_name
		rm -rf $odexpath
done

优化后的odex导出手机,然后再重新打包到system.img内,并touch时间保持跟原来的时间一致。
最后的结果,我刷到手机后运行到welcome界面等十几秒又重启了,然后我进CWM内恢复出厂设置,并想格式化/system结果提示格式化出错,并且也不能正常挂载/system了。
请教各位大神,是什么原因或哪个环节可能出现问题?

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回