接上一篇 https://www.znds.com/tv-1198276-1-1.html ,上一篇写了如何进fasboot,本来中间应该更新写几篇如何利用fastboot如何刷写固件的教程,这几天为了hdc2100k能自由安装软件,花了不少时间,这盒子自己的固件对所有软件进行了签名认证,只有签名正确的apk才能正确安装,因为时间问题,今天暂时简单写一篇如何修改原厂固件可以自由安装软件的教程。
需要软件:
dex转jar软件
dex2jar : https://github.com/pxb1988/dex2jar/releases
jar逆向java代码软件
jd-gui.exe (带IDE)
luyten-0.5.4.exe(带IDE)
cfr-0.151.jar(不带IDE)
时间原因上面几个软件就不详细介绍了,自己百度。
先将/system/framework/services.jar 拷贝到自己电脑上,并改掉后缀名services.zip,解压后会有一个目录META-INF,和一个文件classes.dex,
我们将classes.dex放到dex2jar程序目录,执行cmd指令,.\d2j-dex2jar.bat .\classes.dex,目录下会生成classes-dex2jar.jar。
我们直接把classes-dex2jar.jar放到 jd-gui.exe, luyten-0.5.4.exe中一种,就可以看到java代码,或者使用cfr-0.151.jar,执行cmd指令java -jar cfr-0.151.jar classes-dex2jar.jar --outputdir myOutdir,在myOutdir在目录下就会产生java代码。
建议使用cfr-0.151.jar我们直接可以用文件编辑器打开代码,文本编辑器直接打开myOutdir目录下services\com\android\server\pm\PackageManagerService.java文件找到函数vertifyOperatorCert,这个函数就是验证apk签名的,我们只需要让这个函数一直返回true就可以了。
下面开始修改,我们将之前生成的classes.dex再次生成smial代码,执行cmd指令,.\d2j-dex2smali.bat .\classes.dex,在程序目录下就会产生classes-smali目录,同样文本编辑器打开classes-smali目录下services\com\android\server\pm\PackageManagerService.smali文件,找到函数vertifyOperatorCert,修改如图,这里有一定的语法,如果仔细了解的话,自己百度吧、对应位置改为 const/4 v8, 1
这里给出了public key的位置,但我对安卓也不是很熟,理论上把这个key修改成通用应该也是可以的,但我不知道public key具体是什么,如果有人知道的话,请在下面留言告诉我、
修改完成之后重新将smali转成dex, 执行cmd指令,.\d2j-smali.bat myOutdir,目录下就会重新生成一个out.dex文件,最后只需要将out.dex改名为classes.dex重新放回services.zip,最后将services.zip后缀名jar,重新放回/system/framework/下,记得修改权限。
重启机器,完工。。。。。测试
还有几个问题没有搞定,adbd和console进程开机启动会被杀掉,自带的loading主界面里面的软件管理里面不显示第三方安装软件,后期搞定后再具体更新吧、
如果你的版本跟我一致,直接下载附件
services.rar
(1.5 MB, 下载次数: 94, 售价: 1 金币)
|