1. 求高通cpu機器的recovery移植教程
准備環境:
cygwin安裝,如果有linux環境,則可以直接繞過這一步:
http://bbs.an.com/thread-5292876-1-1.html
一、選擇合適的基礎包
1.1 選擇合適的第三方ROM 包
市面上高通平台的手機眾多,這時我們需要選擇一個合適的ROM 作為基礎包(這這里簡稱Base)。
首先,本篇中我們講的是直接將高通平台手機的官方ROM 移植成為網路的ROM。
在這里我們首先要找到自己機型的官方卡刷包,然後進行如下操作:
1)提取卡刷包的system文件夾
2)提取卡刷包中的boot.img
1.2 選擇合適的網路OS 刷機包
在這里一定要注意,必須要高通平台的網路雲刷機包作為移植基準包(後面簡稱sample 包)
二、移植之前的准備工作
本帖隱藏的內容
選擇好合適的base 包並下載完sample 包以後,我們首先要進行上面的操作得到system 文件夾和boot.img,這時再將sample 包解壓到任意文件夾。
1.明確移植操作的方向
在這里,我們首先一定要明確移植的方向是:
以網路的sample 包作為最終成型刷機包的基礎,把base 包中各機型特有的東西加上去,最終形成自己的刷機包。
2.學習使用BeyondCompare
使用BeyondCompare進行對比操作,篇幅所限,本文中不再教給大家,但是在互聯網中關於這個工具的教程有很多,大家可以自學下。
三、移植過程中所需要的操作
1.移植網路的應用層和framework 框架層此處將如下圖三個文件夾必須使用網路sample 包的,否則會產生各種bug:
2.移植lib 層
system 下的lib 文件夾主要是Android 系統的動態鏈接庫,這裡面有一些是系統硬體相關的介面,以及
一些系統層應用需要調用的庫文件,還有廠商的HAL層的庫文件,網路同樣在此處進行了修改。
所以在移植這里的時候一定要謹慎,不能隨便刪減添加東西,但是其中的moles 必須使用官方base 包的,下面給出使用的基本列表,在列表以外的盡量保持網路sample 包的
需要替換為官方的文件狀態(如果沒有需要添加)
moles 文件夾必須整個使用官方base 包的
使用BeyondCompare 對比出來base 包多的.so 文件可以添加
3.移植system/bin 和system/xbin 文件夾
必須全部使用sample 包的,否則有可能出現系統許可權錯誤,busybox 失效等問題
4.移植system/media 文件夾整個文件夾必須使用網路sample的,否則可能出現開機動畫消失,鎖屏消失,無法開機等問題。
5.移植system/usr 文件夾,
這里請將sample 包的keychars 和keylayout 兩個文件刪除,替換為base 包中的這兩個文件夾。
6.移植system/etc 文件夾
必須將sample 文件夾中firmware 文件夾刪除,替換為官方base 包中的firmware 文件夾。:
7.修改build.prop
必須使用base 包中官方的build.prop,但是必須在build.prop 任意位置加入如下幾行(對比了網路和聯想官方的build.prop,發現網路修改和添加了一下prop,移植時如果base的build.prop有這個屬性,替換,沒有則增加即可):
ro..build.hardware=c8813(以c8813為例,可選擇自己適配的機型)
ro..build.hardware.version=1.0
ro..build.software=yi_3.0
ro..build.version.release=2.1
ro.proct.manufacturer=Bai
persist.sys.emmc=/mnt/sdcard2
ro.config.notification_sound=Ding.mp3
ro.config.ringtone=Echo.mp3
ro.config.alarm_alert=alarm.mp3
注意事項:
修改build.prop,建議直接使用BeyondCompare來做,按給出的參考進行復制。
8.移植boot.img
這里無需多說,boot.img 啟動鏡像必須使用自己手機的。對比了一下網路和官方的boot.img,發現網路修改了boot.img里的default.prop和init.rc來支持手機root和它自己的一些服務。
修改:boot.img-ramdisk/default.prop
ro.secure=1 修改為 ro.secure=0
ro.debuggable=1 修改為 ro.debuggable=1
persist.sys.usb.config=mass_storage 修改為 persist.sys.usb.config=mass_storage,adb
修改:boot.img-ramdisk/init.rc
a) 添加副卡路徑(可選):在export EXTERNAL_STORAGE /mnt/sdcard後面加上一行export SECONDARY_STORAGE /mnt/sdcard2
注意:不一定是/mnt/sdcard2, 如果加上後,文件管理器上面找不到手機上的文件,請不要添加這一項
b) 將BOOTCLASSPATH改為網路的,為了防止有些jar包遺漏
c) 另外在on fs下加上
chown root root /system/bin/su
chmod 6755 /system/bin/su
d) 添加以下內容, 好像是網路的服務
service alljoyn-daemon /system/xbin/alljoyn-daemon --internal--no-switch-user --no-bt
class main
oneshot
service WordSegService /system/bin/WordSegService
class main
oneshot
service backuprestore/system/bin/backuprestore
class main
socket backuprestorestream 600 system system
四、移植完成後的工作
1.壓縮打包為zip 刷機包
META-INF建議在網路的c8813基礎上進行修改
修改META-INF/com/google/android/updater-script:
assert(getprop("ro.proct.device")== "c8813" ||
getprop("ro.build.proct") == "c8813" ||
getprop("ro.proct.device") == "c8813" ||
getprop("ro.build.proct") == "c8813");
這個直接刪除。
assert(package_extract_file("recovery.img","/tmp/recovery.img"),
write_raw_image("/tmp/recovery.img", "recovery"),
delete("/tmp/recovery.img"));
這個是要來刷recovery的,可以刪除。
2.壓縮打包為zip 刷機包
完成上述操作後,你的網路OS移植ROM 已經基本完成了,這時候,你需要將你解包sample 包出來並移植完成後的system,META-INF 文件夾以及boot.img 啟動鏡像打包回去,只需要像平時壓縮文件時一樣,將它們打包為一個zip 壓縮包。在這里一定要注意,必須使用zip格式壓縮,同時不能用太大的壓縮碼率。
3.使用Recovery 輸入ROM 包進行測試!
我相信進行移植操作的各位都已經很熟練刷機這個步驟,但是在這里我還是要提醒大家,做好的ROM 一定要自己刷入進行測試,刷入時一定要雙清(雙Wipe)。
2. 紅米2 高通基於安卓6.0.1最新版TWRP刷機recovery 怎麼刷入
刷入方抄法如下:
用【移動叔襲叔工具箱】軟體,刷入【第三方recovery】,步驟如下:
在已經成功獲取root許可權的手機上,下載安裝【移動叔叔工具箱】軟體,使用【移動叔叔工具箱】軟體,刷入recovery模式的方法步驟:
1.在網上(推薦手機品牌官網、安卓網機鋒論壇、網路網盤)搜索與個人手機品牌及機型信號相匹配一致的第三方recovery.img文件,將其復制粘貼在手機SD卡卡根(卡根:就是直接復制粘貼在SD卡里,不能將文件放在文件夾目錄中)
2.成功獲取手機安卓系統root許可權
3.在已經成功root的手機上下載並安裝【移動叔叔工具箱】(軟體)
4.用【移動叔叔工具箱】的【recovery更新】功能→【導入SD卡上的recovery.img文件】→確定→重啟→重啟後,自動進入recovery模式→刷入完成。
進入recovery模式後,按音量鍵→切換選項;按開機電源鍵→確認,執行操作