1. 程式人生 > >Android Debug Skills

Android Debug Skills

零零散散記錄一些工作中會用到的skill,想起來再補充


1,dtb 轉dts,試用與BSP bring up檢視最終配置的device tree是否正確:

#1: cd到指令碼路徑:out/target/product/$Project/obj/KERNEL_OBJ/scripts/dtc

#2:在#1的目錄下輸入命令:./dtc -I dtb -O dts ../../arch/arm/boot/dts/qcom/sdm450-evb1.dtb >final.dts

#3:檢視#2中轉換出來的dts:vim ./out/target/product/$Project/obj/KERNEL_OBJ/scripts/dtc/final.dts



2, addr2line :部分exception問題可以從log中分析:

#1:先把發生問題的手機上的版本對應的lib放到一個工程下 

#2:假設本例使用到libwifi-service.so,log中看到如下資訊:

 #00 pc 00000000000146a4 /system/lib64/libwifi-service.so(wifi_event_loop+36)

如上log顯示這樣的,其中146a4 是地址。

#3:輸入命令:addr2line -C -f -e out/libwifi-service.so 146a4

#4:得出結果如下,顯示在wifi_hal.cpp檔案的wifi_event_loop()函式中,位置為第431行的程式碼:

[email protected]:~/Workspace/k5fp$addr2line -C -f -e out/libwifi-service.so 146a4

wifi_event_loop

/home/buildslave/jenkins_build/k5fp_m/vendor/mediatek/proprietary/hardware/connectivity/wlan/wifi_hal/wifi_hal.cpp:431

[email protected]:~/Workspace//k5fp



3, audit2allow:發生SELinux問題時簡單的解決方法:

參考連線:http://blog.csdn.net/lei1217/article/details/48377555的

其中簡化方法使用 audit2allow -i avc_log.txt可以自動生成policy