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

在来自Android应用程序的文件中设置可执行权限,android,executable,file-permissions,chmod,Android,Executable,File Permissions,Chmod,我想制作一个安卓应用程序,首先下载安卓tcpdump二进制文件,然后执行它。文件已成功下载,但我无法设置可执行文件: try { File file = new File( "/sdcard/tcpdump" ); if ( file.exists() ) { Runtime.getRuntime().exec( new String[]{ "su", "-c", "chmod 777 /sdcard/tcpdump" } ); } } ca

我想制作一个安卓应用程序,首先下载安卓
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();
}

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

您应该能够使用以下方法对文件设置这些权限(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
,这意味着权限将应用于所有用户

您不需要执行运行时命令来设置文件的权限。 您可以只在类上使用helper方法。 以下是指向各个方法文档的链接:,和