創建壹個update.zip文件是很簡單的事情,妳所需要做的就是將文件放置到與Android文件系統中相對應的文件夾中,然後編寫壹個用來復制這些文件到手機對應位置的update-script文件。作為舉例,本文會安裝Calculator.apk到system/app文件夾,復制libsec-ril.so文件到system/lib文件夾:
新建壹個空文件夾(本文例:C:\mumayi)
新建用來放置Calculator.apk的文件夾C:\mumayi\system\app以及用來放置libsec-ril.so的文件夾C:\mumayi\system\lib。
創建用來放置update-script文件的文件夾C:\mumayi\META-INF\com\google\android。
創建壹個名為update-script的文件,其內容如下(高亮部分):
行1和行5:顯示進度條
行3:復制刷機包中的system文件夾到Android的/system
註意:妳應該在文件的最末尾多添加壹個空行(也就是行6)
將C:\mumayi壓縮中的所有內容壓縮為zip包(千萬記住:是壓縮mumayi這個文件夾中的內容,不是mumayi文件夾本身)
為mumayi.zip簽名
簽名命令:java -jar signapk.jar certificate.pem key.pk8 mumayi.zip update.zip
將update.zip文件復制到SD卡中,然後手機進入recovery界面來刷入這個刷機包
進階學習:(以下僅作參考,因實際情況不同,可能會有壹定的出入。但是極度推薦學習本部分)
update-script 語法參考(在Android源碼的recovery.c文件中定義):
copy_dir
語法:copy_dir <源目錄> <目標目錄> [<時間戳>]
描述:復制<源目錄>中的內容到<目標目錄>中。如果<源目錄>中沒有同名文件進行覆蓋,那麽<目標目錄>中的原始內容會仍然存在不變。
示例:copy_dir PACKAGE:system SYSTEM:,這個命令會把刷機包中的system文件夾復制到手機的/system文件夾中
format
語法:format <根目錄>
描述:格式化壹個分區。
示例:format SYSTEM:,這個命令會格式化整個/system。註意:格式化時所進行的數據刪除操作是不可逆轉的。
delete
語法:delete <文件1> [... <文件N>]
描述:刪除文件。
示例:delete SYSTEM:app/Calculator.apk,這個命令會刪除手機system/app文件夾中的Calculator.apk文件。
delete_recursive
語法:delete_recursive <文件或目錄1> [... <文件或目錄N>]
描述:刪除壹個文件或遞歸刪除某個文件夾(也就是包括該文件夾中的所有內容)
示例:delete_recursive DATA:dalvik-cache,這個命令會刪除/data/dalvik-cache文件夾以及該文件夾中的所有內容。
run_program
語法:run_program <執行程序> [<參數> ...]
描述:運行壹個刷機包中的外部程序。
示例:run_program PACKAGE:install_busybox.sh,這個命令會執行刷機包中的install_busybox.sh腳本(命令行)。
set_perm(本命令中涉及的數值,如有疑惑,請自行Google。uid=user id,gid=group id)
語法:set_perm <uid> <gid> <屬性> <路徑> [... <路徑N>]
描述:設置某個文件或是指定的整個目錄樹的所有者和權限,就像是壹個‘chmod’、‘chown’、以及‘chgrp’命令的集合體。
示例:set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh,這個命令會設置手機上system分區中etc/init.goldfish.sh文件的用戶組為:shell;用戶為:root;權限為:所有者以及所屬用戶組成員可以進行讀取和執行操作,其他用戶無操作權限。
set_perm_recursive(本命令中涉及的數值,如有疑惑,請自行Google。uid=user id,gid=group id)
語法:set_perm_recursive <uid> <gid> <文件夾屬性> <文件屬性> <路徑> [... <路徑N>]
描述:遞歸設置某個文件夾中所有內容的所有者和權限
示例:set_perm_recursive 0 0 0755 0644 SYSTEM:app,這個命令會遞歸設置手機上system/app文件夾以及其所有內容的用戶組為:root;用戶為:root;app文件夾的權限為:所有者可以進行讀、寫、執行操作,其他用戶可以進行讀取和執行操作;app文件夾下的所有文件的權限為:所有者可以進行讀寫操作,其他用戶可以進行讀取操作。
show_progress
語法:show_progress <小數> <持續時間>
描述:為下壹個操作在屏幕上顯示壹個進度條,自動的根據<持續時間>指定的秒數來遞增進度條狀態(如果實際上進度條的推進是可以確定的,那就會更加迅速)。
示例:show_progress 0.1 0,這個命令是指,操作完成後,進度條前進0.1(10%)
symlink
語法:symlink <鏈接目標> <鏈接所在路徑>
描述:創建壹個符合鏈接(就像是 ‘ln-s’)。<鏈接所在路徑>的格式類似於這樣:根目錄:路徑, 但是<鏈接目標>則是指目標文件(而且位置可能是相對與鏈接所在路徑的)
示例:symlink /system/bin/su SYSTEM:xbin/su,這個命令會為/system/bin/su在手機system分區的xbin文件夾下創建壹個符號鏈接,名為su