资源描述:
《rk2918 固件diy 第二讲 初级修改》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第二讲(初级篇)【ReaK出品】固件开发笔记,快来DIY专属定制固件吧(附带工具)http://www.ondabbs.cn/forum.php?mod=viewthread&tid=98159&fromuid=218854上一讲我们搭建了工作环境,讲了升级和打包解包(工具内)这一次来做初级修改一、获得ROOT权限只要将固件解包后在打包就会自动获取ROOT(很简单吧)Q:获得ROOT能干什么?F:最简单的就可以用一些权限软件。可以禁用启动项和服务啦哈哈。。。但是不能删除自带系统文件二、获得System读写权限。
2、(可以删除自带程序)以下是wendel的方法“核心原理:在data分区下建一个文件夹/data/sysrw存放system原本的数据,启动时,软连接/data/sysrw为system分区解释:1.data分区,最终挂载为/data文件夹,默认情况下,这是ext3格式的分区,但禁用了suid2.system分区,为不可写的cramfs格式,默认挂载在/system文件夹步骤:1.在原版系统可以正常启动的前提下,将/system下的全部文件,拷贝到/data/sysrw2.修改boot.img,移除system文
3、件夹(否则无法建立通往/system的软链接),对init.rc文件做以下修改:..A.不再挂载system分区--注释掉mountcramfsmtd@system/system--也就是前面加#号..B.不再建立system文件夹--注释掉mkdir/system..C.修改data分区的挂载方式,使其支持suid--挂载语句改为mountext3mtd@userdata/data..D.修改data分区的权限--chmod0770/data改为chmod0777/data..E.修改su文件的权限,在D步骤
4、所修改文件后面添加chmod6755/system/bin/su--因为data分区启用了suid,故这个程序可以调用setgid(0)和setuid(0)了..F.为了提供更大自由度,修改根分区的权限--注释掉mountrootfsrootfs/roremount..G.建立通往/system的软链接---找到mkdir/data,在后面新起一行symlink/data/sysrw/system经验教训1.symlink语法,与ln一样,前面是真实地址,后面是虚拟地址2.如果分区不支持suid,那么setui
5、d/setgid将无法使用”看不懂?没关系,整理了傻瓜式方法:“具体操作:解包后直接打包固件,备份boot.img为boot1.img,备份boot文件夹,将此时的update_new.img备份为update1.img对init.rc文件做以下修改找到mkdir/system将mkdir/systemmkdir/data0771systemsystem修改为mkdir/sysromkdir/data0777systemsystemsymlink/data/sysrw/system找到mountcramfsmt
6、d@system/system#mountmtd@system/systemroremountmountext3mtd@userdata/datanosuidnodevnoatimenodiratime修改为#mountcramfsmtd@system/system#mountmtd@system/systemroremountmountext3mtd@userdata/data找到mountrootfsrootfs/roremount#Wechown/chmod/dataagainsobecausemount
7、isrunasroot+defaultschownsystemsystem/datachmod0771/data修改为mountrootfsrootfs/rwremount#Wechown/chmod/dataagainsobecausemountisrunasroot+defaultschownsystemsystem/datachmod0777/data然后删掉boot文件夹中system文件夹,去掉filelist文件中的system这一行。打包固件,提取boot.img为boot2.img,备份boot
8、文件夹。删掉生成的update_new.img。刷机时先刷updat1.img,开机后复制system下文件到/data/sysrw(记得自己新建sysrw文件夹),参考命令:/busyboxcp-r/system/*/data/sysrw/然后单刷boot2.img,即可使用。如果想跳过手动复制的过程,那么添加init.sh到boot中,修改filelist加上init.sh,chm