日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux和android调试概要

發(fā)布時(shí)間:2025/4/16 linux 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux和android调试概要 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 抓取linux內(nèi)核啟動(dòng)的完整信息

需要增大緩沖區(qū)大小,目前默認(rèn)為128KB,參考鏈接:點(diǎn)擊打開鏈接

2.Android內(nèi)核開發(fā):學(xué)會(huì)分析系統(tǒng)的啟動(dòng)log點(diǎn)擊打開鏈接

3.將init進(jìn)程的詳細(xì)log輸出到dmesg文件中

修改/system/core/rootdir/init.rc,把loglevel從3改為7

4. framework的調(diào)試

4.1 比如修改frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\NavigationBarView.java

對(duì)應(yīng)SystemUI.apk,可調(diào)用Log.i, Log.d ,Log.e增加打印信息,進(jìn)入frameworks\base\packages\SystemUI目錄下mm生成新的apk在out目錄下的system\priv-app\SystemUI下,然后push到系統(tǒng)對(duì)應(yīng)的目錄下,重啟即可。

5.音頻調(diào)試可以用tinymix命令,參考鏈接點(diǎn)擊打開鏈接

6.msm8937_camera.xml替換和修改

7.查看CPU占用adb shell top ?-d 1 -s cpu |findstr com.golive.cinema

8.查看具體apk占用adb shell dumpsys cpuinfo|findstr com.golive.cinema

9.內(nèi)存adb shell dumpsys meminfo

更合適的方法cat ?/proc/meminfo

adb shell "cat /proc/meminfo" ?E:\debug\meminfo.txt,看MemAvailable的內(nèi)容,比如我的

MemTotal:??????? 1921372 kB

MemFree:????????? 318416 kB

MemAvailable:??? 1125424 kB

各項(xiàng)的具體含義見

kernel\msm-3.18\Documentation\filesystems\proc.txt

10. logcat ?> ?/data/log.txt &可以在后臺(tái)打印出log 到log.txt中去,就算拔出USB線也沒關(guān)系

如果要打印的log再加上系統(tǒng)時(shí)間的話該怎么辦呢?logcat -v time > log.txt&

11.獲取APP UID

(1)?系統(tǒng)剛啟動(dòng)的時(shí)候,會(huì)對(duì)每個(gè)app分配一個(gè)uid,
最簡(jiǎn)單的獲取方式就是通過adb ,不過限于eng或userdebug版
adb pull ?data/system/packages.list ? d:\

參考點(diǎn)擊打開鏈接

(2) 通過PS命令獲取

在adb shell敲入ps,得到運(yùn)行的進(jìn)程的列表,如下一個(gè)小截屏:

u0_a開頭的都是Android的應(yīng)用進(jìn)程,Android的應(yīng)用的UID是從10000開始,到19999結(jié)束,可以在Process.java中查看到(FIRST_APPLICATION_UID和LAST_APPLICATION_UID),u0_a后面的數(shù)字就是該應(yīng)用的UID值減去FIRST_APPLICATION_UID所得的值,所以,對(duì)于com.android.systemui,它的user是u0_a12,按前面的規(guī)制,它的UID就是12 + FIRST_APPLICATION_UID = 10012。

參考點(diǎn)擊打開鏈接

12. 涉及SEAndroid權(quán)限問題,程序創(chuàng)建目錄的時(shí)候有權(quán)限問題系統(tǒng)會(huì)打印出avc的log,根據(jù)log來配置

13.打開和關(guān)閉飛行模式

//開啟飛行模式
settings put global airplane_mode_on 1
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true
//關(guān)閉飛行模式
settings put global airplane_mode_on 0
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false

14.echo “7 7 1 7” > /proc/sys/kernel/printk

15.cat 重定向到你的cache下

cat init.rc > /cache/1.txt

16 升級(jí)包的update-binary和updater-script
剛開始來之out目錄下的ota.zip包,其中update-binary源代碼位于bootable\recovery\updater下。可通過mmma bootable/recovery/updater的方式編譯,但此編譯方式和整個(gè)編譯make -j32方式生成的updater路徑和大小不一樣
(1) mmma bootable/recovery/updater
編譯生成為out\target\product\msm8937_64\system\bin\updater下,大小為1189KB

