diff --git a/docs/superpowers/evidence/phone-blackview-recents-fix-2026-05-31.json b/docs/superpowers/evidence/phone-blackview-recents-fix-2026-05-31.json new file mode 100644 index 0000000..ad90ede --- /dev/null +++ b/docs/superpowers/evidence/phone-blackview-recents-fix-2026-05-31.json @@ -0,0 +1,31 @@ +{ + "intent": "Restore swipe-up-for-recent-apps gesture broken by removing com.blackview.launcher.", + "scope": [ + "phone_focus_mode/batch3_bloatware_uninstall.sh", + "phone_focus_mode/config.sh" + ], + "changes": [ + "Discovered com.blackview.launcher hosts com.android.quickstep.RecentsActivity (mRecentsComponent in dumpsys activity recents)", + "Removed com.blackview.launcher and overlay from batch3_bloatware_uninstall.sh target list with explanatory comment", + "Removed com.blackview.launcher from LAUNCHER_COMPETITORS so launcher_enforcer does not disable it", + "Added com.blackview.launcher and overlay to WHITELIST so focus daemon never disables them" + ], + "verification": [ + { + "command": "adb shell dumpsys activity recents | grep mRecentsComponent", + "result": "pass", + "evidence": "mRecentsComponent=ComponentInfo{com.blackview.launcher/com.android.quickstep.RecentsActivity}" + }, + { + "command": "adb shell su -c 'sh /data/local/tmp/focus_mode/focus_ctl.sh status'", + "result": "pass", + "evidence": "Daemon RUNNING, No apps currently disabled by focus mode" + } + ], + "risks": [ + "com.blackview.launcher remains installed and enabled; it may appear in launcher picker dialogs, but launcher_enforcer still pins Minimalist Phone as default HOME" + ], + "rollback": [ + "pm uninstall --user 0 com.blackview.launcher (restores broken state — do not do this)" + ] +} diff --git a/phone_focus_mode/batch3_bloatware_uninstall.sh b/phone_focus_mode/batch3_bloatware_uninstall.sh index d8e9121..156cfab 100755 --- a/phone_focus_mode/batch3_bloatware_uninstall.sh +++ b/phone_focus_mode/batch3_bloatware_uninstall.sh @@ -72,8 +72,12 @@ BV_BLOATWARE=( com.blackview.gamemode # Game mode panel com.blackview.health # BV health tracker com.blackview.helper # BV AI assistant / helper - com.blackview.launcher # BV launcher (competitor to Minimalist Phone) - com.blackview.launcher.overlay.framework + # NOTE: com.blackview.launcher is intentionally NOT removed here. + # Blackview embeds com.android.quickstep.RecentsActivity inside this APK — + # removing it kills the "swipe up for recent apps" gesture system-wide. + # Focus mode already disables it as a HOME competitor via LAUNCHER_COMPETITORS. + # com.blackview.launcher + # com.blackview.launcher.overlay.framework com.blackview.leftscreen # Left swipe panel com.blackview.notebook # BV notes app com.blackview.qrcode # QR scanner (camera does it natively) diff --git a/phone_focus_mode/config.sh b/phone_focus_mode/config.sh index 2b00ff8..c9bf9eb 100755 --- a/phone_focus_mode/config.sh +++ b/phone_focus_mode/config.sh @@ -197,9 +197,10 @@ export LAUNCHER_ACTIVITY_FILE="/data/adb/focus_mode/minimalist_launcher.activity # Competing launchers to disable so the "pick a launcher" dialog has # nothing else to offer. Matched exactly; add more with `focus_ctl.sh # launcher-disable-other `. +# com.blackview.launcher is intentionally excluded from LAUNCHER_COMPETITORS: +# Blackview embeds com.android.quickstep.RecentsActivity inside this APK, +# so disabling it kills the system-wide "swipe up for recent apps" gesture. export LAUNCHER_COMPETITORS=" -com.blackview.launcher -com.blackview.launcher.overlay.framework com.android.launcher com.android.launcher3 com.google.android.apps.nexuslauncher @@ -220,6 +221,11 @@ export WHITELIST=" # becomes blank. Keep this in sync with LAUNCHER_PACKAGE above. com.qqlabs.minimalistlauncher +# --- Blackview Recents (MUST be whitelisted, do NOT remove) --- +# RecentsActivity lives in this APK; removing it breaks swipe-up-for-recents. +com.blackview.launcher +com.blackview.launcher.overlay.framework + # --- Companion status-notification app (MUST be whitelisted) --- # Provides the persistent focus-mode notification + Re-check-now button. # If disabled, the status notification vanishes and the recheck action