• android 修改ramdisk.img和init.rc && android启动后设置/d


    有时候希望在启动后做点事情,比如在sdcard上建立目录,修改/data的访问权限等,这些都可以放在init.rc中去完成,那么如何来完成呢,最近由于工作的需要,在这方面进行了一些研究,特写于此,供大家参考。

          通过下面的例子来讲述,实现一个功能:在android系统启动后,修改/data的访问权限为770.

    共4步:1、解压ramdisk.img 2、用c语言完成要实现的功能 3、修改init.rc,启动c语言可执行程序  4、制作ramdisk.img

          1、解压ramdisk.img:

      解压、修改Android的ramdisk.img的手动方法:

      将ramdisk.img复制一份到任何其他目录下,将其名称改为ramdisk.img.gz,并使用命令

      gunzip ramdisk.img.gz

      然后新建一个文件夹,叫ramdisk吧,进入,输入命令
      cpio -i -F ../ramdisk.img 
      这下,你就能看见并操作ramdisk里面的内容了。

      此步可参考:http://blog.csdn.net/liushaogeng/archive/2010/10/14/5941259.aspx

       2、完成一个C语言程序chpermission.c,来实现修改权限的功能。代码如下:

         #include <stdlib.h>

          int main()

         {

            system("chmod 700 /data");

             return 0;

     

         }

        然后编译此程序,不过需要编译为android下的可执行程序,可参考我的博客:http://blog.csdn.net/liushaogeng/archive/2010/09/01/5855925.aspx ,采用博客中介绍的两种方法均可以。
        编译完后将可执行文件push到模拟器的/data目录中去:
         #adb push chpermission /data

         3、 修改ramdisk目录下init.rc文件,让其启动 chpermission程序, 增加以下代码:

         #add by me on 2010-10-18    
         service 
    chpermission   /data/ chpermission 
              oneshot

         用于启动 chpermission,完成相应的功能--修改data权限。

         init.rc的语法可参考博客: http://blog.csdn.net/liushaogeng/archive/2010/10/18/5949244.aspx

         4、制作ramdisk.img,

      init.rc修改之后,可以使用下列命令重新打包成镜像
      cpio -i -t -F ../ramdisk.img > list
      cpio -o -H newc -O lk.img < list
     
      当前目录下生成的lk.img就是我们的新镜像了。
     

      可参考博客: http://blog.csdn.net/liushaogeng/archive/2010/10/14/5941259.aspx

       将ramdisk.img拷贝到sdk指向的目录。

        全部ok,重启自己的模拟器,查看data权限是否为770

  • 相关阅读:
    Java8中利用stream对map集合进行过滤的方法
    安装数据库MySQL,启动时报错 服务没有响应控制功能 的解决办法
    mysql 安装时 失败,提示 因为计算机中丢失 msvcp140.dll
    复习一下数学排列组合公式的原理
    java如何进行排列组合运算
    Redis 分布式锁:使用Set+lua替代 setnx
    深入详解Go的channel底层实现原理【图解】
    MYSQL MVCC实现原理详解
    聚簇索引和非聚簇索引,全在这!!!
    深度解密Go语言之 map
  • 原文地址:https://www.cnblogs.com/leino11121/p/2381902.html
Copyright © 2020-2023  润新知