需求如下:
android下的system分区下的文件全部经过系统签名认证,包含动态库,可执行文件及系统apk应用,整个一块整体,这些文件必须一次性全部升级才可使用,否则将因为签名及不可修改之特性导致系统应用没法升级。束个system.im镜像的系统升级首先是风险高,ROM出问题将会导致整机成为废铁一块,而且无论是ip或是cable下载的时间将会很多,比较断电或者flash分区坏掉都有可能出一些问题。
解决方案:
通过研究android系统,发现有一个很简洁并且基本上没风险的解决方案,下次简要说明一下如何做的
1、系统应用基本上都是放在 /system/app 下面,一般工厂直接烧写system.img进去即可
2、对于有问题的应用重新开发,对于如下的东东进行修改:
修改androidmainfest.xml中的版本号:
android:versionCode:主要是用于版本升级所用,是INT类型的,第一个版本定义为1,以后递增,这样只要判断该值就能确定是否需要升级,该值不显示给用户。这里必须将其版本改为比系统版本高1即可
利用与原有的系统应用同样的签名制作apk
3、重新安装应用
利用adb shell登录盒子,可利用pm命令进行强制安装,此时应用将会安装在 /data/app下面,重启机器后将会打开此应用
pm install: installs a package to the system. Options:
-r: reinstall an exisiting app, keeping its data.
pm install -R PATH
缺点:
1、只会多占用一些flash空间,即每个对应需要升级的系统apk优化到/data/data目录下的可执行dex文件