#!/sbin/sh exec > /tmp/postmarketos/pmos.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 the logfile and pmos.zip so we can access it inside the chroot for file in "pmos.log" "pmos.zip" do { umount "$CHROOT"/"$file" ; rm "$CHROOT"/"$file" ; } || : touch "$CHROOT"/"$file" done mount --bind /tmp/postmarketos/pmos.log "$CHROOT"/pmos.log mount --bind "$ZIP" "$CHROOT"/pmos.zip fstab_recovery="recovery.fstab" # TWRP can use twrp.fstab instead of recovery.fstab (device specific) # This check exists to support both formats. if [ ! -e "/etc/"$fstab_recovery ]; then fstab_recovery="twrp.fstab" fi # Create copy of fstab file provided by the recovery if ! cp /etc/$fstab_recovery "$CHROOT"/$fstab_recovery; then echo "Error copying $fstab_recovery , exiting..." exit 1 fi # 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/* chmod 755 "$CHROOT"/lib/* chroot "$CHROOT" /bin/pmos_install