`
quanminchaoren
  • 浏览: 913737 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android改变文件的权限

阅读更多
在LINUX下每个文件都有一个权限的属性 ,那么在Android中怎么用java改变某个文件的权限呢?

Android中有两种方法可以改变文件的权限

1. 用openFileOutput方法:

view plaincopy to clipboardprint?
01.FileOutputStream fos;    
02.fos = openFileOutput("filename", MODE_WORLD_READABLE);  
FileOutputStream fos; 
fos = openFileOutput("filename", MODE_WORLD_READABLE); 

FileOutputStream android.content.ContextWrapper .openFileOutput(String name, int mode) throws FileNotFoundException

Open a private file associated with this Context's application package for writing. Creates the file if it doesn't already exist.

可用的mode 参数如下:

    /**
     * File creation mode: the default mode, where the created file can only
     * be accessed by the calling application (or all applications sharing the
     * same user ID).
     * @see #MODE_WORLD_READABLE
     * @see #MODE_WORLD_WRITEABLE
     */
    public static final int MODE_PRIVATE = 0x0000;
    /**
     * File creation mode: allow all other applications to have read access
     * to the created file.
     * @see #MODE_PRIVATE
     * @see #MODE_WORLD_WRITEABLE
     */
    public static final int MODE_WORLD_READABLE = 0x0001;
    /**
     * File creation mode: allow all other applications to have write access
     * to the created file.
     * @see #MODE_PRIVATE
     * @see #MODE_WORLD_READABLE
     */
    public static final int MODE_WORLD_WRITEABLE = 0x0002;
    /**
     * File creation mode: for use with {@link #openFileOutput}, if the file
     * already exists then write data to the end of the existing file
     * instead of erasing it.
     * @see #openFileOutput
     */
    public static final int MODE_APPEND = 0x8000;

其实该方法最终还是调用了系统的chmod来实现的改变文件权限的功能。

但是该方法有局限性,他创建的文件只能位于该程序的私有目录下,即/data/data/app-package/files/

2. 用Runtime.getRuntime().exec()

view plaincopy to clipboardprint?
01.Runtime.getRuntime().exec("chmod 644 " + filename); 
Runtime.getRuntime().exec("chmod 644 " + filename);

该方法调用系统命令chmod来改变文件的权限,为了能判断命令的返回值,最好写成:

view plaincopy to clipboardprint?
01.Process p = Runtime.getRuntime().exec("chmod 644 " + filename);    
02.int status = p.waitFor();    
03.if (status == 0) {    
04.    //chmod succeed    
05.} else {    
06.    //chmod failed    
07.}   
分享到:
评论

相关推荐

    Android修改系统文件访问权限

    Android修改系统文件访问权限,在init.rc里配置service,通过启动service去执行脚本,在脚本里做修改文件访问权限操作。应用通过jni启动service。

    android 修改串口读写权限

    网上好多不会修改android串口的权限,上传脚本文件供大家使用,公司真实环境无私奉献出来。

    android权限大全

    Android权限大全 Android权限是Android操作系统中的一种安全机制,用于控制应用程序对设备硬件和软件资源的访问权限。Android权限分为两大类:normal权限和dangerous权限。Normal权限是指一些基本的权限,例如访问...

    android权限设置大全

    Android权限设置大全 ...这些权限都可以在AndroidManifest.xml文件中声明,用于申请访问设备的某些功能或数据。开发者需要根据应用程序的需求声明相应的权限,以便在应用程序中访问相应的功能或数据。

    Android RE文件管理器

    一款能够修改、查看文件权限的超级文件管理器。非常好用,Android数据库编程调试可用。

    修改system读取sdcard权限.rar

    android修改system读取sdcard权限的一份代码

    Android中修改设备权限的方法

    具体的修改位置为源码的system/core/init/devices.c文件中static struct perms_ devperms[]的定义中,如添加设备hidraw0的权限,只需添加一行: 代码如下:{ “/dev/hidraw0”, 0666, AID_ROOT, AID_ROOT, 0 } 这样...

    android 12.认识Android的UID(Unix user ID)与权限

    UID 是 Android 中一个非常重要的概念,它决定了应用程序的身份和权限,保护应用程序的私有数据和资源,防止其他应用程序无权限访问和修改。同时,AndroidManifest.xml 文件中声明的权限也是非常重要的,它决定了...

    解包打包android内核system.img文件所需工具

    然后对\framework\framework-res.apk文件重新签名,复制到linux下后修改文件权限和原来一致。 然后mkyaffs2image system system.img打包生成新的system.img,替换原来的system.img,并启动模拟器,效果图如下: ...

    android允许所有用户获取root权限

    android允许所有用户获取root权限,编译生产su可执行文件,需要拷贝到system/xbin/目录下,并需要修改权限chown root root /system/xbin/su chmod 6755 /system/xbin/su

    在SDcard里新建一个文件和文件夹并修改权限apk源码

    在SDcard里新建一个文件和文件夹并修改权限apk源码 亲自写的

    Android系统签名文件生成工具

    app获取系统级权限有两种方法,一个是root,另一个是在AndroidManifest中添加android:sharedUserId="android.uid.system",但是Manifest文件中加入sharedUserId后,我们会发现一个问题,就是INSTALL_FAILED_SHARED_...

    AndroidQ分区存储权限变更及适配的实现

    分区存储 在Android Q中引入了分区储存...继续使用 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 权限,只不过当拥有这些权限的时候,你只能访问媒体文件,无法访问其他文件。 在早先的beta版本中,Android需要申

    Android 设置/system/bin/cmd的权限遇到的问题

    NULL 博文链接:https://qianjigui.iteye.com/blog/1980323

    Android对资源和权限进行校验的代码例子

    Android对资源和权限进行校验的代码例子。用于演示app在运行时对硬件资源、存储资源、剩余流量进行合法性校验,还演示了app对定位权限、拍照权限、录音权限等功能进行合法性校验。

    Android的AndroidManifest配置权限

    AndroidManifest.xml 是 Android 程序配置文件,类似 WEB 程序中的 web.xml,其中有个非常重要而又特别的功能就是为程序向设备声明自己的权利语法:<uses-permission android:name=”权限常量”/> 以下是 Android ...

    android 文件管理器

    简单的android文件管理器源码,从书上的例子改来的。 @打开没有权限的文件夹死机 @二级目录前面有"/" @修改图标 @修改排序,先目录,后文件,不区分大小写 @单击直接打开,长按弹出选项 ├── ...

    Android端获取串口列表,修改串口权限,关闭系统串口打印,读写串口。.zip

    1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...

    IPFS android可执行文件

    android 下可以执行的ipfs可执行文件 push到android的/system/bin目录下 修改755权限可以执行

    基于android 6.0 动态权限申请.zip

    开放源代码:Android系统采用开放源代码模式,允许开发者自由访问、修改和定制操作系统,这促进了技术的创新和发展,使得Android系统具有高度的灵活性和可定制性。 多任务处理:Android允许用户同时运行多个应用程序...

Global site tag (gtag.js) - Google Analytics