在 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 应用程序的文件中设置可执行权限的主要内容,如果未能解决你的问题,请参考以下文章