Use fstab to get boot device
This commit is contained in:
@@ -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
35
install_zip/extract_boot_dev.sh
Executable 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
|
||||
Reference in New Issue
Block a user