Android系统OTA升级API

实现远程下载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来访问







  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值