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

Commit 8fb062f3 authored by Mohammed Althaf T's avatar Mohammed Althaf T 😊
Browse files

add support for IMG and QFIL creation

parent 6d527605
Loading
Loading
Loading
Loading
+78 −1
Original line number Diff line number Diff line
@@ -31,6 +31,15 @@ if [ "$CLEAN_OUTDIR" = true ]; then
  rm -rf "${ZIP_DIR:?}/*"
fi

# Define a function to extract images based on the provided header and config file
extract_images() {
  local header="$1"
  local config_file="$2"
  if [ -f "$config_file" ]; then
    awk -v header="$header" '$0 ~ header {flag=1; print; next} /^$/{flag=0}flag' "$config_file" | tr -d '\r\n' | sed 's/\\//g' | grep -oP "(?<=${header} ).*"
  fi
}

sync_successful=true

use_openjdk_from_ubuntu=false
@@ -342,10 +351,78 @@ if [ -n "${BRANCH_NAME}" ] && [ -n "${DEVICE}" ]; then
          fi
        done

        if [ -f "$OUT/super_empty.img" ]; then
        IMG_FLASH_PATH="$source_dir/vendor/eos/flash"
        IMG_FIRMWARE_PATH="$source_dir/vendor/firmware"
        QFIL_FLASH_PATH="$source_dir/vendor/murena-flash"

        FIRMWARE_CONFIG=$IMG_FIRMWARE_PATH/${DEVICE}/config.mk
        QFIL_CONFIG=$QFIL_FLASH_PATH/${DEVICE}/config.mk
        IMG_CONFIG=$IMG_FLASH_PATH/${DEVICE}/config.mk

        FIRMWARE_IMAGES=$(extract_images "FIRMWARE_IMAGES :=" "$FIRMWARE_CONFIG")
        QFIL_IMAGES=$(extract_images "HLOS_QFIL_TARGET :=" "$QFIL_CONFIG")
        IMG_IMAGES=$(extract_images "HLOS_IMAGES_TARGET :=" "$IMG_CONFIG")

        IMAGE_PACKAGE_NAME=IMG-${E_VERSION}
        QFIL_IMAGE_PACKAGE_NAME=QFIL-${E_VERSION}

        if echo "$QFIL_IMAGES $IMG_IMAGES" | grep -q "super.img"; then
          build_super_image "$OUT/$TARGET_FILES" "$OUT/super.img"
        fi

        # Create a temp folder for creating IMG-e*
        mkdir -p $OUT/IMG

        if [ -f "$IMG_FLASH_PATH/${DEVICE}/flash_${DEVICE}_factory.sh" ] && [ ! -z "$FIRMWARE_IMAGES" ]; then
          if [[ $IMG_IMAGES =~ "userdata.img" ]]; then
            mka userdataimage
          fi

          # Copy required images for IMG-e*
          for IMAGE in $IMG_IMAGES; do
            cp $OUT/$IMAGE $OUT/IMG/$IMAGE
          done

          # Copy required images for IMG-e*
          for IMAGE in $FIRMWARE_IMAGES; do
            cp $IMG_FIRMWARE_PATH/${DEVICE}/radio/$IMAGE.img $OUT/IMG/$IMAGE.img
          done

          # Copy required fastboot tools for IMG-e*
          cp -r $IMG_FLASH_PATH/fastboot/bin-msys $OUT/IMG/bin-msys
          cp -r $IMG_FLASH_PATH/fastboot/bin-linux-x86 $OUT/IMG/bin-linux-x86
          cp $IMG_FLASH_PATH/${DEVICE}/flash_${DEVICE}_factory.sh $OUT/IMG/flash_${DEVICE}_factory.sh

          echo ">> [$(date)] Generating IMG zip"
          cd $OUT/IMG
          zip -r $OUT/$IMAGE_PACKAGE_NAME *
          md5sum $OUT/$IMAGE_PACKAGE_NAME >$OUT/$IMAGE_PACKAGE_NAME.md5sum
          sha256sum $OUT/$IMAGE_PACKAGE_NAME >$OUT/$IMAGE_PACKAGE_NAME.sha256sum

          rm -rf $OUT/IMG/bin-msys $OUT/IMG/bin-linux-x86 $OUT/IMG/flash_${DEVICE}_factory.sh $OUT/IMG/fastboot_update.zip
          cd "$source_dir"
        fi

        if [ -f "$QFIL_FLASH_PATH/${DEVICE}/configs/rawprogram0.xml" ] && [ ! -z "$FIRMWARE_IMAGES" ] && [ ! -z "$QFIL_IMAGES" ]; then
          # Copy required images for IMG-e*
          for IMAGE in $QFIL_IMAGES; do
            cp $OUT/$IMAGE $OUT/IMG/$IMAGE
          done

          cp -R $QFIL_FLASH_PATH/${DEVICE}/configs/* $OUT/IMG/
          cp -R $QFIL_FLASH_PATH/${DEVICE}/prebuilts/* $OUT/IMG/
          python2 $QFIL_FLASH_PATH/checksparse.py -i $OUT/IMG/rawprogram0.xml -s $OUT/IMG -t $OUT/IMG

          echo ">> [$(date)] Generating QFIL zip"
          cd $OUT/IMG
          zip -r $OUT/$QFIL_IMAGE_PACKAGE_NAME *
          md5sum $OUT/$QFIL_IMAGE_PACKAGE_NAME >$OUT/$QFIL_IMAGE_PACKAGE_NAME.md5sum
          sha256sum $OUT/$QFIL_IMAGE_PACKAGE_NAME >$OUT/$QFIL_IMAGE_PACKAGE_NAME.sha256sum
          cd "$source_dir"
        fi

        rm -rf $OUT/IMG

        build_success=true
      else
        echo ">> [$(date)] Unable to find $TARGET_FILES"