Android系统OTA升级API

实现远程下载zip格式OTA包到本地后,调用以下接口即可进行升级:

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


注意事项:

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

b、需要添加的权限:

 
 
 

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来访问







你可能感兴趣的:(android,app开发)