原因查找: 用fastboot命令查看設(shè)備?..."/>
您好,登錄后才能下訂單哦!
fastboot flash boot out/target/product/generic/boot.img不管用,提示< waiting for device >
原因查找:
用fastboot命令查看設(shè)備提示無權(quán)限,如下:
$ fastboot -l devices
no permissions fastboot usb:2-1.3
于是知道是因為權(quán)限問題,是fastboot沒有權(quán)限, 解決步驟:
1. 將fastboot的所有者屬性改成root
用which fastboot命令找到fastboot所在的目錄,然后進入此目錄;再用命令chown改其屬性:
sudo chown root:root fastboot
2. 將其權(quán)限更改一下:
sudo chmod +s fastboot
再運行
fastboot flash boot out/target/product/generic/boot.img就正常了 :
sending 'boot' (6520 KB)...
OKAY [ 0.207s]
writing 'boot'...
OKAY [ 0.311s]
finished. total time: 0.518s
ubuntu系統(tǒng)下,adb命令會依賴很多包,因此如果沒有安裝adt工具包,且在源碼目錄下adb命令不可用時,可以先確保android的源碼可以進行編譯,可以編譯后,在編譯出來的out目錄中是有adb命令的。
在服務(wù)器上進行編譯時,出現(xiàn)了找不到eabi-arm-gcc的錯誤,這部分打印信息是在build/envsetup.sh中寫入的,然后退出服務(wù)器,再次登陸問題解決......
recovery模式下,找不到adb設(shè)備,不能進行adb操作。同一個終端,在其他的ubuntu臺式機上是可以的,確定了是ubuntu的配置問題。
解決:修改 /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0600"
改為:
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666", OWNER="user"
recovery模式下,直接adb push的方式替換/sbin/recovery是不可行的,執(zhí)行替換成功后,重啟后,recovery仍然被替換為之前的,只能使用生成recovery.img,然后使用fastboot flash recovery recovery.img的方式進行升級。因為recovery下的文件系統(tǒng)是ramdisk類型的,掉電丟失。
guofengwan@guofengwan:~/workspace/project/rdadroid-5.1.1_r13$ fastboot devices
no permissions fastboot
guofengwan@guofengwan:~/workspace/project/rdadroid-5.1.1_r13$ which fastboot
/home/guofengwan/workspace/project/rdadroid-5.1.1_r13/out/host/linux-x86/bin/fastboot
guofengwan@guofengwan:~/workspace/project/rdadroid-5.1.1_r13$
另外啟動了一個窗口:
guofengwan@guofengwan:~$ fastboot devices
dragon2012 fastboot
guofengwan@guofengwan:~$ which fastboot
/home/guofengwan/environment/adt-bundle-linux-x86_64-20140702/sdk/platform-tools/fastboot
recovery模式下,adb shell進入后,發(fā)現(xiàn)是非root用戶,并且運行su命令失敗,退出后,adb root問題解決。
user版本的android代碼,每次修改,如果單獨mm一個jar包或者命令時,會導(dǎo)致新生成的jar包文件和之前的img文件中的簽名不一致,因此一但進行了修改,需要整個源碼make一遍。
在android源碼中,新添加一個命令,進入該命令的目錄mm后,會生成到out目錄下的相應(yīng)的/system/bin/目錄中,再編譯源碼,命令就會生成到system.img文件中,但是如果提交代碼的話,
在服務(wù)器上不會進入到該命令的目錄進行mm操作的,因此需要修改所編譯的target對應(yīng)的device.mk文件,添加到device.mk中。
android系統(tǒng)調(diào)試過程中,native代碼出現(xiàn)錯誤,System標(biāo)簽;java代碼出現(xiàn)錯誤,AndroidRuntime標(biāo)簽。
adb shell dumpsys window displays可以獲取android的屏幕分辨率等信息,
通過cat /proc/meminfo命令查看內(nèi)存大小。。
adb shell service list 可以列出系統(tǒng)的service。
make snod將out目錄里面的文件打包成img。
recovery模式下,使用framebuffer來顯示界面,獲取屏幕顯示的圖像內(nèi)容:
adb root
adb shell cat /dev/graphics/fb0 > 2.data
使用gimp打卡2.data,根據(jù)實際情況設(shè)置RGB8888或者RGB565等像素格式,長度和寬度的分別率.
如果在源碼中,由于一個模塊編譯失敗,但是又不想因為它,導(dǎo)致整個android源碼編譯不通過,可以在build/core/envsetup.mk文件中,添加SCAN_EXCLUDE_DIRS := 這個模塊的名字。可以使其不被編譯。前提是這個模塊的編譯與否對其他模塊沒有影響。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。