为什么Android系统应用更新不是让新apk替换进入/system分区

如题所述

  这里涉及到两个问题:odex和第三方制作的Gapps刷机包

  买来一个android设备,没有root前都是这样子的:

  只要不是内地的android设备基本都会搭载google提供的一系列android手机的应用,大家会叫它Gapps,GMS什么的。这一批应用包含了表面的从gmail到youtube到play service到背后的公共用途的软件包,以及很多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进行升级?

  显然是的,一部分的升级会通过play store进行,比如更新play store本身,装一个google play service(这个apk实际上是一个供第三方应用程序的API合集,有了它才能在第三方应用中使用google maps的矢量地图,通过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/27x0只能有限度地翻译arm代码,把arm设备的gapps给x86设备用,可能会导致系统根本无法启动;然后越新打包出来的gapps问题可能会越少。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-27
华为C8817E刷机包 CrDroid RC1/diyroms【注意事项】注意:4/crdroidandroid【Crdroid部分功能点介绍】1/s/1c0wCLk0C8817E安卓流畅刷机包_木子C8817E ROM刷机包大全华为C8817E刷机包 CrDroid RC1.0 安卓5.1.1 归属和T9 增强版 日期:2015-...线刷宝ROOT安全版ROM包,是基于官方包,内置ROOT权限的手机ROM。 ROM特色:开机自...C8817E华为C8817E是华为C8817L的升级版,支持电信4G,处理器由高通MSM8926四核处理器升级为62位的MSM8916四核处理器,摄像头升级为800万像素,5.0英寸显示屏升级为720P,本栏目提供华为c8817e刷机包下载!C8817E刷机教程华为C8817E刷机包 EMUI3.0稳定版 动画 时间运营DIY 双排网速日期:2016-06-14 版本:4.4 大小:553 MBROM刷机包介绍: 基于官方包EMUI3.0_B382稳定版版本,完整的ROM制作 完美ROOT 使用超级用户为授权管理 干净效率高 加入状态栏时间自定义位置 居中 居左 居右......本地下载卡刷工具华为 C8817E(电信4G) 精简优化 Root权限 屏幕助手 来电闪光日期:2016-04-20 版本:4.4.4 大小:697 MBROM介绍: 添加完美Root权限, 添加高级电源管理快速重启手机 添加屏幕助手功能,桌面单手操作,代替屏幕底部三按键 添加来电闪关灯,电话短信通知,闪光提示......本地下载卡刷工具华为C8817E刷机包 官方B382 完美ROOT 精简优化 简约实用 省电日期:2016-01-10 版本:4.4.4 大小:660.5 MB基于官方最新C8817E B382解包制作 添加完美root权限 cust分区完美挂载 删除桌面残留无用图标 对桌面图标进行重新排布 去除多余无用软件,整体性能提升 保......本地下载卡刷工具华为C8817E EMUI3.0 最新382 精简优化 完美ROOT 稳定省电日期:2015-12-11 版本:4.4.2 大小:623 MB基于官方最新B382固件解包制作 大量精简官方自带无用垃圾程序 精简系统无用lib库,运行更快 加入BusyBox指令集,高级用户需要 加入完整ROOT权限功能,自定义......本地下载卡刷工具华为C8817E刷机包 CrDroid RC1.0 安卓5.1.1 归属和T9 增强版日期:2015-09-23 版本:5.1.1 大小:289.5 MB适合机型:华为c8817d/g620s/cherry/C8817E/G621-TL00/G620S-UL00/G620S-L01/Che1-CL20/Che1-CL10/Che1-L04,请解锁BL后用第三方recovery刷入,部分机器由于rec......本地下载卡刷工具华为C8817E 官方B260精简优化刷机包 优化GPS Root权限V1.6日期:2015-06-12 版本:4.4.4 大小:472 MB1.根据华为C8817EV100R001C92B260官方底包提取文件制作, 2.对官方内置的无用应用进行了适度精简, 3.内置广告屏蔽补丁,索尼显像引擎,摄像优化等等日常补丁......本地下载卡刷工具华为C8817E刷机包 基于B263 安全优化版 线刷宝线刷rom日期:2015-05-26 版本:4.4.4 大小:854.4 MBROM刷机包简介: 线刷宝一键刷机救砖教程 ROOT安全版的ROM包有什么特点? 线刷宝ROOT安全版ROM包,是基于官方包,内置ROOT权限的手机ROM。 ROM特色:开机自......本地下载卡刷工具华为C8817E刷机包 基于B263 ROOT安全版 线刷宝线刷rom日期:2015-05-26 版本:4.4.4 大小:856.9 MBROM刷机包简介: 线刷宝一键刷机救砖教程 ROOT安全版的ROM包有什么特点? 线刷宝ROOT安全版ROM包,是基于官方包,内置ROOT权限的手机ROM。 ROM特色:开机自......本地下载卡刷工具华为C8817E 官方原生风格 适度精简 内置权限刷机包日期:2015-05-01 版本:4.4 大小:449 MB1.根据官方的底包提取文件制作 2.对官方内置的无用应用进行了适度精简。 3.内置广告屏蔽补丁,索尼显像引擎等等日常补丁 4.添加超级管理权限,方便部分同学对....
第2个回答  2017-10-27
、要腾 /system 区主要替换系统字体Android字体文件存放 /system/fonts 目录自带字体替换字体往往非甚至十几、二十M腾空间没办替换二、思路/system 区东西删除应用程序系统自带应用程序比Gmail, Calendar, Talk, Email, Alarm等都存放 /system/app 目录些程序让挪窝移别移哪呢刚才说系统自带程序(包括些修改版ROM内置第三程序)都 /system/app 目录用户安装程序都 /data/app 目录做Apps2SD用户则 /system/sd/app 目录或者 /sd-ext/app 目录(CM4前者CM5CM6者)让些系统自带程序移用户目录吧比 /sd-ext/app 存储卡空间着呢移呢三、移系统自带Calculator程序例步骤:用Root explorer打 /system/app 目录目录程序都眼能看懂名字命名找Calculator.apk文件点击框选择Install安装确认安装安装完Root explorer删除Calculator.apk(先确认已经 mount as r/w )搞定步骤简单吧再 /sd-ext/app 目录看看已经 com.android.calculator2.apk 文件呢移程序所数据都四、注意事项建议移些用程序些用东西要移所谓用与用都相言指系统调用数少系统重要性比 launcher 程序我建议移我Gmail, Gtalk狂两程序我建议移些需要经程序却移比Maps比Alarm甚至Calendar等些关手机根本使用程序比PhoneContacts等建议移至于些纯粹娱乐性质程序胆移吧比Vpnservices比YouTube比Music(听歌狂移)(全文完)转载请标注本文址谢谢
第3个回答  2017-10-28
安卓的系统备份在很多场合下可能会用到,下面这个python的脚本,可以用来备份整个的data分区:将所有data分区的文件和目录打包到
data.zip,并生成recovery的专用edify脚本到update-script.sh。当然,简单的修改下脚本的备份路径就可以备份
system分区了,如果再加上几行代码,就可以备份boot,recovery,uboot等等分区,不过这要根据不同的分区来写不同的备份代码。

如何运行:
先要有root权限,另外,该脚本的运行依赖于python-for-android。

然后要将该脚本打包到apk里,或者在adb shell上通过命令行的方式执行。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网