指令碼基本實現邏輯為:重啟開關機去判斷是否識別到tp模組的vid pid和檢測egtouchd的服務是否跑起來,
如果有識別到裝置並且服務有跑起來,則列印一次字串detecte_success到建立的檔案sdcard/det_usb_egtouchd.log中,最後統計當前測試的重啟次數,然後執行重啟操作;
如果識別不到或者服務沒起來,則列印字串detecte_fail到建立的檔案sdcard/det_usb_egtouchd.log中,並且列印當前裝置的dmesg和logcat到當前時間下建立的sdcard/***x.log檔案中,
最後統計當前測試的重啟次數,然後執行重啟操作。
後續可以通過檢視sdcard/det_usb_egtouchd.log知道指令碼執行的測試結果。
具體操作說明:
然後執行以下:
1、把usbtp_det.s**件push 進入system/bin/目錄:
c:\users\administrator>adb root
c:\users\administrator>adb remount
c:\users\administrator>adb push usbtp_det.sh system/bin/
c:\users\administrator>adb shell chmod 755 system/bin/usbtp_det.sh
c:\users\administrator>adb shell sync
2、在system/bin/lowmem_manage.sh 加入以下指令,注意加在檔案最後一行,要在機器起來之後再去執行指令碼:
source usbtp_det.sh
然後重啟機器即可進入自動開關機測試tp的概率性失效問題。
如果需要停止測試,需要在重啟之前拔掉tp裝置,並且在開機起來後2分鐘內檢視在sdcard目錄對應的測試記錄檔案
det_usb_egtouchd.log或者把它pull出來檢視,或者注釋掉lowmem_manage.sh中的source usbtp_det.sh來停止測試。
【包括測試次數記錄檔案:det_usb_egtouchd.log和dmesg、logcat的log檔案等】
注意:檢測裝置或者服務失敗才會去抓取對應log的列印,檢測成功則無log列印檔案生成。
#!
/bin/bash
d_name=sdcard/det_usb_egtouchd.log
detecte_success=detecte_success
detecte_fail=detecte_fail
date=`date +
%y-%m-
%d_%h_%m_%s`
dmesg_log=dmesg
logcat_log=logcat
input_log=cat_input
#create file to writeif[
!-f "$d_name"
]; then
echo "log file will creat."
touch $
else
echo "log file already exists."
fi#retry 5
count=
0while
[[ $count -lt 5]]
dolet count++
#service detectionif[
"$(lsusb |grep 0eef:c000)"]&&
["$(ps | grep egtouchd |wc -l)"
-eq "1"
]; then
echo "current tp driver and service egtouchd startup success."
setprop persist.sys.tp.logprint 0
sleep 1
break
else
echo "current tp driver and service egtouchd startup failed."
setprop persist.sys.tp.logprint 1
sleep 1
fidone
#print log
gtdetecte_tp=`getprop persist.sys.tp.logprint`if[
"$gtdetecte_tp"
!="0"
]; then
sleep 110
echo "$"
echo $detecte_fail >> $
dmesg >> sdcard/$_$
.log &
logcat -v time >> sdcard/$_$
.log &
cat proc/bus/input/devices >> sdcard/$_$
.log &
else
sleep 5
echo "$"
echo $detecte_success >> $
fi#count
ops_number=$(grep -nr "detecte" $
| wc -l)
#ops_number=$(cat $ | grep "detecte" | wc -l)
echo "********************"
>> $
echo "count current restarts..."
echo "current test times"
>> $
echo $ops_number >> $
echo "********************"
>> $
#setting reboot ops
setprop persist.sys.tp.reboot 1
gtdetecte_reboot=`getprop persist.sys.tp.reboot`if[
"$gtdetecte_reboot"
!="0"
]; then
echo "5s after will reboot."
sleep 5
reboot
else
echo "no reboot."
sleep 5
fi
shell指令碼例項
1.批量建立10個系統賬號test01 test10,並隨機設定8位數密碼 bin bash for i in seq w 10 do useradd test i echo random madsum cut c 8 tee a passwd.txt stdin test i done 2.在目錄...
Shell 指令碼例項
指令碼內容如下 bin bash action 定義函式,進行操作指南 action 1 database mysql uroot p 1 en e show databases grep e schema v mkdir p mnt sqldump e database name sql case...
Shell指令碼例項
1.寫乙個指令碼,利用迴圈計算10的階乘 bin sh factorial 1 for a in seq 1 10 dofactorial expr factorial a done echo 10 factorial 注 上面有一行,for a in seq 1 10 其中seq 1 10 即列出...