我一直在尝试在android中制作自定义ROM.所以,到目前为止,我已经能够成功地在Nexus 4中进行更改和闪存.但我的主要目的是为我的ROM提供Ota更新.现在我可以使用adb sideload使用update.zip更新设备,现在我想通过系统应用程序自动完成.为此,我制作了一个系统应用程序,可以从我的服务器下载update.zip.我没有任何进展通过此链接: Android开发RecoverySystem.installPackage()无法写入/ cache/recovery /命令权限被拒绝
我在Asynctask中使用了以下代码来安装更新:
File update = new File("/data/update.zip");
try {
RecoverySystem.installPackage(mContext, update);
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
W/RecoverySystem( 3900): !!! REBOOTING TO INSTALL /data/update.zip !!!
W/System.err( 3900): java.io.FileNotFoundException: /cache/recovery/command: open failed: ENOENT (No such file or directory)
W/System.err( 3900): at libcore.io.IoBridge.open(IoBridge.java:456)
W/System.err( 3900): at java.io.FileOutputStream.<init>(FileOutputStream.java:87)
W/System.err( 3900): at java.io.FileOutputStream.<init>(FileOutputStream.java:72)
W/System.err( 3900): at java.io.FileWriter.<init>(FileWriter.java:42)
W/System.err( 3900): at android.os.RecoverySystem.bootCommand(RecoverySystem.java:454)
W/com.test.ota( 3966): type=1400 audit(0.0:8): avc: denied { write } for comm=4173796E635461736B202331 name="/" dev="mmcblk0p22" ino=2 scontext=u:r:system_app:s0 tcontext=u:object_r:cache_file:s0 …Run Code Online (Sandbox Code Playgroud)