-
Notifications
You must be signed in to change notification settings - Fork 536
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
各位遇到过对自己的内部存储空间没有访问权限的情况吗? #743
Comments
这个日志的格式、来源是什么 ls命令没有-z参数 执行ls、chmod命令的进程是什么 |
@AndroidInternal 有-Z参数,-Z用来查看SEAndroid的文件的SEContext tag |
执行命令的应该是一个新的执行shell命令的单独的process吧,没办法直接在app所在进程执行shell命令。 |
还有就是,这里面的“packageName”不是真正的包名,不知道是上传上来就是这样,还是你脱敏处理了。 |
https://happybevis.github.io/2018/05/02/The-Magic-Selinux-Restore-Rule/ 这篇文章讲到了一个大概由于用户升级导致的selinux权限变更 |
我们这边有几十台线上的用户手机每天报几万条这个crash: SQLiteCantOpenDatabaseException |
收集崩溃log的代码
` |
/** This is a convenience method. An invocation of the form exec是新起一个单独的进程 |
这个不会影响吧,子进程和父进程权限一样的。另外Java File API返回的结果也和一致 |
https://www.sqlite.org/src/info/6c4c2b7dbadedac3 看到这个提交sqlite曾经改过umask相关,会导致一些问题 是否你的进程也误修改过umask |
我也遇到这个问题了,请问楼主问题解决了吗? |
没有,你遇到的是什么情况,有什么想法吗? |
遇到的情况是一样的,就是创建数据库的时候报没有权限,然后也试着卸载应用,再重装也没用。创建其他文件也是一直没有权限。这个用户之前使用app是正常的,只是再一次卸载重装后就出现了这个问题,我怀疑是那次卸载内部存储文件夹没有被删除,再次重装,文件夹的权限就不匹配了。目前来看应用内是无法解决的,只能让这个用户root一下,清理这个文件夹了。 |
感谢分享,很有价值的信息!你本地无法复现,但是联系上用户了是么,这是如何做到的,毕竟你们的App都不能用了,难道是邮件联系的么? 可以分享下这个用户的机型和系统版本么? 让用户root一下清理文件夹这种骚操作应该无法指望用户能做到吧? 根据我搜集的日志,这种情况下外部存储还是可以使用的,getExternalFileDir的目录有权限,所以之前想是否可以整体切换到外存,这种方案应该是需要做hook. |
另外,我突然想到,如果情况如你所说,是上次卸载没有删除文件夹,那么再安装再卸载,确保这次卸载成功,这个问题不就应该解决了么? |
我也遇到了这个问题,我猜是因为权限变了,所以卸载的时候也没有权限清理目录了 |
线上问题,线下无法复现:App对自己的internal storage data目录没有访问权限:
这个是我们的线上log:
filePath: /data/user/0/packageName/databases/app_db.db
pFUTSpace: 0,0,0
fileExist: false
comm: ls -Zl /data/user/0/packageName/databases/app_db.db
errorCode: 1
lsErrorOutput: ls: /data/user/0/packageName/databases/app_db.db: Permission denied
.
comm: chmod -R 770 /data/user/0/packageName/databases/app_db.db
errorCode: 1
chmodErrorOutput: chmod: /data/user/0/packageName/databases/app_db.db: Permission denied
.
comm: restorecon -RF /data/user/0/packageName/databases/app_db.db
restoreconOutput: .
chmodRetried: true
filePath: /data/user/0/packageName/databases
pFUTSpace: 0,0,0
fileExist: false
comm: ls -Zl /data/user/0/packageName/databases
errorCode: 1
lsErrorOutput: ls: /data/user/0/packageName/databases: Permission denied
.
comm: chmod -R 770 /data/user/0/packageName/databases
errorCode: 1
chmodErrorOutput: chmod: /data/user/0/packageName/databases: Permission denied
.
comm: restorecon -RF /data/user/0/packageName/databases
restoreconOutput: .
chmodRetried: true
filePath: /data/user/0/packageName
pFUTSpace: 1637703680,1620926464,54091657216
fileExist: true
fileCanRead: false
fileCanWrite: false
fileCanExecute: false
fileLength: 4096
fileIsDirectory: true
comm: ls -Zl /data/user/0/packageName
errorCode: 1
lsErrorOutput: ls: /data/user/0/packageName: Permission denied
.
comm: chmod -R 770 /data/user/0/packageName
errorCode: 1
chmodErrorOutput: chmod: chmod '/data/user/0/packageName' to 40770: Operation not permitted
chmod: No /data/user/0/packageName: Permission denied
.
comm: restorecon -RF /data/user/0/packageName
restoreconOutput: .
chmodRetried: true
filePath: /data/user/0/packageName/files
pFUTSpace: 0,0,0
fileExist: false
comm: ls -Zl /data/user/0/packageName/files
errorCode: 1
lsErrorOutput: ls: /data/user/0/packageName/files: Permission denied
.
comm: chmod -R 770 /data/user/0/packageName/files
errorCode: 1
chmodErrorOutput: chmod: /data/user/0/packageName/files: Permission denied
.
comm: restorecon -RF /data/user/0/packageName/files
restoreconOutput: .
chmodRetried: true
filePath: /data/user/0/packageName/cache
pFUTSpace: 0,0,0
fileExist: false
comm: ls -Zl /data/user/0/packageName/cache
errorCode: 1
lsErrorOutput: ls: /data/user/0/packageName/cache: Permission denied
.
comm: chmod -R 770 /data/user/0/packageName/cache
errorCode: 1
chmodErrorOutput: chmod: /data/user/0/packageName/cache: Permission denied
.
comm: restorecon -RF /data/user/0/packageName/cache
restoreconOutput: .
chmodRetried: true
这个问题应该和SELinux(SEAndroid)有关
The text was updated successfully, but these errors were encountered: