-1

我正在开发一个嵌入式应用程序,我需要允许设备所有者按需 root 和取消 root 设备。

我可以通过存储在 rom 中的特殊版本的 SU 运行以下 shell 命令来启动设备:

chown 0.0 /system/xbin/su
chmod 06755 /system/xbin/su

chown 0.0 /system/xbin/busybox
chmod 0755 /system/xbin/busybox

我现在需要能够扭转生根过程。因此,我需要恢复这两个文件的所有者和权限。问题是我不确定无根 android 设备上的默认权限和所有者是什么。

有人可以帮忙吗?!

4

2 回答 2

0
stat {dir/file}

应该向您展示您需要知道的内容,除此之外,我还想知道在通常的 755、644、777 交易之前这个数字是什么,尽管我知道在 Linux 上它很相似,但就像 0755、0644、0777 一样。我仍然不知道不知道 0 是干什么用的,或者他们为什么说 06755,这个答案很可能会帮助我获得 postgresql 打开套接字的权限。

我错了 644 是 rw,r,r; 你会看到的。请有人纠正我或告诉我我是否正确,但我认为它的所有者|组|其他和 1 是读,2 是写,3 是读/写,即 1 + 2 =3,4 是执行所以 4 +3=7 是读/写/执行,所以如果你只想让别人读你给它 771, 0771 (至于 android 06771,我不明白) 0|7|7|1 , Owner|group|其他,所有者=7 |组=7 | other =1 因此,如果您只希望所有者读取和写入但不执行用户名 x-man ,您将:

chown x-man:[group] /home/x-man/somefile

-接着-

chmod 0310 /home/x-man/somefile

这将允许所有者读/写,组成员(例如“cust-asist”)可以读取,而其他人无法访问。

于 2013-10-23T07:37:02.573 回答
0

ls -l您可以通过在所在目录上su运行命令来读取权限位busybox,然后使用静态字段将权限设置回默认值。

在运行您的程序之前,请在 shell(设备上的终端,或通过adb shell)中运行这些命令

cd /system/xbin
ls -l

...output here.... su
...output here.... busybox

代码(一旦您知道默认所有者和权限):

public class RootAndUnroot{
private static String[] DEF_SU = {"0X.X", "0XXX"}; //Initialize these to the values found above
private static String[] DEF_BUSYBOX = {"0Y.Y", "0YYY"};
...
private void revertRoot(){
    setPermissions("/system/xbin/busybox", DEF_BUSYBOX);
    setPermissions("/system/xbin/su", DEF_SU);
}
于 2013-01-20T21:22:44.247 回答