如何在Android中编辑/ sys /?

时间:2017-04-10 20:28:53

标签: android linux-kernel root

有没有办法在Android中编辑/ sys /文件夹。我试过这些:

  1. 授予ES文件资源管理器的root权限并编辑/ sys /中的文件。 ES文件资源管理器中启用了R / W权限。
  2. 使用终端模拟器,尝试了这个:

    su

    chmod 777 /sys/filename

  3. 之后我编辑了文件,但这两种方法似乎没有用。

    是否有任何方法可以进入内核并在/ sys /?

    中编辑这些文件

2 个答案:

答案 0 :(得分:0)

Android Debug Bridgeadb)是一个多功能的命令行工具,您可以使用它与设备(模拟器或连接的Android设备)进行通信。

adb over network

adb connect <IP Address>:5555
adb devices //To Confirm host computer is connected to the target device)
adb devices -l //Query for devices 
adb remount //Remount the partitions /system, /vendor in read-write mode
adb shell //To debug the kernel through adb 

adb over serial:

adb devices 
adb devices -l
adb remount
adb shell
  

如果adb连接丢失,您可以尝试通过adb kill-server重置adb主机,然后运行上述命令。

编辑:

sysfs的权限在内核空间中定义,因此您无法从用户空间直接在/sys文件夹中创建文件或目录。如果您想创建/修改 目录/文件,那么我认为您可以通过内核模块实现它。有许多辅助函数可用于在/sys内创建文件属性和目录。

我相信你的驱动程序已经使用了这些辅助函数(类似 sysfs_create_group kobject_create_and_add )。要更改文件权限和数据读/写,请检查您的驱动程序 __ATTR show/store 功能。

应该是

static ssize_t fo_show(struct kobject *kobj, struct kobj_attribute 
*attr,char *buf){
}
static ssize_t fo_store(struct kobject *kobj, struct kobj_attribute 
*attr, const char *buf, size_t count){
}

static struct kobj_attribute baz_attribute =
__ATTR(foo, 0666, fo_show, fo_store);

答案 1 :(得分:-1)

在ADB上你有没有要求重新安装设备?执行以下操作:

adb remount (./adb on apple)
adb shell (./adb apple)
cd sys
chmod 777 filename

您也应该能够创建或删除目录