我正在修改安卓源代码(AOSP),创建一个名为
然而,当我尝试通过代码使用
我的文件权限如下:
/sdcard/myfile
的文件。当我通过adb shell
执行cat /sdcard/myfile
时,该文件被正确创建并可见。(该文件是由应用框架层的PackageManagerService
创建的)然而,当我尝试通过代码使用
new FileReader(myfile)
访问该文件,我会得到以下异常:java.io.FileNotFoundException: /sdcard/myfile (Permission denied)
我的文件权限如下:
----rwxr-x system sdcard_rw 344 2013-03-15 08:39 myfile
我可能做错了什么?我已经通过记录我要访问的文件名并使用cat
命令来检查文件名是否正确。
更新:
下面是完整的堆栈跟踪:
W/System.err( 67): java.io.FileNotFoundException: /sdcard/myfile (Permission denied)
W/System.err( 67): at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method)
W/System.err( 67): at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:232)
W/System.err( 67): at java.io.FileInputStream.<init>(FileInputStream.java:80)
W/System.err( 67): at java.io.FileInputStream.<init>(FileInputStream.java:132)
W/System.err( 67): at java.io.FileReader.<init>(FileReader.java:66)
W/System.err( 67): at org.csrdu.apex.policy.ApexPackagePolicy.getPolicyReader(ApexPackagePolicy.java:224)
W/System.err( 67): at org.csrdu.apex.policy.ApexPackagePolicy.loadPoliciesForPackage(ApexPackagePolicy.java:82)
W/System.err( 67): at org.csrdu.apex.AccessManager.checkExtendedPermissionByPackage(AccessManager.java:56)
W/System.err( 67): at com.android.server.PackageManagerService.checkUidPermission(PackageManagerService.java:1703)
W/System.err( 67): at com.android.server.am.ActivityManagerService.checkComponentPermission(ActivityManagerService.java:4096)
W/System.err( 67): at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:1960)
W/System.err( 67): at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:2516)
W/System.err( 67): at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:2081)
W/System.err( 67): at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:142)
W/System.err( 67): at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1467)
W/System.err( 67): at android.os.Binder.execTransact(Binder.java:320)
W/System.err( 67): at dalvik.system.NativeStart.run(Native Method)
adb shell
正确访问它。 @cwhsu提供了日志,但我认为只有第一行是相关的。 :( - recluzePackageManagerService
没有清单文件,我不知道该把它们放在哪里。 - recluze