截取android手机log

打开手机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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值