Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android手機 >> Android刷機教程 >> 安卓刷機技巧 >> ROM之家教你怎樣創建一個刷機包

ROM之家教你怎樣創建一個刷機包

編輯:安卓刷機技巧

  目前有好幾種方法來安裝軟件或是庫文件到你的Android手機上。你可以使用市場程序來查找並安裝軟件,也可以使用adb命令行工具來安裝或是發送文件到你的Android文件系統中。這些方法對於操作單個文件來說都挺方便的,但是如果你需要一次性安裝多個軟件或是庫文件時,那麼最為方便的方法大概就是使用update.zip(也就是刷機包)文件了。Android系統使用恢復工具(recovery)來安裝這個update.zip文件中的軟件或庫文件到Android文件系統中。而一個ROM或是主題開發者通常都是使用這個方式來發布他們的作品(刷機包)。

  創建一個update.zip文件是很簡單的事情,你所需要做的就是將文件放置到與Android文件系統中相對應的文件夾中,然後編寫一個用來復制這些文件到手機對應位置的update-script文件。作為舉例,本文會安裝Calculator.apk到system/app文件夾,復制libsec-ril.so文件到system/lib文件夾:

  新建一個空文件夾(本文例:C:\\anzhi)

  新建用來放置Calculator.apk的文件夾C:\\anzhi\\system\\app以及用來放置libsec-ril.so的文件夾C:\\anzhi\\system\\lib。

  創建用來放置update-script文件的文件夾C:\\anzhi\\META-INF\\com\\google\\android。

  創建一個名為update-script的文件,其內容如下:

  show_progress 0.1 0

  copy_dir PACKAGE:system SYSTEM:

  show_progress 0.1 10

  行1和行3:顯示進度條

  行2:復制刷機包中的system文件夾到Android的/system

  注意:你應該在文件的最末尾多添加一個空行

  將C:\\anzhi壓縮中的所有內容壓縮為zip包(千萬記住:是壓縮anzhi這個文件夾中的內容,不是anzhi文件夾本身)

  為anzhi.zip簽名

  簽名命令:java -jar signapk.jar certificate.pem key.pk8 anzhi.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

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved