修改android系统文件权限
2016-02-16 10:54:45 wang4664 阅读数 4898

Linux 文件权限
1 [001] 执行权限 x
2 [010] 只写权限 w
4 [100] 只读权限 r
sudo chmod 600 ××× (只有所有者有读和写的权限)
sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
sudo chmod 666 ××× (每个人都有读和写的权限)
sudo chmod 777 ××× (每个人都有读和写以及执行的权限)
其中×××指文件名(也可以是文件夹名,不过要在chmod后加-ld)。

Android修改文件权限命令
chmod 600 ××× (只有所有者有读和写的权限)
chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
chmod 700 ××× (只有所有者有读和写以及执行的权限)
chmod 666 ××× (每个人都有读和写的权限)
chmod 777 ××× (每个人都有读和写以及执行的权限)

Android使用代码修改文件权限
在apk中,有时候需要root权限,例如通过apk更新系统库等system的文件等,避免升级固件,或者在apk中需要直接访问某些设备等。下面是在apk中获取root权限的方法,前提是设备已经root过了。

通过执行su产生一个具有root权限的进程:
Process su = Runtime.getRuntime().exec(“su”);
写入命令(可以写入多条命令,使用换行(\n)):
String cmd = “chmod 666 /dev/video0\nexit\n”;
su.getOutputStream().write(cmd.getBytes());
判断命令执行结果:
su.waitFor() ==0 表示命令执行成功

实例:使用代码打开/dev/video0的读写权限
//获取权限
File device = new File(/dev/video0);
if (!device.canRead() || !device.canWrite()) {
try {
/* Missing read/write permission, trying to chmod the file */
Process su;
su = Runtime.getRuntime().exec(“su”);
String cmd = “chmod 666 /dev/video0\nexit\n”;
su.getOutputStream().write(cmd.getBytes());
if ((su.waitFor() != 0) || !device.canRead()
|| !device.canWrite()) {
showNotPremessionDialog();
return;
}
} catch (Exception e) {
e.printStackTrace();
showNotPremessionDialog();
return;
}
}

2018-07-11 08:33:26 lxb00321 阅读数 2255


Linux 文件权限 
1 [001] 执行权限 x 
2 [010] 只写权限 w 
4 [100] 只读权限 r 
sudo chmod 600 ××× (只有所有者有读和写的权限) 
sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限) 
sudo chmod 700 ××× (只有所有者有读和写以及执行的权限) 
sudo chmod 666 ××× (每个人都有读和写的权限) 
sudo chmod 777 ××× (每个人都有读和写以及执行的权限) 
其中×××指文件名(也可以是文件夹名,不过要在chmod后加-ld)。

Android修改文件权限命令 
chmod 600 ××× (只有所有者有读和写的权限) 
chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限) 
chmod 700 ××× (只有所有者有读和写以及执行的权限) 
chmod 666 ××× (每个人都有读和写的权限) 
chmod 777 ××× (每个人都有读和写以及执行的权限)

Android使用代码修改文件权限 
在apk中,有时候需要root权限,例如通过apk更新系统库等system的文件等,避免升级固件,或者在apk中需要直接访问某些设备等。下面是在apk中获取root权限的方法,前提是设备已经root过了。

通过执行su产生一个具有root权限的进程: 
Process su = Runtime.getRuntime().exec(“su”); 
写入命令(可以写入多条命令,使用换行(\n)): 
String cmd = “chmod 666 /dev/video0\nexit\n”; 
su.getOutputStream().write(cmd.getBytes()); 
判断命令执行结果: 
su.waitFor() ==0 表示命令执行成功

实例:使用代码打开/dev/video0的读写权限 
//获取权限 
File device = new File(/dev/video0); 
if (!device.canRead() || !device.canWrite()) { 
try { 
/* Missing read/write permission, trying to chmod the file */ 
Process su; 
su = Runtime.getRuntime().exec(“su”); 
String cmd = “chmod 666 /dev/video0\nexit\n”; 
su.getOutputStream().write(cmd.getBytes()); 
if ((su.waitFor() != 0) || !device.canRead() 
|| !device.canWrite()) { 
showNotPremessionDialog(); 
return; 
} 
} catch (Exception e) { 
e.printStackTrace(); 
showNotPremessionDialog(); 
return; 
} 
}

2011-02-15 15:47:00 wen0006 阅读数 1176

    private void chmodWithOneFile(String fileName) {
        // TODO Auto-generated method stub
        Process p;
        try {
            p = Runtime.getRuntime().exec("chmod 644 " + fileName);
            int status;
            status = p.waitFor();
            if (status == 0) {
                Log.d(TAG, "ChangeMode success " + fileName);
            } else {
                Log.d(TAG, "ChangeMode failure " + fileName);
            }
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

2018-10-29 12:54:22 a243920187 阅读数 377

Android 文件的权限的含义:

文件权限一共有十个字符:

æ件çç±»åä¸æéä¹å容

第一个字符代表文件的类型:

  • 当为[ d ]则是目录,例如上表档名为『.gconf』的那一行;
  • 当为[ - ]则是文件,例如上表档名为『install.log』那一行;
  • 若是[ l ]则表示为连结档(link file);
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

  • 第一组为『文件拥有者的权限』,以『install.log』那个文件为例, 该文件的拥有者可以读写,但不可执行;
  • 第二组为『同群组的权限』;
  • 第三组为『其他非本群组的权限』。

 

修改文件权限步骤:

  1. 在命令行模式下进入shell:adb shell
  2. 使用root权限:su -root
  3. 修改文件的读写权限:chmod -R 777 dir_name
  4. 退出exit

常用的linux文件权限:

444 r--r--r--

600 rw-------

644 rw-r--r--

666 rw-rw-rw-

700 rwx------

744 rwxr--r--

755 rwxr-xr-x

777 rwxrwxrwx

 

 

 

2010-09-07 17:56:00 freddiexian 阅读数 1513

    在Android中有一个精简版的linux系统,因为是linux系统,那么有时候在写Android应用程序的时候会遇到权限问题。我们都知道在shell中可以通过chmod命令来修改权限,所以就希望通过程序来执行shell中的命令,如何来做呢?看下面代码:

 

    然后通过调用这个方法就能实现在Android中修改文件权限,例如需要修改已安装apk的packagename的权限:

    如果有什么问题,请大家多多指正,谢谢。。

 

本文参考来自http://lazyhack.net/writing-an-android-root-application/的博客。

没有更多推荐了,返回首页