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