Android 4.0.4系统在线升级实现过程中的一些问题总结

转载 2013年12月02日 01:29:00
最近有个项目需要自己实现系统升级功能,于是调查了一番,发现网上资料不少,但是比较混乱,花了好一番功夫才实现了这个功能,这里记录一下这个过程中遇到的问题,希望对以后需要自己做系统升级的兄弟姐妹们有所帮助。

       总的来说,代码是比较简单的,如果你只是要升级,那么调用RecoverySystem.installPackage()这个函数就行了。如果还想验证升级包的正确性,那就要在RecoverySystem.installPackage()之前调用一下RecoverySystem.verifyPackage()这个函数。

       那么问题在哪里呢?

  • 升级包的位置。升级包需要放在/cache目录下;
  • 权限。需要在AndroidManifest.xml里添加

<uses-permission android:name="android.permission.ACCESS_CACHE_FILESYSTEM" />和
<uses-permission android:name="android.permission.REBOOT" />权限,

网上有人说需要添加<uses-permission android:name="android.permission.DELETE_CACHE_FILES" />,这其实是不需要的;

  • 不需要android:sharedUserId="android.uid.system"。系统升级不需要system用户权限,而且加上这个之后,你会发现无法访问/mnt/sdcard下的文件了,即使加上   

    <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />,
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />和
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />权限

  • 需要系统签名。apk出来后,需要系统签名。要签名一个没有签名过的APK,可以使用一个叫作Auto-sign的工具。Auto-sign工具实际运行的是一个叫做Sign.bat的批处理命令。用文本编辑器打开这个批处理文件,我们可以发现,实现签名功能的命令主要是这一行命令:
        java -jar signapk.jar testkey.x509.pem testkey.pk8 update.apk update_signed.apk
        这条命令的意义是:通过signapk.jar这个可执行jar包,以“testkey.x509.pem”这个公钥文件和“testkey.pk8”这个私钥文件对“update.apk”进行签名,签名后的文件保存为“update_signed.apk”。关于签名的详细介绍,请参见《Android签名机制

 其他一些可供参考的资源:

相关文章推荐

DELL安装WIN7+ubuntu16.04双系统过程中的一些问题记录

WIN7+ubuntu双系统安装过程中出现的问题解决过程记录

AS新手在使用Android Studio的过程中有必要弄明白的一些问题

很多使用Eclipse的Android程序员不知道代码重构的快捷键、如何在运行时调试、一个Workspace一大堆工程......,我想即使转到Android Studio也并不见得比Eclipse顺...
  • xhmj12
  • xhmj12
  • 2016-09-02 14:58
  • 1071

开发Android过程中遇到的一些问题(持续整理)

一、从数据库中读取数据并显示列表时,有两种数据绑定方式,一种是SimpleAdaper方式绑定ListView,一种是采用SimpleCursorAdapter方式绑定,采用SimpleAdaper方...
  • qtone
  • qtone
  • 2011-07-06 22:07
  • 574

android开发过程中遇到的一些问题(包括自定义ProgressBar, Intent, Animation, ListView, RadioButton)

问题如下: 1.在自定义的ListView中,在一个Item中同时添加图片、文字、单选按钮时很困难。 最简单的解决办法(网上摘录): 把单选按钮用图片表示即可,然后使用SimpleAdapter...

Android Studio使用过程中遇到的一些问题及解决方案

由于之前的项目太复杂,主要是考虑到JNI在AS上编译不方便,还要考虑到项目进度,最近才从Eclipse转到AS,主要方案是AS中只引用jar包和so,JNI的编译还是在Eclipse中进行。这过程中遇...

Android Studio使用过程中遇到的一些问题及解决方案

转自:http://zmywly8866.github.io/2015/11/11/android-studio-problem-solution-and-tips.html 说明:这是直接...

Android Studio安装过程中出现一些问题的解决方法(都已解决)

Android Studio安装过程中出现一些问题的解决方法(都已解决)        大家都知道Google已经宣布将会很快停止对Eclipse Android开发工具的一切支持,转向Andr...

Android 手机适配过程中遇到的一些问题

手机适配,看到这几个字,无论作为android 新手还是有几年开发经验的你,相信内心都会有稍微的一丝悸动。是的,兼容性问题一直是困扰着我们开发者的一个世纪星难题,即使一个有丰富开发经验的开发者,遇到这...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)