updater-script修改实战
来源:互联网 发布:学滑板的软件 编辑:程序博客网 时间:2024/05/18 02:08
1. 解压update.zip
目录结构为:
|----boot.img|----system/|----recovery/ |----recovery-from-boot.p |----etc/ |----install-recovery.sh|---META-INF/ |CERT.RSA |CERT.SF |MANIFEST.MF |----com/ |----google/ |----android/ |----update-binary |----updater-script |----android/ |----metadata |----otacert
2. 添加需要加入的目录
|----test_dir |-----file1 |-----file2 |-----file3 |-----file4 |-----file5 |-----file6 |----delete_file.sh |----dir |-----file5
delete_file.sh的内容为:
rm /data/file3.txt主要为了测试在Recovery执行shell脚本
assert(getprop("ro.product.device") == "rk30sdk_joyplus" || getprop("ro.build.product") == "rk30sdk_joyplus");show_progress(0.500000, 0);format("ext4", "EMMC", "/dev/block/mtd/by-name/system", "0", "/system");mount("ext4", "EMMC", "/dev/block/mtd/by-name/system", "/system");package_extract_dir("recovery", "/system");package_extract_dir("system", "/system");ui_print("yedu-lijinwei start");mount("ext4","EMMC","/dev/block/mtd/by-name/userdata","/data");package_extract_dir("test_dir", "/data");symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");symlink("mksh", "/system/bin/sh");symlink("toolbox", "/system/bin/cat", "/system/bin/chmod", "/system/bin/chown", "/system/bin/cmp", "/system/bin/date", "/system/bin/dd", "/system/bin/df", "/system/bin/dmesg", "/system/bin/getevent", "/system/bin/getprop", "/system/bin/hd", "/system/bin/id", "/system/bin/ifconfig", "/system/bin/iftop", "/system/bin/insmod", "/system/bin/ioctl", "/system/bin/ionice", "/system/bin/kill", "/system/bin/ln", "/system/bin/log", "/system/bin/ls", "/system/bin/lsmod", "/system/bin/lsof", "/system/bin/md5", "/system/bin/mkdir", "/system/bin/mount", "/system/bin/mv", "/system/bin/nandread", "/system/bin/netstat", "/system/bin/newfs_msdos", "/system/bin/notify", "/system/bin/printenv", "/system/bin/ps", "/system/bin/r", "/system/bin/reboot", "/system/bin/renice", "/system/bin/rm", "/system/bin/rmdir", "/system/bin/rmmod", "/system/bin/route", "/system/bin/schedtop", "/system/bin/sendevent", "/system/bin/setconsole", "/system/bin/setprop", "/system/bin/sleep", "/system/bin/smd", "/system/bin/start", "/system/bin/stop", "/system/bin/sync", "/system/bin/top", "/system/bin/touch", "/system/bin/umount", "/system/bin/uptime", "/system/bin/vmstat", "/system/bin/watchprops", "/system/bin/wipe");set_perm_recursive(0, 0, 0755, 0644, "/system");set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");set_perm(0, 3003, 02750, "/system/bin/netcfg");set_perm(0, 3004, 02755, "/system/bin/ping");set_perm(0, 2000, 06750, "/system/bin/run-as");set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");set_perm(0, 0, 0755, "/system/etc/bluetooth");set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");set_perm(0, 0, 0544, "/system/etc/install-recovery.sh");set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/left_eye-y0-yi45-p0-pi45-r0-ri20.lg_32/full_model.bin");set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/nose_base-y0-yi45-p0-pi45-r0-ri20.lg_32/full_model.bin");set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/right_eye-y0-yi45-p0-pi45-r0-ri20.lg_32-2/full_model.bin");set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.6/head-y0-yi45-p0-pi45-r0-ri30.4a-v24/full_model.bin");set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.6/head-y0-yi45-p0-pi45-rn30-ri30.5-v24/full_model.bin");set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.6/head-y0-yi45-p0-pi45-rp30-ri30.5-v24/full_model.bin");set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/recognition/face.face.y0-y0-22-b-N/full_model.bin");set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");set_perm(0, 0, 06755, "/system/xbin/librank");set_perm(0, 0, 06755, "/system/xbin/procmem");set_perm(0, 0, 06755, "/system/xbin/procrank");set_perm(0, 0, 06755, "/system/xbin/su");set_perm(0, 0, 06755, "/system/xbin/tcpdump");set_perm(0, 0, 06755, "/data/delete_file.sh");delete("/data/file1.txt");delete("/data/mac_address.txt", "/data/file2.txt");delete_recursive("/data/dir");run_program("/data/delete_file.sh");ui_print("yedu-lijinwei end");show_progress(0.200000, 0);show_progress(0.200000, 10);write_raw_image(package_extract_file("boot.img"), "boot");show_progress(0.100000, 0);clear_misc_command();unmount("/system");unmount("/data");
修改的目的是,不关心系统是否比更新包新,都去更新它,后面就是删除文件及递归删除文件夹,都是好用的。
附原来的内容:
assert(!less_than_int(1370741919, getprop("ro.build.date.utc")));assert(getprop("ro.product.device") == "rk30sdk_joyplus" || getprop("ro.build.product") == "rk30sdk_joyplus");show_progress(0.500000, 0);format("ext4", "EMMC", "/dev/block/mtd/by-name/system", "0", "/system");mount("ext4", "EMMC", "/dev/block/mtd/by-name/system", "/system");package_extract_dir("recovery", "/system");package_extract_dir("system", "/system");symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");symlink("mksh", "/system/bin/sh");symlink("toolbox", "/system/bin/cat", "/system/bin/chmod", "/system/bin/chown", "/system/bin/cmp", "/system/bin/date", "/system/bin/dd", "/system/bin/df", "/system/bin/dmesg", "/system/bin/getevent", "/system/bin/getprop", "/system/bin/hd", "/system/bin/id", "/system/bin/ifconfig", "/system/bin/iftop", "/system/bin/insmod", "/system/bin/ioctl", "/system/bin/ionice", "/system/bin/kill", "/system/bin/ln", "/system/bin/log", "/system/bin/ls", "/system/bin/lsmod", "/system/bin/lsof", "/system/bin/md5", "/system/bin/mkdir", "/system/bin/mount", "/system/bin/mv", "/system/bin/nandread", "/system/bin/netstat", "/system/bin/newfs_msdos", "/system/bin/notify", "/system/bin/printenv", "/system/bin/ps", "/system/bin/r", "/system/bin/reboot", "/system/bin/renice", "/system/bin/rm", "/system/bin/rmdir", "/system/bin/rmmod", "/system/bin/route", "/system/bin/schedtop", "/system/bin/sendevent", "/system/bin/setconsole", "/system/bin/setprop", "/system/bin/sleep", "/system/bin/smd", "/system/bin/start", "/system/bin/stop", "/system/bin/sync", "/system/bin/top", "/system/bin/touch", "/system/bin/umount", "/system/bin/uptime", "/system/bin/vmstat", "/system/bin/watchprops", "/system/bin/wipe");set_perm_recursive(0, 0, 0755, 0644, "/system");set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");set_perm(0, 3003, 02750, "/system/bin/netcfg");set_perm(0, 3004, 02755, "/system/bin/ping");set_perm(0, 2000, 06750, "/system/bin/run-as");set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");set_perm(0, 0, 0755, "/system/etc/bluetooth");set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");set_perm(0, 0, 0544, "/system/etc/install-recovery.sh");set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/left_eye-y0-yi45-p0-pi45-r0-ri20.lg_32/full_model.bin");set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/nose_base-y0-yi45-p0-pi45-r0-ri20.lg_32/full_model.bin");set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/right_eye-y0-yi45-p0-pi45-r0-ri20.lg_32-2/full_model.bin");set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.6/head-y0-yi45-p0-pi45-r0-ri30.4a-v24/full_model.bin");set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.6/head-y0-yi45-p0-pi45-rn30-ri30.5-v24/full_model.bin");set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.6/head-y0-yi45-p0-pi45-rp30-ri30.5-v24/full_model.bin");set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/recognition/face.face.y0-y0-22-b-N/full_model.bin");set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");set_perm(0, 0, 06755, "/system/xbin/librank");set_perm(0, 0, 06755, "/system/xbin/procmem");set_perm(0, 0, 06755, "/system/xbin/procrank");set_perm(0, 0, 06755, "/system/xbin/su");set_perm(0, 0, 06755, "/system/xbin/tcpdump");show_progress(0.200000, 0);show_progress(0.200000, 10);write_raw_image(package_extract_file("boot.img"), "boot");show_progress(0.100000, 0);clear_misc_command();unmount("/system");
3. 添加到压缩包,记住不能有二级目录,保证解开包就是上述目录下的文件,而不是你的压缩包的名字。(选中文件进行压缩)
4. 放到Android下去签名:
我写了一个签名脚本,位于Android根目录下,sign_update.sh:
java -Xmx2048m -jar out/host/linux-x86/framework/signapk.jar -w build/target/product/security/testkey.x509.pem build/target/product/security/testkey.pk8 $1 update_new.zip./sign_update.sh update.zip就可得到update_new.zip的签过名的更新包
5. 可以测试了
- updater-script修改实战
- updater-script
- android updater-script解析
- android updater-script解析
- Edify语法简介(Updater-Script)
- Edify语法简介(Updater-Script)
- Updater-script升级脚本阅读指南
- android升级—updater-script语法
- Android recovery 下使用 updater-script 自制升级包
- Android: An introduction to the Edify (Updater-Script) language
- Android updater-scripts(Edify Script)各函数详细说明
- Android recovery 下使用 updater-script 自制升级包
- 读懂华为U8825D"updater-script"刷机脚本
- Android recovery下使用 updater-script自制升级包
- Android recovery 下使用 updater-script 自制升级包
- 分享Android recovery updater-script进度条函数的使用经验
- Android 升级脚本updater-script 的函数简介
- Android刷机脚本——updater-script
- 好久没发表文章了,来篇iOS开发知识整理!
- ASP.NET cookie 操作详解|cookie 写入、读取、修改、删除
- 收集关于录音录成mp3的思路,欢迎参考和建议
- xcode4常用快捷键--不得不用xcode4了。
- iphone,android,web,wp7同时录音及播放-m4a格式
- updater-script修改实战
- ios下最简单的正则,RegexKitLite
- 一点ios思考
- xcode4 本地化多国语言
- 【ios开发】使用FMDB封装类的sqlite数据库操作
- 最近收集一些ios开发技术博客来看,大家有好的,也可以回复
- ios下 协议与类别,用途很多
- 音频项目思路整理
- mac 非常常用快捷键