pmaports/main/postmarketos-android-recovery-installer/pmos_chroot
Attila Szöllősi fdbbc774a9 Run recovery installer in chroot (#901)
The recovery installer now has as few dependencies on the
Android recovery system as possible.
2017-11-16 22:20:57 +00:00

44 lines
1.2 KiB
Bash

#!/sbin/sh
exec > /tmp/postmarketos/pmos_chroot.log 2>&1
set -ex
export CHROOT='/tmp/postmarketos/chroot'
# Extract chroot
unzip -o "$ZIP" chroot/* -d /tmp/postmarketos
# shellcheck source=/dev/null
. "$CHROOT"/install_options
if [ "$FDE" = 'true' ]
then
# Install password setting script
{
echo '#!/sbin/sh'
echo "chroot $CHROOT /bin/pmos_setpw"
} > /sbin/pmos_setpw
chmod 755 /sbin/pmos_setpw
fi
# Mount pmos.zip so we can access it inside the chroot
{ umount "$CHROOT"/pmos.zip ; rm "$CHROOT"/pmos.zip ; } || :
touch "$CHROOT"/pmos.zip
mount --bind "$ZIP" "$CHROOT"/pmos.zip
# Create copy of fstab file provided by the recovery
cp /etc/recovery.fstab "$CHROOT"/recovery.fstab || {
[ "$?" = '255' ] && echo 'recovery.fstab not found, continuing...' || exit "$?" ; }
# Mount necessary filesystems for the chroot
for mountpoint in "/dev" "/proc" "/sys"
do
mkdir -p "$CHROOT""$mountpoint"
mount --bind "$mountpoint" "$CHROOT""$mountpoint"
done
# Set permissions and start the installation script
chmod 755 "$CHROOT"/bin/*
chroot "$CHROOT" /bin/pmos_install || {
echo 'Installation script failed.'
echo 'Check /tmp/postmarketos/chroot/pmos.log for more information.'
exit 1
}