adb,全稱(chēng) Android Debug Bridge,是 Android 的命令行調(diào)試工具,可以完成多種功能,如跟蹤系統(tǒng)日志,上傳下載文件,安裝應(yīng)用等。
支持兩種ADB鏈接方式:USB和網(wǎng)絡(luò)連接。
USB方式
-
在開(kāi)發(fā)板上進(jìn)入選項(xiàng)->開(kāi)發(fā)人員選項(xiàng),勾上 “USB 調(diào)試” 選項(xiàng)
-
AIO-3399JD4用雙公頭usb數(shù)據(jù)線連接設(shè)備USB3.0口和主機(jī)
-
host/device模式切換
-
設(shè)置->USB->連接到PC
-
網(wǎng)絡(luò)方式
-
網(wǎng)絡(luò)ADB
-
查看3399的IP地址,PC端通過(guò)網(wǎng)絡(luò)訪問(wèn)。例:
-
首先參照安裝 RK USB 驅(qū)動(dòng)一節(jié)安裝好驅(qū)動(dòng)。然后到 http://adbshell.com/download/download-adb-for-windows.html 下載 adb.zip,解壓到C:\adb以方便調(diào)用。 打開(kāi)命令行窗口,輸入:
如果一切正常,就可以進(jìn)入adbshell,在設(shè)備上面運(yùn)行命令。
-
安裝 adb 工具:
-
加入設(shè)備標(biāo)識(shí):
-
加入 udev 規(guī)則:
-
重新插拔 USB 線,或運(yùn)行以下命令,讓 udev 規(guī)則生效:
-
重新啟動(dòng) adb 服務(wù)器
連接管理
列出所有連接設(shè)備及其序列號(hào)
如果有多個(gè)連接設(shè)備,則需要使用序列號(hào)來(lái)區(qū)分:
多設(shè)備下連接指定設(shè)備
可以通過(guò)網(wǎng)絡(luò)來(lái)連接 adb:
獲取系統(tǒng)日志 adb logcat
-
用法
-
示例
運(yùn)行命令 adb shell
獲取詳細(xì)運(yùn)行信息 adb bugreport
adbbugreport用于錯(cuò)誤報(bào)告,里面包含大量有用的信息。
-
示例
root 權(quán)限
如果 TARGET_BUILD_VARIANT 使用的是 userdebug 模式,要獲得 root 權(quán)限,需要先運(yùn)行:
讓 adb 的設(shè)備端切換到 root 權(quán)限模式,這樣 adb remount 等需要 root 權(quán)限的命令才會(huì)成功。
安裝應(yīng)用 adb install
-
用法:
選項(xiàng)包括:
-
示例:
如果安裝成功,工具會(huì)返回成功提示 “Success”;失敗的話,一般是以下幾種情況:
-
INSTALL_FAILED_ALREADY_EXISTS: 此時(shí)需要用 -r 參數(shù)來(lái)重新安裝。
-
INSTALL_FAILED_SIGNATURE_ERROR: 應(yīng)用的簽名不一致,可能是發(fā)布版和調(diào)試版簽名不同所致。如果確認(rèn) APK 文件簽名正常,可以用 adb uninstall 命令先卸載舊的應(yīng)用,然后再安裝。
-
INSTALL_FAILED_INSUFFICIENT_STORAGE: 存儲(chǔ)空間不足,需要檢查設(shè)備存儲(chǔ)情況。
卸載應(yīng)用 adb uninstall
-
用法:
-
示例:
應(yīng)用包名稱(chēng)可以用以下命令列出:
運(yùn)行結(jié)果是:
前面是 apk 文件,后面則是對(duì)應(yīng)的包名稱(chēng)。
命令行幫助信息 adb help
編譯 Android 對(duì)機(jī)器的配置要求較高:
官方推薦 Ubuntu 14.04 操作系統(tǒng),經(jīng)測(cè)試,Ubuntu 12.04 也可以編譯運(yùn)行成功,只需要滿(mǎn)足 http://source.android.com/source/building.html 里的軟硬件配置即可。編譯環(huán)境的初始化可參考 http://source.android.com/source/initializing.html 。
-
安裝 OpenJDK 8:
提示:安裝 openjdk-8-jdk,會(huì)更改 JDK 的默認(rèn)鏈接,這時(shí)可用:
來(lái)切換 JDK 版本。SDK 在找不到操作系統(tǒng)默認(rèn) JDK 的時(shí)候會(huì)使用內(nèi)部設(shè)定的 JDK 路徑,因此,為了讓同一臺(tái)機(jī)器可以編譯 Android 5.1 及之前的版本,去掉鏈接更方便:
-
Ubuntu 12.04 軟件包安裝:
-
Ubuntu 14.04 軟件包安裝:
Android SDK 源碼包比較大,可以通過(guò)如下方式獲取Android7.1源碼包:[下載鏈接]
下載完成后先驗(yàn)證一下 MD5 碼:
確認(rèn)無(wú)誤后,就可以解壓:
注意:解壓后務(wù)必要先更新下遠(yuǎn)程倉(cāng)庫(kù)。 以下為從 gitlab 處更新的方法:
HDMI顯示編譯
HDMI+lvds編譯
手動(dòng)編譯AIO-3399JD4
編譯前執(zhí)行如下命令配置環(huán)境變量:
-
編譯kernel:
-
編譯uboot:
-
編譯android:
編譯完可以用Firefly官方的腳本打包成統(tǒng)一固件,執(zhí)行如下命令:
打包完成后將在rockdev/Image-rk3399_firefly_aiojd4_box/下生成統(tǒng)一固件:update.img
在 Windows 下打包統(tǒng)一固件 update.img 也很簡(jiǎn)單,將編譯生成的文件拷貝到 AndroidTool 的 rockdev\Image 目錄中,然后運(yùn)行 rockdev 目錄下的 mkupdate.bat 批處理文件即可創(chuàng)建 update.img 并存放到 rockdev\Image 目錄里。
編譯的時(shí)候執(zhí)行 ./mkimage.sh 會(huì)重新打包 boot.img 和 system.img, 并將其它相關(guān)的映像文件拷貝到目錄 rockdev/Image-rk3399_firefly_xxx/ 中。以下列出一般固件用到的映像文件:
-
boot.img :Android 的初始文件映像,負(fù)責(zé)初始化并加載 system 分區(qū)。
-
kernel.img :內(nèi)核映像。
-
misc.img :misc 分區(qū)映像,負(fù)責(zé)啟動(dòng)模式切換和急救模式的參數(shù)傳遞。
-
parameter.txt :emmc的分區(qū)信息
-
recovery.img :急救模式映像。
-
resource.img :資源映像,內(nèi)含開(kāi)機(jī)圖片和內(nèi)核的設(shè)備樹(shù)信息。
-
system.img :Android 的 system 分區(qū)映像,ext4 文件系統(tǒng)格式。
-
trust.img :休眠喚醒相關(guān)的文件
-
rk3399_loader_v1.08.106.bin :Loader文件
-
uboot.img :uboot文件
請(qǐng)參照 如何升級(jí)固件 一文來(lái)燒寫(xiě)分區(qū)映像文件。
如果使用的是 Windows 系統(tǒng),將上述映像文件拷貝到 AndroidTool (Windows 下的固件升級(jí)工具)的 rockdev\Image 目錄中,之后參照升級(jí)文檔燒寫(xiě)分區(qū)映像即可,這樣的好處是使用默認(rèn)配置即可,不用修改文件的路徑。
update.img 方便固件的發(fā)布,供終端用戶(hù)升級(jí)系統(tǒng)使用。一般開(kāi)發(fā)時(shí)使用分區(qū)映像比較方便。
定制 Android 固件,有兩種方法:
-
改源碼,然后編譯生成固件。
-
在現(xiàn)有固件的基礎(chǔ)上進(jìn)行裁剪。
前一種方法,可以從各個(gè)層面去定制 Android,自由度大,但對(duì)編譯環(huán)境和技術(shù)要求比較高,參見(jiàn)《編譯 Android 固件》一文。現(xiàn)在介紹后一種方法,分為解包、定制和打包三個(gè)階段。主機(jī)操作系統(tǒng)為 Linux,采用的工具為開(kāi)源軟件。
統(tǒng)一固件 release_update.img,內(nèi)含啟動(dòng)加載器 loader.img 和真正的固件數(shù)據(jù) update.img
update.img 是個(gè)復(fù)合文件,內(nèi)含多個(gè)文件,由 package-file 描述。一個(gè)典型的 package-file 為:
-
package-file
-
update.img 的打包說(shuō)明文件,update.img 里也含有一份 package-file。
-
Image/MiniLoaderAll.bin
-
啟動(dòng)加載器,即 bootloader。
-
Image/parameter.txt
-
參數(shù)文件,可以設(shè)定內(nèi)核啟動(dòng)參數(shù),里面有重要的分區(qū)信息。
-
Image/trust.img,trust.img 是U-Boot作為二級(jí)loader 的打包。
-
Image/misc.img
-
misc 分區(qū)的映像,用來(lái)控制 Android 是正常啟動(dòng),還是進(jìn)入急救模式(Recovery Mode)。
-
Image/kernel.img
-
Android 內(nèi)核。
-
Image/resource.img
-
資源映像,內(nèi)有內(nèi)核開(kāi)機(jī)圖片和內(nèi)核設(shè)備樹(shù)信息(Device Tree Blob)。
-
Image/boot.img
-
Android 內(nèi)核的內(nèi)存啟動(dòng)盤(pán)(initrd),是內(nèi)核啟動(dòng)后最先加載的根文件系統(tǒng),包含重要的初始化動(dòng)作,一般不需要改動(dòng)。
-
Image/recovery.img
-
Android 急救模式的映像,內(nèi)含內(nèi)核和急救模式的根文件系統(tǒng)。
-
Image/system.img
-
對(duì)應(yīng)于 Android 的 /system 分區(qū),是以下的定制對(duì)象。
解包,就是提取 release_update.img 里的 update.img, 然后解壓出內(nèi)含 package-file 所聲明的多個(gè)文件。打包,則是個(gè)逆過(guò)程,將 package-file 將所列的多個(gè)文件合成 update.img,加進(jìn) loader.img,最終生成 release_update.img 。
-
解壓 release_update.img
-
解壓 update.img
-
查看 update 目錄下的文件樹(shù)
這樣,固件就解包成功了,下面就開(kāi)始定制吧。
定制 system.img
system.img 是個(gè) ext4 文件系統(tǒng)格式的映像文件,可以直接掛載到系統(tǒng)進(jìn)行修改:
注意,該 system.img 的剩余空間基本為 0, 如果不是刪除文件,就需要對(duì) system.img 進(jìn)行擴(kuò)容,并根據(jù)最后的文件大小,相應(yīng)地調(diào)整 parameter 文件里的分區(qū)設(shè)置。以下是如何擴(kuò)展空間的示例,在擴(kuò)展前,先運(yùn)行 mount 來(lái)查看系統(tǒng)掛載情況,確保 system.img 已經(jīng)卸載:
打包
首先要檢查一下 system.img 的大小,對(duì)照 parameter 文件的分區(qū)情況(可參考文檔Parameter 文件格式,作必要的大小調(diào)整。例如,parameter.txt 文件里的 system 分區(qū)大小,可以找到 CMDLINE 一行,然后找到 system 字符串:
@ 前面就是分區(qū)的大小,單位是 512 字節(jié),這樣該 system 分區(qū)的大小就是:
只要 system.img 的大小不超過(guò) 1024M,parameter 文件就不用更改。如果分區(qū)不用更改,可以直接用燒寫(xiě)工具將新的 system.img 燒寫(xiě)到開(kāi)發(fā)板的 system 分區(qū)上做試驗(yàn)。否則,需要制作新固件并燒寫(xiě)后再行測(cè)試。以下是打包成統(tǒng)一固件 update.img 所需要的步驟:
-
合成 update.img :
-
合成 release_update.img :
release_update_new.img 即為最終生成的可燒寫(xiě)的統(tǒng)一固件文件。
固件的版本在哪設(shè)置
在 parameter 文件中找到下行并修改即可,注意版本號(hào)為數(shù)字,中間兩個(gè)點(diǎn)號(hào)不能省略。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6097瀏覽量
36139 -
安卓
+關(guān)注
關(guān)注
5文章
2148瀏覽量
58344 -
Firefly
+關(guān)注
關(guān)注
2文章
541瀏覽量
7402
發(fā)布評(píng)論請(qǐng)先 登錄
fireflyCORE-3399PRO主板JD4--Android開(kāi)發(fā)
fireflyCORE-3399主板JD4--FAQs方案

fireflyCORE-3399主板JD4產(chǎn)品簡(jiǎn)介
Core 3399 JD4工具upgrade tool for Android8.1文件包

Core 3399 JD4工具AndroidTool Release v2.38文件包

Core 3399 JD4工具AndroidTool Release v2.54文件包

Core 3399 JD4工具AndroidTool Release v2.63文件包

Core 3399 JD4工具AndroidTool Release v2.71文件包

Core 3399 JD4 V2工具AndroidTool Release v2.38

Core 3399 JD4 V2工具AndroidTool Release v2.54

Core 3399 JD4 V2工具AndroidTool Release v2.63

Core 3399 JD4 V2工具AndroidTool Release v2.65

Core 3399 JD4 V2工具AndroidTool Release v2.71

評(píng)論