这让我对这个错误:
感到困惑java.io.FileNotFoundException:/ cache / recovery / uncrypt_file:open failed:EACCES(Permission denied)
当我使用此方法RecoverySystem.installPackage()
时,我的ota路径位于 sdcard 。我的Android版本是6.0.1,源代码RecoverySystem.installPackage()
如下:
public static void installPackage(Context context, File packageFile)
throws IOException {
String filename = packageFile.getCanonicalPath();
FileWrite uncryptFile=new FileWriter(UNCRYPT_FILE);
try{
uncryptFile.write(filename+"\n");
}finally{
uncryptFile.close();
}
Log.w(TAG, "!!! REBOOTING TO INSTALL " + filename + " !!!");
if(filename.startWith("/data/")){
filename="@/cache/recovery/block.map";
}
final String filenameArg = "--update_package=" + filename;
final String localeArg = "--locale=" + Locale.getDefault().toString();
bootCommand(context, filenameArg, localeArg);
}
答案 0 :(得分:2)
由于您的默认应用安装在文件夹/system/app
文件夹中,因此无效。您应该将其移至/system/priv-app
。
答案 1 :(得分:0)
当我在文件夹/ system / priv-app中移动应用程序时,我有同样的问题。 我正在编写的应用程序只是一个启动我的服务/ onCreate的活动。我在manifest.xml中设置==> android.permission.INTERNET“/ WRITE_EXTERNAL_STORAGE”/ REBOOT / ACCESS_CACHE_FILESYSTEM / DELETE_CACHE_FILES。
W/System.err( 1744): java.io.FileNotFoundException: /cache/recovery/command: open failed: EACCES (Permission denie
W/System.err( 1744): at libcore.io.IoBridge.open(IoBridge.java:429)
W/System.err( 1744): at java.io.FileOutputStream.<init>(FileOutputStream.java:88)
W/System.err( 1744): at java.io.FileOutputStream.<init>(FileOutputStream.java:73)
W/System.err( 1744): at java.io.FileWriter.<init>(FileWriter.java:42)
W/System.err( 1744): at android.os.RecoverySystem.bootCommand(RecoverySystem.java:408)
W/System.err( 1744): at android.os.RecoverySystem.installPackage(RecoverySystem.java:337)
W/System.err( 1744): at com.lcupdate.UsbUpdateService.rebootToInstall(UsbUpdateService.java:46)
W/System.err( 1744): at com.lcupdate.UsbUpdateService.checkZipExist(UsbUpdateService.java:58)
W/System.err( 1744): at com.lcupdate.UsbUpdateService.onCreate(UsbUpdateService.java:74)
W/System.err( 1744): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2578)
W/System.err( 1744): at android.app.ActivityThread.access$1800(ActivityThread.java:144)
W/System.err( 1744): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1288)
W/System.err( 1744): at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err( 1744): at android.os.Looper.loop(Looper.java:136)
W/System.err( 1744): at android.app.ActivityThread.main(ActivityThread.java:5120)
W/System.err( 1744): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 1744): at java.lang.reflect.Method.invoke(Method.java:515)
W/System.err( 1744): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
W/System.err( 1744): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
W/System.err( 1744): at dalvik.system.NativeStart.main(Native Method)