打开手机log开关,具体可以参考相关手机官方说明
然后进入测试,测试相应模块或者应用,然后运行以下脚本,名字:LogAndroid2PC.sh,即可以在相应目录下找到log,包含main.log,system.log,radio.log,bugreport等文件
需要添加执行权限
第一段,log相关
#!/bin/sh
#2.0.1
# prepare adb connection
java -version
#adb kill-server
adb root
adb wait-for-device
adb devices
echo "- device connected!"
echo "- record log version"
type=`adb shell getprop ro.build.type`
echo $type
type=${type%%\?*}
ttype=`echo $type | tr -d "[\r]"`
#| grep -r "\[ro.build.type\]" > `pwd`/tmp/ro.build.type.txt
board=`adb shell getprop ro.product.board`
#| grep -r "\[ro.product.board\]" > `pwd`/tmp/ro.product.board.txt
echo $board
board=${board%%\?*}
tboard=`echo $board | tr -d "[\r]"`
androidVer=`adb shell getprop ro.build.version.release`
#| grep -r "\[ro.build.version.release\]" > `pwd`/tmp/ro.build.version.release.txt
echo $androidVer
androidVer=${androidVer%%\?*}
tandroidVer=`echo $androidVer | tr -d "[\r]"`
#date -d tomorrow +%Y%m%d
LOGDIR="slog_`date +%Y%m%d%H%M%S`_$tboard"_"$ttype"
echo "save location "$LOGDIR
echo "create dirs..."
target_dir=$LOGDIR
top_dir=`pwd`/logs/$target_dir
mkdir -p $top_dir
echo - get ro.build.fingerprint
echo `adb shell getprop ro.build.fingerprint` > "$top_dir/ro.build.fingerprint.txt"
echo 2.0.1 > "$top_dir/toolsversion.txt"
mkdir $top_dir/internal_storage
mkdir $top_dir/external_storage
internal_log_dir=`adb shell slogctl query | grep "^internal" | cut -d',' -f2`
external_log_dir=`adb shell slogctl query | grep "^external" | cut -d',' -f2`
echo "capture logs..."
adb shell slogctl screen
adb shell slogctl snap
adb shell slogctl snap bugreport
echo "dump logs..."
cd $top_dir/internal_storage
adb pull $internal_log_dir
cd $top_dir/external_storage
adb pull $external_log_dir
第二段,用来烧入image文件,可以修改framework验证问题等,需要fastboot文件支持
sudo ./fastboot flash boot boot.img
sudo ./fastboot flash userdata userdata.img
sudo ./fastboot flash system system.img
sudo ./fastboot reboot
第三段:windows 平台 bat文件
::2.0.0
@echo off
echo - set env
set ADB_CMD="%cd%\tools\adb.exe"
set FIND_CMD="%cd%\tools\find.exe"
echo - check adb connection
rem %ADB_CMD% kill-server
%ADB_CMD% root
%ADB_CMD% wait-for-device
%ADB_CMD% devices
echo - device connected.
rem win7 date behaves differently..
rem echo get pc system version
ver | find "5.1" > NUL && set XT=windowsXP
ver | find "6.1" > NUL && set XT=windows7
%ADB_CMD% shell getprop | %FIND_CMD% "[ro.build.type]" > "%cd%\tmp\ro.build.type.txt"
%ADB_CMD% shell getprop | %FIND_CMD% "[ro.product.board]" > "%cd%\tmp\ro.product.board.txt"
%ADB_CMD% shell getprop | %FIND_CMD% "[ro.build.version.release]" > "%cd%\tmp\ro.build.version.release.txt"
echo - get ro.build.type
for /f "tokens=1,* usebackq delims= " %%i in ("%cd%\tmp\ro.build.type.txt") do set btype=%%j
set btype=%btype:~1,-2%
rem echo %btype%
echo - get ro.product.board
for /f "tokens=1,* usebackq delims= " %%i in ("%cd%\tmp\ro.product.board.txt") do set board=%%j
set board=%board:~1,-2%
rem echo %board%
echo - get ro.build.version.release
for /f "tokens=1,* usebackq delims= " %%i in ("%cd%\tmp\ro.build.version.release.txt") do set androidVer=%%j
set androidVer=%androidVer:~1,-2%
rem echo %androidVer%
echo - set log dir name
set LOGDIR=slog_%DATE:~0,10%%TIME:~0,8%
if {%XT%}=={windows7} (set LOGDIR=%LOGDIR:/=%) else (set LOGDIR=%LOGDIR:-=%)
set LOGDIR=%LOGDIR::=%
set LOGDIR=%LOGDIR: =%
set LOGDIR1=logs\%LOGDIR%_%board%_%btype%
set LOGDIR=%CD%\logs\%LOGDIR%
set LOGDIR=%LOGDIR%_%board%_%btype%
set LOGDIR=%LOGDIR%
md "%LOGDIR%"
echo - get ro.build.fingerprint
%ADB_CMD% shell getprop | %FIND_CMD% "[ro.build.fingerprint]" > "%LOGDIR%\ro.build.fingerprint.txt"
echo 2.0.1 > "%LOGDIR%\toolsversion.txt"
echo - create dirs
md "%LOGDIR%/internal_storage"
md "%LOGDIR%/external_storage"
echo - query internal_storage and external_storage
%ADB_CMD% shell slogctl query | %FIND_CMD% "internal" > "%cd%\tmp\internal_storage.txt"
%ADB_CMD% shell slogctl query | %FIND_CMD% "external" > "%cd%\tmp\external_storage.txt"
for /f "tokens=1,2 usebackq delims=," %%i in ("%cd%\tmp\internal_storage.txt") do set internal_storage=%%j
rem echo %internal_storage%
for /f "tokens=1,2 usebackq delims=," %%i in ("%cd%\tmp\external_storage.txt") do set external_storage=%%j
rem echo %external_storage%
echo - get current screen snap bugreport
%ADB_CMD% shell slogctl screen
%ADB_CMD% shell slogctl snap
%ADB_CMD% shell slogctl snap bugreport
echo - get log files
%ADB_CMD% pull %internal_storage% %LOGDIR1%\internal_storage
%ADB_CMD% pull %external_storage% %LOGDIR1%\external_storage
使用:
Usage:
Under windows os double Click script "LogAndroid2PC.bat" while DUT is connect to PC after test.
Under linux os double Click script "LogAndroid2PC.sh" and select "run in terminal" while DUT is connect to PC after test.
logs store on folder:
logs/androidlog_<datetoseconds>_<board>_<type>