• 全新单提交:清除含敏感信息的旧历史(sudo 口令、内网 IP、SSH 密钥路径、热点 SSID、设备 MAC) • 本地开发文档/测试记录/构建脚本全部移入 gitignored 的 devdocs/ 与 scripts/build/(不入库) • 保留:MeowOS 源码(launcher/watchdog/bootmenu/meow_svcd/SDK)、项目规范文档、mips-repo 增补组件:SDK 统一日志+通知 API、meow_svcd 服务管理器、mips-repo 软件仓库
49 lines
2.2 KiB
Bash
49 lines
2.2 KiB
Bash
#!/bin/sh
|
|
# run_bugcond.sh — A/B test of launcher v6.5 (bug) vs v6.6 (fix) under the
|
|
# bug condition: the display is on buffer1 (yoffset=720) with the player's
|
|
# frame in buffer1 (the post-power screen-off state). Reproduces the reported
|
|
# "menu invisible / screen frozen on last frame".
|
|
HPID=976
|
|
st(){ awk '{print $3}' "/proc/$HPID/stat" 2>/dev/null; }
|
|
yoff(){ /data/fbprobe 2>/dev/null | grep -oE "yoffset = [0-9]+"; }
|
|
|
|
setup_bugcond(){
|
|
# player frame into buffer1 (simulates the player's screen-off frame), then
|
|
# put the display on buffer1 so yoffset=720 -> buffer1 displayed.
|
|
/data/fbcopy >/dev/null 2>&1
|
|
/data/fbpan 720 >/dev/null 2>&1
|
|
echo " setup: buffer1<-buffer0, yoffset=$(yoff)"
|
|
}
|
|
|
|
run_one(){
|
|
BIN=$1; TAG=$2
|
|
echo "=== $TAG ($BIN) ==="
|
|
rm -f /usr/data/meow_launcherd.pid
|
|
"$BIN" --sim-hotkey 1200 --sim-exit 9000 >/tmp/m_$TAG.log 2>&1 &
|
|
LPID=$!
|
|
sleep 4
|
|
echo " DURING t=4s: player_stat=$(st) yoffset=$(yoff)"
|
|
dd if=/dev/fb0 of=/tmp/${TAG}_menu_b0.raw bs=960 count=720 status=none
|
|
dd if=/dev/fb0 of=/tmp/${TAG}_menu_b1.raw bs=960 skip=720 count=720 status=none
|
|
echo " menu b0=$(md5sum /tmp/${TAG}_menu_b0.raw 2>/dev/null | awk '{print $1}') b1=$(md5sum /tmp/${TAG}_menu_b1.raw 2>/dev/null | awk '{print $1}')"
|
|
echo " player_stat_after_capture=$(st)"
|
|
sleep 6
|
|
echo " AFTER t=10s: player_stat=$(st) yoffset=$(yoff)"
|
|
dd if=/dev/fb0 of=/tmp/${TAG}_close_b1.raw bs=960 skip=720 count=720 status=none
|
|
echo " close b1=$(md5sum /tmp/${TAG}_close_b1.raw 2>/dev/null | awk '{print $1}')"
|
|
echo " log: $(grep -E 'fb:|fb backup|fb pan|fb restore|menu open|menu close' /tmp/m_$TAG.log | tr '\n' ' | ')"
|
|
kill "$LPID" 2>/dev/null; sleep 1; killall meow_launcherd 2>/dev/null
|
|
echo " killed; player_stat=$(st)"
|
|
}
|
|
|
|
echo "launcher stopped, player pid=$HPID"
|
|
setup_bugcond
|
|
run_one /data/meow_launcherd.v65 OLD
|
|
setup_bugcond # re-setup for the NEW run (player frame still in buffer1)
|
|
run_one /data/meow_launcherd.v66 NEW
|
|
echo "=== cleanup ==="
|
|
/data/fbpan 720 >/dev/null 2>&1 # leave display on buffer1 (player's frame)
|
|
echo "final yoffset=$(yoff) player_stat=$(st)"
|
|
echo "BACKLIGHT: $(cat /sys/class/backlight/backlight_pwm0/brightness 2>/dev/null)"
|
|
echo DONE
|