古詩詞大全網 - 個性簽名 - 如何生成Android系統的發布版本

如何生成Android系統的發布版本

下面詳細介紹壹下整個過程。

1.生成加密的密鑰文件

要對Android系統進行簽名,需要生成四類密鑰文件。

a)釋放鍵

b)媒體

c)共享

d)平臺

下面以releasekey為例簡單介紹壹下生成過程。

1)進入/android_src/development/tools目錄。

/開發/工具$ ls

apk check etc 1 tool hosttestlib jdwpspy makedict mkstubs

axl find unused idegen line _ endings make _ key monkey runner zoneinfo

2)使用make_key工具生成簽名文件。

'開發/工具$ sh make _ key release key '/C = CN/ST = JiangSu/L = NanJing/O = Company/OU = Department/CN = your name/email address = your-mail address '

輸入“releasekey”的密碼(空白表示無;密碼將可見):mypassword & lt-設置您的密碼。

使用密碼[我的密碼]創建platform.pk8

生成RSA私鑰,2048位長模數

...............+++

........................................................+++

e是3 (0x3)

這裏順便介紹壹下make_key的參數。第壹個參數是生成密鑰的名稱,第二個參數是關於您的公司的信息。

key的名字很好理解,就是上面說的四類鍵。公司信息中有很多參數,其含義如下:

c->;國家名稱(2個字母的代碼)

ST->;州或省名(全名)

l-& gt;地點名稱(例如,城市)

o-& gt;組織名稱(如公司)

歐-& gt;組織單位名稱(例如,部門)

CN-& gt;常用名(例如,您的名字或服務器的主機名)

電子郵件地址-& gt;聯系人電子郵件地址

這樣就生成了壹組releasekey,其他三種類型的密鑰也是以同樣的方式生成的。

生成的結果如下:

/開發/工具$ ls

makedict media . pk8 MK stubs platform . pk8 release key . pk8 shared . pk8

make _ key media . x509 . PEM platform . x509 . PEM release key . x509 . PEM shared . x509 . PEM

*.pk8是生成的私鑰,* .x509.pem是公鑰,生成時成對出現。

2.將pk8和x509.pem文件復制到供應商/modul/security/product _ modul目錄。

/Android _ src/vendor/Modul/security/product _ Modul $ CP../../../../development/tools/*.pk8。/

/Android _ src/vendor/Modul/security/product _ Modul $ CP../../../../development/tools/*pem。/

雖然這壹條不是必須的,但是這樣做更好。由於該項目,產品和產品模塊被替換為MODM和MODM產品。

3.回到根目錄android_src

/Android _ src/vendor/Modul/security/product _ Modul $ CD../../../../

大家看完壹定覺得這壹步是多余的,沒必要單獨提。但事實證明,有必要提壹下這壹步,因為第五步的操作必須在根目錄下進行,否則會出錯。在這壹點上我吃了很多苦。

4.編譯系統

/Android _ src$make-j4產品-產品_模塊-用戶分布

為什麽這個和平時的編制不壹樣?還有兩個參數,PRODUCT-product_modul-user和dist。編譯完成後,將在/android_src/dist/目錄中生成壹個以product_modul-target_files開頭的zip文件。這是我們需要簽名的文件系統。

5.開始簽名

android_src$。/build/tools/release tools/sign _ target _ files _ apks-d vendor/Modul/security/product _ Modul/out/dist/product _ Modul-target _ files . zip out/dist/signed _ target _ files . zip

錯誤:沒有為指定密鑰:

CalendarWidget.apk

Contacts_yellowpage.apk

SnsAppMain.apk

fbandroid-1.5.0.apk

AnalogClockWidget.apk

MessageWidget.apk

NewsWidget.apk

上面的意思是使用sign_target_files_apks工具用vendor/module/security/product _ module/下的密鑰對product _ module-target _ files . zip文件進行簽名,並將簽名結果放入out/dist/signed _ target _ files . zip中.

從上面的簽名結果來看,簽名並不成功,因為部分apk程序已經被簽名或者找不到對應的密鑰。這也難不倒我們。我們可以設置過濾,不簽署上述程序。該方法如下:

使用參數"-e

android_src$。/build/tools/release tools/sign _ target _ files _ apks-d vendor/Modul/security/product _ Modul/-e calendar widget . apk =-e Contacts _ yellow page . apk =-e snsapmain . apk =-e FB Android-1 . 5 . 0 . apk =-e analogclockwidget . apk =-e message wid get . apk =-e news widget . apk = out/dist/product _ Modul-target _ files . zip out/dist/dist

輸入供應商/Modul/security/product _ Modul//介質密鑰的密碼& gt& lt-輸入密碼

輸入供應商/Modul/security/product _ Modul//平臺密鑰的密碼& gt& lt-輸入密碼

輸入vendor/Modul/security/product _ Modul//release key key & gt;的密碼。& lt-輸入密碼

輸入供應商/Modul/security/product _ Modul//共享密鑰的密碼& gt& lt-輸入密碼

正在重寫RECOVERY/RAMDISK/default.prop:

替換:ro.build.tags=test-keys

with:ro . build . tags =釋放鍵

未簽名:CalendarWidget.apk

未簽名:Contacts_yellowpage.apk

簽名:Mms.apk

簽名:SoundRecorder.apk

簽名:AccountAndSyncSettings.apk

簽名:Camera.apk

.......................................................................

重寫SYSTEM/build.prop:

替換:ro.build.tags=test-keys

with:ro . build . tags =釋放鍵

替換:ro.build.description= test-keys

使用:ro . build . description = release-keys

替換:ro.build.fingerprint=...........................

with: ro.build.fingerprint=.............................

簽名:framework-res.apk

完成了。

這就完成了android系統的簽名工作。

6.生成圖像文件

android_src$。/build/tools/release tools/img _ from _ target _ file out/dist/signed-target-files . zip out/dist/signed-img . zip

正在創建boot.img...

創建recovery.img...

正在創建system.img...

正在創建userdata.img...

清理...

完成了。

使用img_from_target_files工具生成signed-img.zip文件,包括boot.img、userdate.img、system.img文件等。

7.通過fastboot下載signed-img.zip文件。

快速啟動更新簽名-img.zip

可以通過fastboot將簽名的系統文件下載到手機上。