#!/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