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

Commit 05ae1f5f authored by Yi-yo Chiang's avatar Yi-yo Chiang Committed by Gerrit Code Review
Browse files

Merge "adb-remount-test: Simplify disable-verity setup"

parents 7df90c1a 07546376
Loading
Loading
Loading
Loading
+28 −63
Original line number Original line Diff line number Diff line
@@ -1099,7 +1099,7 @@ D=`adb_sh df -k </dev/null` &&
  D=`echo "${D}" | grep -v " /vendor/..*$" | grep "^overlay "` &&
  D=`echo "${D}" | grep -v " /vendor/..*$" | grep "^overlay "` &&
  echo "${H}" &&
  echo "${H}" &&
  echo "${D}" &&
  echo "${D}" &&
  echo "${YELLOW}[  WARNING ]${NORMAL} overlays present before setup" >&2 ||
  die "overlay takeover unexpected at this phase"
echo "${GREEN}[       OK ]${NORMAL} no overlay present before setup" >&2
echo "${GREEN}[       OK ]${NORMAL} no overlay present before setup" >&2
overlayfs_needed=true
overlayfs_needed=true
D=`adb_sh cat /proc/mounts </dev/null |
D=`adb_sh cat /proc/mounts </dev/null |
@@ -1133,73 +1133,38 @@ elif ! ${overlayfs_supported}; then
  die "need overlayfs, but do not have it"
  die "need overlayfs, but do not have it"
fi
fi


echo "${GREEN}[ RUN      ]${NORMAL} disable verity" >&2
echo "${GREEN}[ RUN      ]${NORMAL} disable-verity -R" >&2


T=`adb_date`
H=`adb disable-verity 2>&1`
err=${?}
L=
L=
D="${H%?Now reboot your device for settings to take effect*}"
T=$(adb_date)
if [ X"${D}" != X"${D##*[Uu]sing overlayfs}" ]; then
H=$(adb_su disable-verity -R 2>&1)
  echo "${GREEN}[       OK ]${NORMAL} using overlayfs" >&2
err="${?}"
fi
if [ ${err} != 0 ]; then
echo "${H}"
echo "${H}"
  ( [ -n "${L}" ] && echo "${L}" && false ) ||

  die -t "${T}" "disable-verity"
if [ "${err}" != 0 ]; then
  die -t "${T}" "disable-verity -R"
fi
fi
rebooted=false

if [ X"${D}" != X"${H}" ]; then
# Fuzzy search for a line that contains "overlay" and "fail". Informational only.
  echo "${H}"
if echo "${H}" | grep -i "overlay" | grep -iq "fail"; then
  if [ X"${D}" != X"${D##*setup failed}" ]; then
  echo "${YELLOW}[  WARNING ]${NORMAL} overlayfs setup whined" >&2
  echo "${YELLOW}[  WARNING ]${NORMAL} overlayfs setup whined" >&2
fi
fi
  D=`adb_sh df -k </dev/null` &&

    H=`echo "${D}" | head -1` &&
adb_wait "${ADB_WAIT}" &&
    D=`echo "${D}" | grep -v " /vendor/..*$" | grep "^overlay " || true` &&
    [ -z "${D}" ] ||
    ( echo "${H}" && echo "${D}" && false ) ||
    die -t ${T} "overlay takeover unexpected at this phase"
  echo "${GREEN}[     INFO ]${NORMAL} rebooting as requested" >&2
  L=`adb_logcat -b all -v nsec -t ${T} 2>&1`
  adb_reboot &&
    adb_wait ${ADB_WAIT} ||
    die "lost device after reboot requested `usb_status`"
  adb_root ||
  adb_root ||
    die "lost device after elevation to root `usb_status`"
  die "lost device after adb shell su root disable-verity -R $(usb_status)"
  rebooted=true

  # re-disable verity to see the setup remarks expected
if ${overlayfs_needed}; then
  T=`adb_date`
  has_overlayfs_setup=false
  H=`adb disable-verity 2>&1`
  for d in ${OVERLAYFS_BACKING}; do
  err=${?}
    if adb_test -d "/${d}/overlay"; then
  D="${H%?Now reboot your device for settings to take effect*}"
      has_overlayfs_setup=true
  if [ X"${D}" != X"${D##*[Uu]sing overlayfs}" ]; then
      echo "${GREEN}[       OK ]${NORMAL} /${d}/overlay is setup" >&2
    echo "${GREEN}[       OK ]${NORMAL} using overlayfs" >&2
  fi
  if [ ${err} != 0 ]; then
    T=
  fi
    fi
    fi
if ${overlayfs_supported} && ${overlayfs_needed} && [ X"${D}" != X"${D##*setup failed}" ]; then
  done
  echo "${D}"
  if ! ${has_overlayfs_setup}; then
  ( [ -n "${L}" ] && echo "${L}" && false ) ||
    die "no overlay being setup after disable-verity -R"
  die -t "${T}" "setup for overlay"
  fi
  fi
if [ X"${D}" != X"${D##*Successfully disabled verity}" ]; then
  echo "${H}"
  D=`adb_sh df -k </dev/null` &&
    H=`echo "${D}" | head -1` &&
    D=`echo "${D}" | grep -v " /vendor/..*$" | grep "^overlay " || true` &&
    [ -z "${D}" ] ||
    ( echo "${H}" && echo "${D}" && false ) ||
    ( [ -n "${L}" ] && echo "${L}" && false ) ||
    die -t "${T}" "overlay takeover unexpected"
  [ -n "${L}" ] && echo "${L}"
  die -t "${T}" "unexpected report of verity being disabled a second time"
elif ${rebooted}; then
  echo "${GREEN}[       OK ]${NORMAL} verity already disabled" >&2
else
  echo "${YELLOW}[  WARNING ]${NORMAL} verity already disabled" >&2
fi
fi


echo "${GREEN}[ RUN      ]${NORMAL} remount" >&2
echo "${GREEN}[ RUN      ]${NORMAL} remount" >&2