您的位置:首页 > 移动开发 > Android开发

Android系统OTA升级API

2016-11-11 15:23 323 查看
实现远程下载zip格式OTA包到本地后,调用以下接口即可进行升级:

RecoverySystem.installPackage(this, new File(Environment.getExternalStorageDirectory().toString()+ "/test.zip"));

注意事项:

a、接口并没有校验zip包,所以应用方面需要先校验zip包是存在并且ok的;否则会再recovery界面报错;

b、需要添加的权限:

 
<uses-permission android:name="android.permission.DELETE_CACHE_FILES" />
 
<uses-permission android:name="android.permission.ACCESS_CACHE_FILESYSTEM" />
 
<uses-permission android:name="android.permission.REBOOT" />

c、报错处理:

FileNotFoundException:/cache/recovery/command (Permission denied)

这是由于普通应用没有权限对/cache/recovery进行操作

有三种方式可以实现对cache分区的读写

1.shareUserId加上android.system.uid,和楼上所说的一样,副作用是不能再访问sdcard
添加方式:

(1)AndroidManifest.xml添加android:sharedUserId="android.uid.system"

(2)Android.mk添加LOCAL_CERTIFICATE := platform(实际就是对应用进行系统秘钥签名)

2.添加android.permission.ACCESS_CACHE_FILESYSTEM权限,该权限的描述是signatureOrSystem,也就是签名(Android.mk添加LOCAL_CERTIFICATE := platform),或者以不签名的方式放在/system/app目录。

3.通过root来访问
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: