更改应用程序中的文件权限

发布于 2024-12-20 07:53:45 字数 312 浏览 0 评论 0原文

我尝试更改应用程序中的文件权限。代码如下:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

枕梦 2024-12-27 07:53:45
Runtime rt = Runtime.getRuntime();
Process proc;
try {
    proc = rt.exec(new String[] { "su", "-c", "chmod 777 " + Constants.filename });
    proc.waitFor();
} catch (Exception e){ //DOSTUFFS }

这应该可以解决问题

Runtime rt = Runtime.getRuntime();
Process proc;
try {
    proc = rt.exec(new String[] { "su", "-c", "chmod 777 " + Constants.filename });
    proc.waitFor();
} catch (Exception e){ //DOSTUFFS }

This should do the trick

心在旅行 2024-12-27 07:53:45

您在测试中使用了路径 /sdcard/ ——您的 SD 卡是否使用支持标准 Unix 权限的文件系统进行了格式化? (FAT 没有。)

您没有给出 chmod(1) 的显式路径字符串中的 -- 您确定 chmod(1) 可以:

  • 在您的设备上
  • 可用,并可用于当前的 PATH 环境变量设置吗?

您只能更改您拥有的文件的权限;您确定无论您的应用程序的有效用户 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 that chmod(1) is:

  • available on your device
  • available with your current 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文