这儿涉及到两个问题:odex和第三方制做的Gapps救砖包
买来一个android设备,没有root前都是这样子的:
只要不是大陆的android设备基本还会搭载google提供的一系列android手机的应用,你们会叫它Gapps,GMS哪些的。这一批应用包含了表面的从gmail到youtube到playservice到背后的公共用途的软件包,以及好多framework和本地代码动态运行库及其它内容。
其实其中大部份可执行代码都以dex这些可以由dalvik这个java虚拟机执行的的方式存在,具体的说,是以odex的方式存在。
dalvik在运行dex之前,须要做一系列验证,确保dex里头的代码是符合规范,是能安全执行的,dalvik做完检测后,将dex做一些处理(例如调整,加校准位等),就弄成了odex。实际上在dalvik里头运行的是odex。
所以,即将开售的设备的外置应用程序,都是以***.apk加上同名的***.odex存在的。
由于这些机制,把一对apk/odex放在另一台不同(具体)机型的设备里是无法运行的。
而google不容许包括CM在内的第三方rom里外置Gapps。Gapps是收费的私有软件。
所以,目前想到的办法是利用smali等开源工具做deodex,将odex转化成可以通用的dex。这样重新打包了Gapps后,就能作为救砖包塞到别的设备中
———————————–
google会不会对gapps进行升级?
其实是的,一部份的升级会通过playstore进行,例如更新playstore本身,装一个googleplayservice(这个apk实际上是一个供第三方应用程序的API合辑,有了它能够在第三方应用中使用googlemaps的矢量地图,通过google+登录等项目)
另外一部份则要通过设备的OTA做,由于这个更新实在太大了,同一个手机,从android4.0升级到android4.1时,可能每一个Gapps的文件都须要替换,并且android安装应用程序的机制说究竟只能改变apk文件,但它动不了framework手机如何使用谷歌搜索功能,library,所以这种东西的更新须要利用OTA等通过bootloader许可直接更改system分区的手段
在第三方打包好的gapps里能够发觉,gapps有好多好多的版本
我认为刷gapps的原则是手机如何使用谷歌搜索功能,首先gapps要适配设备当前android的大版本,给4.1用的gapps就不应当刷到4.0系统里,使用intel处理器的尤其要注意,这个gapps是不是给x86设备的,Z24x0/27×0只能有限度地翻译arm代码,把arm设备的gapps给x86设备用,可能会造成系统根本没法启动;之后越新打包下来的gapps问题可能会越少。
暂无评论内容