Use fstab to get boot device

This commit is contained in:
Vojtech Bocek
2013-09-07 23:37:47 +02:00
parent c0fb1fe58c
commit cf2808bd5f
2 changed files with 41 additions and 3 deletions

View File

@@ -8,7 +8,9 @@ MULTIROM_INST_DIR := $(PRODUCT_OUT)/multirom_installer
multirom_binary := $(TARGET_ROOT_OUT)/multirom
trampoline_binary := $(TARGET_ROOT_OUT)/trampoline
BOOT_DEV := /dev/block/platform/msm_sdcc.1/by-name/boot
ifeq ($(MR_FSTAB),)
$(error MR_FSTAB not defined in device files)
endif
$(MULTIROM_ZIP_TARGET): multirom trampoline signapk
@echo ----- Making MultiROM ZIP installer ------
@@ -17,7 +19,8 @@ $(MULTIROM_ZIP_TARGET): multirom trampoline signapk
cp -a $(install_zip_path)/prebuilt-installer/* $(MULTIROM_INST_DIR)/
cp -a $(TARGET_ROOT_OUT)/multirom $(MULTIROM_INST_DIR)/multirom/
cp -a $(TARGET_ROOT_OUT)/trampoline $(MULTIROM_INST_DIR)/multirom/
echo $(BOOT_DEV) > $(MULTIROM_INST_DIR)/scripts/bootdev
cp $(PWD)/$(MR_FSTAB) $(MULTIROM_INST_DIR)/multirom/mrom.fstab
$(install_zip_path)/extract_boot_dev.sh $(PWD)/$(MR_FSTAB) $(MULTIROM_INST_DIR)/scripts/bootdev
echo $(MR_RD_ADDR) > $(MULTIROM_INST_DIR)/scripts/rd_addr
$(install_zip_path)/make_updater_script.sh $(TARGET_DEVICE) $(MULTIROM_INST_DIR)/META-INF/com/google/android "Installing MultiROM for"
rm -f $(MULTIROM_ZIP_TARGET).zip $(MULTIROM_ZIP_TARGET)-unsigned.zip
@@ -38,7 +41,7 @@ $(MULTIROM_UNINST_TARGET): signapk
rm -rf $(MULTIROM_UNINST_DIR)
mkdir -p $(MULTIROM_UNINST_DIR)
cp -a $(install_zip_path)/prebuilt-uninstaller/* $(MULTIROM_UNINST_DIR)/
echo $(BOOT_DEV) > $(MULTIROM_UNINST_DIR)/scripts/bootdev
$(install_zip_path)/extract_boot_dev.sh $(PWD)/$(MR_FSTAB) $(MULTIROM_UNINST_DIR)/scripts/bootdev
$(install_zip_path)/make_updater_script.sh $(TARGET_DEVICE) $(MULTIROM_UNINST_DIR)/META-INF/com/google/android "MultiROM uninstaller -"
rm -f $(MULTIROM_UNINST_TARGET).zip $(MULTIROM_UNINST_TARGET)-unsigned.zip
cd $(MULTIROM_UNINST_DIR) && zip -qr ../$(notdir $@)-unsigned.zip *

35
install_zip/extract_boot_dev.sh Executable file
View File

@@ -0,0 +1,35 @@
#!/bin/sh
FSTAB="$1"
DEST_FILE="$2"
if [ $# != "2" ]; then
echo "Usage: $0 [path to fstab] [path to dest dir]"
exit 1
fi
itr=-1
for tok in $(grep -v "^ *#.*$" "$FSTAB"); do
case "$itr" in
"-1") # mount point
if [ "$tok" = "/boot" ]; then
itr="0"
fi
;;
"0") # filesystem
itr=$(($itr+1))
;;
"1") # device
if [ "${tok##/dev*}" ]; then
echo "Unsupported fstab format!"
exit 1
fi
echo "$tok" > "$DEST_FILE"
echo "Used boot device: $tok"
exit 0
;;
esac
done
echo "Could not find /boot mountpoint in fstab!"
exit 1