更改应用程序中的文件权限
我尝试更改应用程序中的文件权限。代码如下:
Runtime.getRuntime().exec("chmod 777 /sdcard/test.txt");
此代码在我的应用程序中不起作用,但没有错误日志。 我还检查了 /system/bin 下的 shell 工具,发现 chmod 位于 /system/bin 下,但其他一些信息显示 chmod > >工具箱。我对此不太清楚。我的应用程序使用了 android:sharedUserId="android.uid.system"。 如何运行此代码或如何更改文件的权限?多谢。
I try to change file permission in application. Code is below:
Runtime.getRuntime().exec("chmod 777 /sdcard/test.txt");
This code NOT works in my application, but no error log.
I also checked the shell tools under /system/bin, find chmod is under /system/bin, but some other info shown that chmod > toolbox. I am not clear about this. My application has used android:sharedUserId="android.uid.system".
How to run this code or how to change permission of file? Thanks a lot.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这应该可以解决问题
This should do the trick
您在测试中使用了路径
/sdcard/
——您的 SD 卡是否使用支持标准 Unix 权限的文件系统进行了格式化? (FAT 没有。)您没有给出
chmod(1) 的显式路径字符串中的
-- 您确定 chmod(1) 可以:您只能更改您拥有的文件的权限;您确定无论您的应用程序的有效用户 ID 是什么,都拥有 SD 卡上的文件吗?
最后,Android可能对更改文件权限有额外的安全限制。我不太了解 Android,但也许更改文件权限位需要在清单中声明操作的条目,也许更改文件权限只能通过提供的 API 来完成。
You've used the path
/sdcard/
in your test -- is your SD Card formatted with a filesystem that supports standard Unix permissions? (FAT does not.)You did not give an explicit path to
chmod(1)
in your string -- are you certain thatchmod(1)
is:PATH
environment variable setting?You can only change the permissions on files you own; are you certain that whatever your application's effective userid is owns the file on the SD card?
Lastly, Android may have additional security restrictions on changing file permissions. I don't know Android well, but perhaps changing file permission bits requires entries in the manifest declaring the operations, perhaps changing file permissions can only be done through provided APIs.