在 Android 应用程序的文件中设置可执行权限

Posted

技术标签:

【中文标题】在 Android 应用程序的文件中设置可执行权限【英文标题】:Set executable permissions in file from Android application 【发布时间】:2016-04-13 13:39:16 【问题描述】:

我想做一个android 应用程序,首先下载android tcpdump 二进制文件,然后执行它。文件下载成功,但无法设置可执行文件:

try 

    File file = new File( "/sdcard/tcpdump" );

    if ( file.exists() )
    
        Runtime.getRuntime().exec( new String[] "su", "-c", "chmod 777 /sdcard/tcpdump"  );
    
 
catch ( Exception e )

    e.printStackTrace();

【问题讨论】:

【参考方案1】:

默认情况下,SD 卡上的文件不可执行。将文件移动到内部存储,即data/local/tmp。目录下的文件“get”世界可执行权限。

【讨论】:

【参考方案2】:

您应该能够使用以下方法在文件上设置这些权限 (rwx rwx rwx):

file.setReadable(true, false); //Sets everyone's permissions to readable
file.setWritable(true, false); //Sets everyone's permissions to writable
file.setExecutable(true, false); //Sets everyone's permissions to executable

第一个参数将权限设置为true,第二个参数将ownerOnly参数设置为false,表示该权限适用于所有用户。

您不需要执行运行时命令来设置文件的权限。 您可以只使用 File 类上的辅助方法。 以下是各个方法文档的链接:setReadable()、setWritable() 和 setExecutable()

【讨论】:

以上是关于在 Android 应用程序的文件中设置可执行权限的主要内容,如果未能解决你的问题,请参考以下文章

java 在友好URL中设置可选参数

如何在资产目录中设置可访问性标签? Xcode 11

我可以在界面生成器中设置可访问性标识符吗? Xcode4.2

在android中设置文件读取权限

在 C# 中设置文件的 UAC 设置

如何在android中获得相机的权限。(特别是棉花糖)