【问题标题】:java.io.FileNotFoundException: /cache/recovery/uncrypt_file: open failed: EACCES (Permission denied)java.io.FileNotFoundException:/cache/recovery/uncrypt_file:打开失败:EACCES(权限被拒绝)
【发布时间】:2023-03-03 02:48:01
【问题描述】:

我对这个错误感到困惑:

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

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

标签: android android-source ota


【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      • 2021-05-16
      • 1970-01-01
      • 2013-07-06
      • 2016-10-15
      • 2021-05-15
      相关资源
      最近更新 更多