LuckSiege / LuckSiege/PictureSelector
手机安卓14,targetSdkVersion 33,使用图片选择功能,选择部分文件访问模式,选择完图片之后,下一步,跳转到App应用信息页,查看权限已经给与了,返回提示我 读取内存卡权限被拒绝,再次调用,又让我进行授权,授权完之后还是提示 读取内存卡权限被拒绝,麻烦大佬帮忙看下啥问题
- Dominant language
- Java
- Stars
- 13.6k
- Forks
- 3.1k
- PR merge metrics
- No merged PRs in 30d
Description
## Current use version?
#### 当前使用的版本是多少?
``` 3.11.2
``` 3.11.2
## Will this problem occur in demo?
#### Demo能否复现这问题?
``` 没有出现
``` 我这边把问题项目的清单文件配置全部检查了一下,都有了,但是在写的一个简单demo里面,配置完,使用正常
## Describe the problem or provide an error log?
#### 描述问题或提供错误log?
``` 我这边只做了简单的调用
PictureSelector.create(this)
.openGallery(SelectMimeType.ofImage())
.setSelectorUIStyle(PictureSelectorStyle())
.setImageEngine(GlideEngine.createGlideEngine())
.forResult(object : OnResultCallbackListener {
override fun onResult(result: java.util.ArrayList) {
}
override fun onCancel() {
}
})
``` 抓取到的日志:
2024-09-27 09:59:22.551 2466-9927 AppOps system_server E Bad call made by uid 10158. Package "cn.xxx.xx" does not belong to uid 10437.
2024-09-27 09:59:22.551 2466-9927 AppOps system_server E Cannot check Operation
java.lang.SecurityException: Specified package "cn.xxx.xx" under uid 10437 but it is not
at com.android.server.appop.AppOpsService.verifyAndGetBypass(AppOpsService.java:3945)
at com.android.server.appop.AppOpsService.verifyAndGetBypass(AppOpsService.java:3802)
at com.android.server.appop.AppOpsService.verifyAndGetBypass(AppOpsService.java:3794)
at com.android.server.appop.AppOpsService.checkOperationUnchecked(AppOpsService.java:2453)
at com.android.server.appop.AppOpsService.checkOperationImpl(AppOpsService.java:2436)
at com.android.server.appop.AppOpsService.-$$Nest$mcheckOperationImpl(AppOpsService.java:0)
at com.android.server.appop.AppOpsService$CheckOpsDelegateDispatcher.$r8$lambda$fx57Sum-uA3sXo7NCFwrI3iq4WM(AppOpsService.java:0)
at com.android.server.appop.AppOpsService$CheckOpsDelegateDispatcher$$ExternalSyntheticLambda10.apply(R8$$SyntheticClass:0)
at com.android.server.policy.AppOpsPolicy.checkOperation(AppOpsPolicy.java:221)
at com.android.server.appop.AppOpsService$CheckOpsDelegateDispatcher.checkOperation(AppOpsService.java:6527)
at com.android.server.appop.AppOpsService.checkOperation(AppOpsService.java:2421)
at com.android.internal.app.IAppOpsService$Stub.onTransact(IAppOpsService.java:457)
at android.os.Binder.execTransactInternal(Binder.java:1366)
at android.os.Binder.execTransact(Binder.java:1310)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the PictureSelector.create(...).openGallery(SelectMimeType.ofImage()) entry point and reproduce on Android 14 with targetSdkVersion 33 using the reported partial-file access flow. Compare the failing project with the demo, then trace the permission check associated with the AppOps package/UID SecurityException. Done means the reported flow completes without a false permission-denied result or repeated authorization prompt.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100