Android深度探索(卷2)系统应用源代码分析与ROM定制 读书笔记1

来源:互联网 发布:韩顺平java视频教程 编辑:程序博客网 时间:2024/05/30 23:50

1.在config文件中如果加上CONFIG_IKCONFIG_PROC=y,编译下载开机后就会在/proc下面生成config.gz的文件,这个文件可以直接解压使用。

2.Android源码下面就有编译器,alps/prebuild目录下即是,可以在目录下搜索arm-eabi-gcc找到交叉编译器的位置,然后可以加入PATH

3.刷机之前需要保证BootLoader是解锁的,如果未解锁需要在Android设备开机下执行adb reboot bootloader进入bootloader模式,执行fastboot oem unlock(fastboot oem lock是加锁),成功后会在模式界面显示红色的UNCLOCKED

4.system.img的修改

在out/host/linux-x86/bin下有很多linux-x86的工具,包括打包工具,通过

使用simg2img system.img system.img.raw把system.img转换为可挂载的镜像

使用mount system.img.raw /mnt/system 把镜像挂载到/mnt/system下面

使用make_ext4fs -s -l 512M -a system system.img /mnt/system 重新打包成镜像

其中-s是生成Sparse格式的镜像文件,不可挂载,占用空间小,不加则可直接挂在但是大,

-l是指定逻辑分区的尺寸,生成的镜像不能比这个大,-a指定在Android运行系统中的挂载点

5.修改开机动画

方法一:直接替换解压的system/media下的bootanimation.zip,然后打包

方法二:直接替换运行的Android设备中的/system/media下或者/data/local下的bootanimation.zip,需要root权限

adb push bootanimation.zip /adcard/bootanimation.zipadb shellsu
mount -o rw, remount /systemcp /sdcard/bootanimation.zip /system/media/bootanimation.zip

/data/local下不用remount

adb push bootanimation.zip /adcard/bootanimation.zipadb shellsu
cp /sdcard/bootanimation.zip /data/local/bootanimation.zip

6.bootanimation.zip

由一个或多个partN文件夹和desc.txt组成

文件夹中是播放动画的图片,图片名称结尾(不包括格式)需要用数字排序结尾,例如pic001

desc.txt

<width> <height> <frame-rate>
p <loop> <pause> <folder>
...
例如:
786 1366 15
p 1 0 pic001
p 0 0 pic002
暂停时间计算:pause/frame-rate

7.修改userdata.image

使用simg2img userdata.img userdata.img.raw把userdata.img转换为可挂载的镜像

使用mount userdata.img.raw /mnt/rom/userdata 把镜像挂载到/mnt/rom/userdata下面

可以在里面添加apk

使用make_ext4fs -s -l 128M -a datauserdata.img /mnt/rom/userdata 重新打包成镜像

注意这个128M会指定内存的最大容量,即使实际大小比128M大也只能显示和用128M,

并且这个制定的容量不能比实际的内部储存大。

8.ramdisk.img是root目录的压缩,包括初始化文件,不能使用上面的方法挂载,使用gunzip解压,并

用cpio恢复目录结构

mkdir ramdiskcd ramdiskgunzip -c ../ramdisk.img | cpio -i
使用下面的命令生成ramdisk.img

mkbootfs . | minigzip > ../ramdisk.img
9.boot.img主要包括内核zImage和ramdisk.img
解压unpackbootimg -i ../boot.img压缩mkbootimg(out/host/linux-x86/bin/) --kernel boot.img-zImage --ramdisk.gz.new -o boot.img.new
10.获取ROOT权限

  • 把修改过的su命令文件直接放入前面解压的system.img的/system/xbin下面,然后打包。
  • 修改ramdisk.img,使得进入shell是就获得ROOT权限,修改ramdisk.img中的defualt.prop文件,
  • 然后重新生成boot.img,经过修改的boot.img如下
ro.secure=0ro.allow.mock.location=1ro.debuggable=1presist.sys.usb.config=mtpro.adb.secure=1persist.service.adb.enable=1








阅读全文
0 0
原创粉丝点击