Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 90ba9eb2 authored by Andreas Gampe's avatar Andreas Gampe
Browse files

Otapreopt: Allow A/B dexopt only when bootcomplete

Under certain circumstances cmd may not return because it is waiting
for a service manager. Avoid this situation by restricting the otapreopt
script to only do work when the system has completed boot (which
means that a service manager must exist).

Bug: 30797145
Change-Id: Ic1445e20f1ca06fb38e7707771bde818836c3adc
parent e7d55526
Loading
Loading
Loading
Loading
+13 −0
Original line number Original line Diff line number Diff line
@@ -24,6 +24,19 @@ STATUS_FD="$2"
# Maximum number of packages/steps.
# Maximum number of packages/steps.
MAXIMUM_PACKAGES=1000
MAXIMUM_PACKAGES=1000


# First ensure the system is booted. This is to work around issues when cmd would
# infinitely loop trying to get a service manager (which will never come up in that
# mode). b/30797145
BOOT_PROPERTY_NAME="dev.bootcomplete"

BOOT_COMPLETE=$(getprop $BOOT_PROPERTY_NAME)
if [ "$BOOT_COMPLETE" != "1" ] ; then
  echo "Error: boot-complete not detected."
  # We must return 0 to not block sideload.
  exit 0
fi


# Compute target slot suffix.
# Compute target slot suffix.
# TODO: Once bootctl is not restricted, we should query from there. Or get this from
# TODO: Once bootctl is not restricted, we should query from there. Or get this from
#       update_engine as a parameter.
#       update_engine as a parameter.