1、谷歌4代,相關代號一覽
Device |
Codename |
Factory firmware from Google |
Galaxy Nexus |
maguro |
|
Nexus 4 |
mako |
|
Nexus 7 |
grouper |
|
Nexus 10 |
manta |
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進行調試的事情把 :)