(2) make -j32
編譯生成為out\target\product\msm8937_64\symbols\system\bin\updater,大小為12075KB

將updater重命名為update-binary即可。

17.查看經(jīng)常是否在運(yùn)行

比如ps | grep memdetector

18.file_contexts.bin 和 file_contexts互轉(zhuǎn),支持到android8.來自于點(diǎn)擊打開鏈接

file_contexts.bin 轉(zhuǎn)換成 file_contexts,命令如下:
./sefcontext -o file_contexts file_contexts.bin ?sefcontext


file_contexts 轉(zhuǎn)換成 file_contexts.bin,命令如下:
./sefcontext_compile -o file_contexts.bin file_contexts ?sefcontext_compile

19.Android ART模式,不重新燒錄system.img的情況下如何修改framework和app

(1)編譯
(2)連接手機(jī)
(3) croot && adb remount && adb sync system && adb reboot?

第三步省去了重新燒版本的麻煩

20.?adb logcat 2>&1 | tee log.log

2是標(biāo)準(zhǔn)錯(cuò)誤,&1是標(biāo)準(zhǔn)輸出,2>&1意思就是將標(biāo)準(zhǔn)錯(cuò)誤輸出到標(biāo)準(zhǔn)輸出中。

21.C/C++? file log

22. 內(nèi)核中C文件log

23.fastboot分割鏡像文件過大的解決方法

sending sparse 'system' (524307 KB)...
FAILED (remote: data too large)
finished. total time: 35.354s
Flash system error

解決方法:
fastboot flash -S 500M system system.img
fastboot支持的-S選項(xiàng):
options:
-S <size>[K|M|G] ? ? ? ? ? ? ? ? ? ? ? ? Automatically sparse files greater ?than 'size'. 0 to disable.

24.adb命令打開攝像頭

adb shell am start -a android.media.action.STILL_IMAGE_CAMERA

25.背光設(shè)置

adb shell settings get system screen_brightness

adb shell settings put system screen_brightness 150

26.編譯的時(shí)候,用 screen 開一個(gè)會(huì)話吧,這樣斷網(wǎng)了也不會(huì)影響編譯

27. push文件到根目錄/,比如init.rc

先adb root、adb remount、mount?-o?rw?-o?remount?/dev/block/actb?/? ,這樣就可以push了,否則提示?remote Read-only file system

28. *#06#查看MEID和IMEI號(hào)

29.android開始增加vendor分區(qū),make vnod可以編譯生成vendor.img

30.?執(zhí)行dmesg命令,可以查看全部消息。如果想把log信息保存到文件,可以用adb shell dmesg >D:/Kernel.log.

31.?adb shell 然后執(zhí)行 cat /proc/kmsg。程序里面用printk函數(shù)打印的信息會(huì)顯示出來。用cat /proc/kmsg命令打印出來的信息跟與dmesg 有不同, 第一次執(zhí)行/proc/kmsg 打印到當(dāng)前時(shí)間的所有內(nèi)核信息,再次執(zhí)行cat /proc/kmsg,不會(huì)再打印已經(jīng)打印的信息,只打印上一次執(zhí)行之后打印出來的新的信息。

32.adb命令播放mp3文件

adb shell am start -a android.intent.action.VIEW -t "audio/mp3" -d "file:///storage/emulated/0/Music/test.mp3"

33.adb命令撥打電話和掛掉

adb shell am start -a android.intent.action.CALL -d tel:10010
掛斷:adb shell service call phone 3

34.wm 是查看和設(shè)置顯示信息的指令,此指令只能臨時(shí)調(diào)試使用,比如wm density:查看和設(shè)置顯示密度

Android wm指令用法詳解 - LeeAaron - 博客園

35.抓avc log

adb?shell
su
dmesg?|?grep?avc???(這個(gè)是一次性出來的)
logcat?-v?time?|?grep?avc?(這個(gè)是持續(xù)抓的)
可以開兩個(gè)DOS窗口抓取

36.查看是否是簽名的系統(tǒng)

37. ?i2c-tools、設(shè)備樹等工具,便于開發(fā)調(diào)試

Index of /pub/software/utils/

38.?cat?/proc/interrupts?|?grep?ExtVoiceWakeup獲取中斷信息

總結(jié)

以上是生活随笔為你收集整理的linux和android调试概要的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。