为Android应用程序读取/dev下设备而提权(一)

本文详细探讨了如何在Android应用程序中通过修改init.rc、device.c和init.c来实现读取/dev下设备权限的提升。内容涵盖三个关键文件的改动方法,帮助开发者理解并实践这一过程。
摘要由CSDN通过智能技术生成
为Android应用程序读取/dev下设备而提权(一)

         倘若应用程序需要对/dev/xxx进行读写操作,就需要提升其权限。提权方法不唯一,需要根据具体需求情况而选择。归根结底,终究都落到chmod 777 /dev/xxx 上,不同的是,chmod操作被执行在何时何地,在此做个分析总结。
        内核启动后会执行/system/init,传说中的系统1号进程,init程序起初的任务是初始化,包括各种mkdir来构建文件系统,得到硬件信息建立设备节点,安装SIGCHLD信号来回收僵尸进程的资源,解析init.rc启动脚本等等,然后init程序变身为property_service来管理系统的权限。我们可以下手的地方有两处: device_init和init.rc



✿ init.rc

   这个方案是大家用的比较多的,在其中添加chmod操作很简单不多说。


✿ device.c

   这个方案用的比较少,先了解下device.c。
   device_init在/system/core/init/device.c中,详细分析如下:

//分别遍历/sys/class /sys/block /sys/devices
device_init()
{
  coldboot(fd,"/sys/class");
  coldboot(fd,"/sys/block");
  coldboot(fd,"/sys/devices");
}
   
//后面有个递归 /sys下是内核生成的设备,这就相当于udev的作用
do_coldboot()
{
  if(fd>= 0) {
  write(fd,"add\n", 4);
  close(fd);
  h
  • 26
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 30
    评论
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值