From b74673ae02dbd1c50d23f63766298d2a8cfa5e83 Mon Sep 17 00:00:00 2001 From: oxmc <67136658+oxmc@users.noreply.github.com> Date: Fri, 17 Jul 2026 05:11:44 -0700 Subject: [PATCH] updater: reboot the installed slot via tryboot again Revert config_abRebootReason back to the config_use_tryboot boolean now that A/B uses RPi tryboot (a safe trial that reverts to the active slot on failure). No behavior change on devices that leave it false. --- .../main/java/me/pawlet/updater/UpdaterReceiver.java | 2 +- .../java/me/pawlet/updater/UpdatesListAdapter.java | 2 +- app/src/main/java/me/pawlet/updater/misc/Utils.java | 11 ++--------- app/src/main/res/values/config.xml | 6 +----- 4 files changed, 5 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/me/pawlet/updater/UpdaterReceiver.java b/app/src/main/java/me/pawlet/updater/UpdaterReceiver.java index dc04de7..fdd154d 100644 --- a/app/src/main/java/me/pawlet/updater/UpdaterReceiver.java +++ b/app/src/main/java/me/pawlet/updater/UpdaterReceiver.java @@ -78,7 +78,7 @@ public class UpdaterReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { if (ACTION_INSTALL_REBOOT.equals(intent.getAction())) { PowerManager pm = context.getSystemService(PowerManager.class); - pm.reboot(Utils.getAbRebootReason(context)); + pm.reboot(Utils.usesTryboot(context) ? "tryboot" : null); } else if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context); pref.edit().remove(Constants.PREF_NEEDS_REBOOT_ID).apply(); diff --git a/app/src/main/java/me/pawlet/updater/UpdatesListAdapter.java b/app/src/main/java/me/pawlet/updater/UpdatesListAdapter.java index 63b85e0..81e5250 100644 --- a/app/src/main/java/me/pawlet/updater/UpdatesListAdapter.java +++ b/app/src/main/java/me/pawlet/updater/UpdatesListAdapter.java @@ -412,7 +412,7 @@ public class UpdatesListAdapter extends RecyclerView.Adapter { PowerManager pm = mActivity.getSystemService(PowerManager.class); - pm.reboot(Utils.getAbRebootReason(mActivity)); + pm.reboot(Utils.usesTryboot(mActivity) ? "tryboot" : null); } : null; } break; diff --git a/app/src/main/java/me/pawlet/updater/misc/Utils.java b/app/src/main/java/me/pawlet/updater/misc/Utils.java index 6a8ca46..624b8db 100644 --- a/app/src/main/java/me/pawlet/updater/misc/Utils.java +++ b/app/src/main/java/me/pawlet/updater/misc/Utils.java @@ -420,14 +420,7 @@ public class Utils { return new File(Constants.UPDATE_RECOVERY_EXEC).exists(); } - /** - * Reason to pass to {@link android.os.PowerManager#reboot} when booting the - * freshly-installed slot, or {@code null} for a normal reboot. Devices whose - * firmware needs an explicit slot boot set config_abRebootReason (e.g. RPi - * uses "2" to one-shot boot partition 2 = boot_b). - */ - public static String getAbRebootReason(Context context) { - String reason = context.getResources().getString(R.string.config_abRebootReason); - return (reason == null || reason.isEmpty()) ? null : reason; + public static boolean usesTryboot(Context context) { + return context.getResources().getBoolean(R.bool.config_use_tryboot); } } diff --git a/app/src/main/res/values/config.xml b/app/src/main/res/values/config.xml index 7a0a0a4..81eec38 100644 --- a/app/src/main/res/values/config.xml +++ b/app/src/main/res/values/config.xml @@ -5,9 +5,5 @@ --> false - - + false