綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[教學] 教你如何從官方升級包中提取內核並且添加rec

[複製連結] 查看: 4514|回覆: 3|好評: 1
跳轉到指定樓層
樓主
jianlin3062 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2014-6-11 09:25

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
聲明1:本帖大部分內容來自xda上doomlord等大神的教程,我只是把它總結了一下,工具也是我從doomlord的github上下載下來的。
聲明2:應該適用于一切Sony手機,不過新機器可能沒有適配的recovery,需要自己編譯,替換。z2目前已經有了適配的,所以不需要自己編譯。
聲明3:我寫這個帖子是因爲我已經對z2失去了研究的興趣,所以留下些東西,作爲總結,方便有興趣研究的人。

要求:
一台裝了64位linux系統與windows系統的電腦(32bit不知道行不行,但是我的是64bit的)
膽大心細的做事風格
有linux的使用經驗

步驟:
1.獲取官方內核(在windows下操作)
有兩種途徑獲得官方內核kernel.sin文件
(1)下載官方ftf包用winrar等工具解壓,就可以看到kernel.sin文件
(2)從us和pcc等軟件的緩存中拷貝出最大的兩個文件,用flashtool解開就可以看到kernel.sin文件
緩存地址一般是C:ProgramDataSony MobileUpdate Enginedb13740270lob_fs
解包方法:
打開flashtool軟件,選擇工具-us固件解密,文件夾選擇爲你放置兩個緩存文件的位置,就可以看到兩個文件,選中兩個文件,點擊解密。
在你放置緩存文件的地方就會生成大量.sin文件,其中就有kernel.sin。

1.5找一個做好的帶rec的內核,目的是獲得較新的recovery,不需要自己編譯。(必須是sony的,因爲只有sony才有帶rec的內核這種東西,但不需要是同型機,只要是比較新的就行,recovery可以一直用的)

====取得kernel.sin和帶rec內核文件之後,就可以重啓電腦,進入linux了=======

2.使用doomlord的工具解包(下載地址:http://pan.baidu.com/s/1gd68lXp,github地址https://github.com/DooMLoRD/build_tools
將kernel.sin文件放入build_tools-master文件夾的bin這個文件夾裏面
使用終端執行命令:unpack-kernelsin.pl kernel.sin(使用了perl,所以需要預先安裝perl)
可以得到一堆文件和文件夾,我們需要的有如下幾個:kernel.sin-dt.img,kernel.sin-kernel和kernel.sin-ramdisk文件夾

3.使用doomlord的工具解包帶rec的內核文件
基本操作和上面一樣,只是命令換成了:unpack-bootimg.pl xxx.img(xxx代表你下的文件的名字)
同樣得到一堆文件和文件夾,我們只需要一個:xxx.img-ramdisk文件夾

4.打包文件夾並替換對應文件
(1)打開kernel.sin-ramdisk文件夾,找到write /sys/kernel/security/sony_ric/enable 1 這句話,將1改爲0,再保存即可。(這裏是爲了關閉sony的RIC保護,使system分區可寫,如果忘記修改,就需要每次開機都修改/sys/kernel/security/sony_ric/enable這個文件,將其中的1改爲0)
(2)在命令行中進入kernel.sin-ramdisk文件夾的根目錄,輸入如下命令,將其打包爲.cpio文件:find . | cpio -o -H newc > ../1.cpio
(3)現在在kernel.sin-ramdisk的上層文件夾中就可以找到1.cpio文件,將它複制到xxx.img-ramdisk文件夾中sbin文件夾裏面,覆蓋不是recovery的cpio文件(就是先把那個文件刪除,再把自己制作的文件名字改成和那個文件一樣,複制到sbin文件夾)
(4)現在從命令行進入xxx.img-ramdisk,輸入如下命令,將其打包:find ./ | cpio -H newc -o | gzip >../ramdisk.cpio.gz

5.合並所有文件,制作boot.img
(1)將kernel.sin-dt.img,kernel.sin-kernel和ramdisk.cpio.gz複制到build_tools-master文件夾的msm8974ab_shinano文件夾
中,並將前兩個文件分別改名爲dt.img和zImage
(2)從命令行進入msm8974ab_shinano,運行命令:./makeit.sh,就可以得到boot.img文件了

6.在自己的機器上刷入制作好的內核,檢查recovery是否正常,檢查系統中內核的型號是否同官方一致。如果均正常,那麽恭喜你,制作成功
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)

評分

參與人數 6碎鑽 +5 經驗 +2 幫助 +10 技術 +2 收起 理由
andy881005 + 3 + 2 + 5 + 2 很給力!
0910566962 + 1 + 1 非常讚
王柏堯 + 1 + 1 非常讚
ianxzr + 1
yang50881 + 1 看了不是很懂,不過還是給個分吧.
lhnq77 + 1 姐很想給你一個吻,但不現實,還是給分吧.

查看全部評分

收藏收藏3 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
ja551000 | 收聽TA | 只看該作者
發表於 2014-6-11 13:16
由 手機網頁 發佈
感覺潮複雜的啊~~
不過謝謝分享嘍!
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
ztc1997 | 收聽TA | 只看該作者
發表於 2014-7-8 21:10
doomlord的解打包工具感覺不是太好用,我推薦大家使用大陸開發者製作的https://github.com/xiaolu/mkbootimg_tools

評分

參與人數 1碎鑽 +3 幫助 +5 技術 +1 收起 理由
andy881005 + 3 + 5 + 1 很給力!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
WAISINGYUNG | 收聽TA | 只看該作者
發表於 2015-3-4 13:30
用64位系统执行
  1. ./makeit.sh
複製代碼
会出现./mkbootimg: not found

执行
  1. sudo apt-get install lib32stdc++6 lib32z1 lib32z1-dev
複製代碼
后就可以了
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則