Files
MeowOS-For-R3P2/patch_v2/meow_launcherd/run_bugcond.sh
T
MeowOS Dev 245bee2946 MeowOS for HiBy R3 Pro II — 公共发布版本(历史已重置)
• 全新单提交:清除含敏感信息的旧历史(sudo 口令、内网 IP、SSH 密钥路径、热点 SSID、设备 MAC)
• 本地开发文档/测试记录/构建脚本全部移入 gitignored 的 devdocs/ 与 scripts/build/(不入库)
• 保留:MeowOS 源码(launcher/watchdog/bootmenu/meow_svcd/SDK)、项目规范文档、mips-repo
增补组件:SDK 统一日志+通知 API、meow_svcd 服务管理器、mips-repo 软件仓库
2026-08-30 01:12:34 +08:00

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