java.io.FileNotFoundException:/cache/recovery/uncrypt_file:打开失败:EACCES(权限被拒绝)

Posted

技术标签:

【中文标题】java.io.FileNotFoundException:/cache/recovery/uncrypt_file:打开失败:EACCES(权限被拒绝)【英文标题】:java.io.FileNotFoundException: /cache/recovery/uncrypt_file: open failed: EACCES (Permission denied) 【发布时间】:2017-08-13 06:12:41 【问题描述】:

我对这个错误感到困惑:

当我使用这个方法时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);

【问题讨论】:

你的应用安装文件夹是什么? 那条路径一开始就不存在。那么你期待什么呢? ,and my ota path was in sdcard。然后告诉确切的路径。 我在AOSP中编译了这个otaUpdateAPK,并把它放在/system/app @Murf 我的update.zip路径是/sdcard/update.zip,其中"/sdcard/update.zip".getCanonicaLpath()显示的确切路径是/storage/media/0/update.zip@greenapps 【参考方案1】:

由于您的默认应用程序安装在文件夹 /system/app 文件夹中,因此无法正常工作。你应该把它移到/system/priv-app

【讨论】:

【参考方案2】:

当我将应用程序移动到文件夹 /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)

【讨论】:

以上是关于java.io.FileNotFoundException:/cache/recovery/uncrypt_file:打开失败:EACCES(权限被拒绝)的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中解码 jpeg