【UbuntuPhone開發實戰】工具篇--Nexus4 booter unlock,獲取root權限,刷CM10和刷Ubuntu


1、谷歌4代,相關代號一覽

Device

Codename

Factory firmware from Google

Galaxy Nexus

maguro

takju or yakju

Nexus 4

mako

occam

Nexus 7

grouper

nakasi or nakasig

Nexus 10

manta

mantaray

2、美版新機解鎖bootloader

2.1 重啟進入fastboot模式

 Power button + volume up + volume down. 也就是同時按住 電源鍵+音量加+音量減;

2.2 使用fastboot工具解鎖bootloader

解鎖后狀態:(最后一行 Lock state: unlocked)

ubuntu等linux機器下輸入命令:

sudo fastboot oem unlock

在手機上通過音量加 調節到接受許可,進行解鎖,一會兒就報告解鎖成功了;

然后,使用音量鍵上下調節到start模式,按 電源鍵 確認並啟動系統;

 

3、打開調試模式

參考上一篇文章,打開開發者模式中的usb調試模式: Nexus 4 打開調試模式 

 

4、下載Nexus 4 Toolkit進行root

百度搜索,並選取自己中意的版本進行下載,然后鏈接電腦后通過選擇功能4 ,進行root;注意在詢問是否當前為fastboot模式時選擇no,讓其自己重啟手機並進入fastboot模式,從而從不安全的模式啟動並設置分區可讀掛載、然后自動安裝su軟件包到 /system/bin/目錄下,然后就能夠通過su的方式獲取root權限了;

比如,輸入如下命令鏈接手機:

adb shell
su

然后在手機上彈出框中確認使adb獲得root權限;

雖然已經安裝了su,可以在adb shell中通過su獲得權限,但是adb root的時候還是報錯!

adbd cannot run as root in production builds

非常的坑跌!網絡上說的解決辦法多種多樣,比如:需要設置default.prop文件內容為以下,然后重新編譯android源碼神馬的。。。:

#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
persist.service.adb.enable=1
ro.allow.mock.location=0
ro.debuggable=0
rild.libpath=/system/lib/libril-qc-qmi-1.so
persist.sys.usb.config=mtp

各種結果表示,工廠出來的系統adb root總會失敗!所以打算換rom;

 

5、刷機精靈裝CM10.1第三方開放rom

心里想着,換個不是強制production build的第三方rom,由完全的root權限總可以把! 所以用刷機精靈下載了最新的CM 10.1然后各種自動安裝了一個叫:

ClockworkMod Recovery V6.0.23的恢復工具,將CM的android4.2.2的包命名為了update.zip放到了sdcard目錄下;然后很快自動安裝之並重啟;

打開USB調試模式后,趕緊用adb root命令鏈接,果然OK;

心想這下可以開始刷Ubuntu了!

 

6、Ubuntu下刷入Ubuntu Phone Dailiy編譯版

使用Ubuntu自帶刷機腳本進行刷機,命令很簡單:

$phablet-flash --help
usage: phablet-flash [-h] [-d {mako,maguro,manta,grouper}] [-s SERIAL]
                     [-b | -D] [-r REVISION] [-l | -p BASE_PATH | -u URI]

phablet flash tool. Grabs build from the network and deploys to device. Does
best effort to deploy in different ways.

optional arguments:
  -h, --help            show this help message and exit
  -d {mako,maguro,manta,grouper}, --device {mako,maguro,manta,grouper}
                        Target device to deploy.
  -s SERIAL, --serial SERIAL
                        Device serial. Use when more than one device is
                        connected.
  -b, --bootstrap       Bootstrap the target device, this only works on Nexus
                        devices or devices that use fastboot and are unlocked.
  -D, --download-only   Download image only, but do not flash device. Use -d
                        to override target device autodetection if target
                        device is not connected.
  -r REVISION, --revision REVISION
                        Choose a specific build number to download.
  -l, --latest          Pulls the latest daily image.
  -p BASE_PATH, --base-path BASE_PATH
                        Installs from base path, you must have the same
                        directory structure as if you downloaded for real.
                        This option is completely offline.
  -u URI, --uri URI     Alternate download uri

可以額外參考官方教程:https://wiki.ubuntu.com/Touch/Install;並且參考上面的命令說明;此處說明2個小技巧:

tip1: 源碼分析:

 which定位程序路徑,file查看格式,vim查看源碼

qunengrong@qunengrong-Studio-1450 /usr/bin
$which phablet-flash 
/usr/bin/phablet-flash
qunengrong@qunengrong-Studio-1450 /usr/bin
$file /usr/bin/phablet-flash
/usr/bin/phablet-flash: Python script, ASCII text executable
qunengrong@qunengrong-Studio-1450 /usr/bin
$vim /usr/bin/phablet-flash

tip2:加速下載:

下載軟件路徑:http://cdimage.ubuntu.com/ubuntu-touch-preview/daily-preinstalled/current/

本地存放路徑:$HOME/Downloads/phablet-flash/36/ 文件夾下,注意36為軟件版本,每天加1,3-18為第36版;

#嘗試下載,獲得原始文件路徑,存放
$phablet-flash -D -l -d mako
#用第三方工具如firefox的downthemall多線程下載
#然后指定安裝的版本,如2013-03-18的為第36版
$phablet-flash -l -r 36

拷貝軟件包到/sdcard/目錄后,自動安裝完就OK了;

 

7、錯誤恢復和恢復Android

如果有問題,按如下步驟處理之:

電源鍵+音量上+音量下, 進入fastboot界面,通過音量上下切換到 Recovery 模式;按電源鍵確認並進入Recovery;

7.1 重裝Ubuntu:

1 切換到install zip from sdcard;電源鍵確認;
2 choose zip from sdcard;電源鍵確認;
3 進入第一個目錄0;電源鍵確認;
4 選中quantal-preinstalled-armel+mako.zip並確認安裝
5 再選中quantal-preinstalled-phablet-armhf.zip並確認安裝;
6 安裝完畢后上下切換到Go back;再到外層的重啟;進入Ubuntu了;

7.2 恢復Android:

這個方法很多了,各種刷機工具都可以;另外可以同7.1的步驟:

1 切換到install zip from sdcard;電源鍵確認;
2 移動到第二項apply /sdcard/update.zip; 電源鍵確認;
3 安裝完成后重啟就進入了CM10

 

當前系統,MX拍的照,不咋第:

預告: 后面在陸續講講 Nexus4連上Ubuntu后ssh登錄控制,和使用qtcretor進行調試的事情把 :)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM