腳本語法:
1.copy_dir
語法:copy_dir <src-dir> <dst-dir> [<times**p>]
<src-dir>表示原文件夾,<dst-dir>表示目的文件夾,[<times**p>]表示時(shí)間戳
作用:將<src-dir>文件夾中的內(nèi)容復(fù)制到<dst-dir>文件夾中。<dst-dir>文件夾中的原始內(nèi)容將會(huì)保存不變,除非<src-dir>文件夾中有相同的內(nèi)容,這樣<dst-dir>中的內(nèi)容將被覆蓋
舉例:copy_dir PACKAGE:system SYSTEM:(將升級(jí)包中的system文件夾復(fù)制到手機(jī)中)
2.format
語法:format <root>
<root>表示要格式化的分區(qū)
作用:格式化一個(gè)分區(qū)
舉例:format SYSTEM:(將手機(jī)/system分區(qū)完全格式化)
注意:格式化之后的數(shù)據(jù)是不可以恢復(fù)的
3.delete
語法:delete <file1> [... <fileN>]
<file1> [... <fileN>]表示要格式化的文件,可以是多個(gè)文件用空格隔開
作用:刪除文件1,2到n
舉例:delete SYSTEM:app/Calculator.apk(刪除手機(jī)systen文件夾中app中的Calculator.apk文件)
4.delete_recursive
語法:delete_recursive <file-or-dir1> [... <file-or-dirN>]
<file-or-dir1> [... <file-or-dirN>]表示要?jiǎng)h除的文件或文件夾,可以使多個(gè),中間用空格隔開
作用:刪除文件或者目錄,刪除目錄時(shí)會(huì)將目錄中的所有內(nèi)容全部刪除
舉例:delete_recursive DATA:dalvik-cache(刪除/data/dalvik-cache文件夾下的所有內(nèi)容)
5.run_program
語法:run_program <program-file> [<args> ...]
<program-file>表示要運(yùn)行的程序,[<args> ...]表示運(yùn)行程序所加的參數(shù)
作用:運(yùn)行終端程序
舉例:run_program PACKAGE:install_busybox.sh(執(zhí)行升級(jí)包中的install_busybox.sh腳本)
6.set_perm
語法:set_perm <uid> <gid> <mode> <path> [... <pathN>]
<uid>表示用戶名稱,<gid>表示用戶組名稱,<mode>,表示權(quán)限模式,<path> [... <pathN>]表示文件路徑,可以使多個(gè),用空格隔開
作用:設(shè)置單個(gè)文件或目錄的所有者和權(quán)限,像linux中的chmod、chown或chgrp命令一樣,只是集中在了一個(gè)命令當(dāng)中
舉例:set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh(設(shè)置手機(jī)system中的etc/init.goldfish.sh的用戶為root,用戶組為shell,所有者以及所屬用戶組成員可以進(jìn)行讀取和執(zhí)行操作,其他用戶無操作權(quán)限)
7.set_perm_recursive
語法:set_perm_recursive <uid> <gid> <dir-mode> <file-mode> <path> [... <pathN>]
<uid> 表示用戶,<gid>表示用戶組,<dir-mode>表示文件夾的權(quán)限,<file-mode>表示文件的權(quán)限,<path> [... <pathN>]表示文件夾的路徑,可以多個(gè),用空格分開
作用:設(shè)置文件夾及文件夾中的文件的所有者和用戶組
舉例:set_perm_recursive 0 0 0755 0644 SYSTEM:app(設(shè)置手機(jī)system/app文件夾及其中文件的用戶為root,用戶組為root,app文件夾權(quán)限為所有者可以進(jìn)行讀、寫、執(zhí)行操作,其他用戶可以進(jìn)行讀取和執(zhí)行操作,其中的文件的權(quán)限為所有者可以進(jìn)行讀寫操作,其他用戶可以進(jìn)行讀取操作)
8.show_progress
語法:show_progress <fraction> <duration>
<表示一個(gè)小部分> <表示一個(gè)小部分的持續(xù)時(shí)間>
作用:為下面進(jìn)行的程序操作顯示進(jìn)度條,進(jìn)度條會(huì)根據(jù)<duration>進(jìn)行前進(jìn),當(dāng)操作時(shí)間是確定的時(shí)候會(huì)更快
舉例:show_progress 0.1 0(顯示進(jìn)度條當(dāng)操作完成后前進(jìn)10%)
9.symlink
語法:symlink <link-target> <link-path>
<link-target>表示鏈接到的目標(biāo),<link-path>表示快捷方式的路徑
作用:相當(dāng)于linux中的ln命令,將<link-target>在<link-path>處創(chuàng)建一個(gè)軟鏈接,<link-target>的格式應(yīng)為絕對(duì)路徑(或許相對(duì)路徑也可以),<link-path>為“根目錄:路徑”的形式
舉例:symlink /system/bin/su SYSTEM:xbin/su(在手機(jī)中system中的xbin中建立一個(gè)/system/bin/su的快捷方式)
10.assert
語法:assert <boolexpr>
作用:此命令用來判斷表達(dá)式boolexpr的正確與否,當(dāng)表達(dá)式錯(cuò)誤時(shí)程序終止執(zhí)行※此作用有待驗(yàn)證
11.package_extract_file/dir語法:package_extract_file(file/dir,file/dir)
作用:提取包中文件/路徑
舉例:package_extract_dir("system", "/system");
package_extract_file("system/bin/modelid_cfg.sh", "/tmp/modelid_cfg.sh");
12.write_radio_image
語法:write_radio_image <src-image>
作用:將基帶部分的鏡像寫入手機(jī),<src-image>表示鏡像文件
舉例:write_radio_image PACKAGE:radio.img
13.write_hboot_image
語法:write_hboot_image <src-image>
作用:將系統(tǒng)bootloader鏡像寫入手機(jī),<src-image>表示鏡像位置,此命令在直到在所有的程序安裝結(jié)束之后才會(huì)起作用
舉例:write_hboot_image PACKAGE:hboot.img
14.write_raw_image語法:write_raw_image <src-image> <dest-root>
作用:將boot.img寫入手機(jī),里面包含了內(nèi)核和ram盤
舉例:write_raw_image PACKAGE:boot.img BOOT:
META-INF文件夾的修改:
打開META-INF文件夾,你會(huì)看到一些文件和一個(gè)文件夾。文件就是加密信息,我們可以不用管它,重要的是那個(gè)文件夾,一步步點(diǎn)進(jìn)去,會(huì)看到update-script,這個(gè)就是升級(jí)腳本,它控制著我們刷機(jī)的步驟和順序等信息,非常重要。
我大概復(fù)制一部分來做下解釋(該文件可以直接用文本打開并編輯):
show_progress 0.500000 0 ----插入一個(gè)標(biāo)簽信息
format SYSTEM: ----格式化system
copy_dir PACKAGE:system SYSTEM: --拷貝刷機(jī)包的system到機(jī)身system
set_perm_recursive 0 0 0755 0644 SYSTEM: -------權(quán)限類的設(shè)置
show_progress 0.200000 0 -------再插入一個(gè)標(biāo)簽
write_raw_image PACKAGE:boot.img BOOT: ---刷寫boot
format CACHE: -----格式化緩存
show_progress 0.100000 10 -----插入一個(gè)標(biāo)簽
ok,大部分的東西都不需要我們修改。但如果你自己新建了一個(gè)/data/app,并在里面內(nèi)置了自己喜歡的軟件,那我們就要在升級(jí)腳本里做一些修改了,因?yàn)槟_本里并沒有提到這個(gè)data文件夾(上面的腳本里,提到了system文件夾)。
我們只需要加入(這個(gè)是比較保守的寫法):
show_progress 0.200000 0 ---樣成好習(xí)慣,加入一個(gè)顯示標(biāo)簽吧
delete DATA:app
delete DATA:init.rc
delete DATA:local
delete DATA:dalvik-cache
copy_dir PACKAGE:data DATA: -----拷貝刷機(jī)包的data
set_perm 1000 1000 0771 DATA:app ----設(shè)置data/app的權(quán)限
那我們把這段腳本加在哪個(gè)位置呢?我自己一般是放在
show_progress 0.200000 0
write_raw_image PACKAGE:boot.img BOOT:
的前面。
修改過的升級(jí)腳本,就可以讓你新建的data文件夾,能夠成功刷進(jìn)去了。
再次體現(xiàn),升級(jí)腳本是非常重要的東西,如果你想制作一個(gè)簡(jiǎn)單的升級(jí)補(bǔ)丁,也需要用到升級(jí)腳本。我在后面會(huì)單獨(dú)介紹小補(bǔ)丁的制作方法
聯(lián)系客服