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

时间:2016-01-08 19:13:26

标签: android executable file-permissions chmod

我想创建一个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();
}

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:-1)

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

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