diff --git a/ipk-source/sdxpinn-patch/CONTROL/postinst b/ipk-source/sdxpinn-patch/CONTROL/postinst new file mode 100755 index 0000000..6489410 --- /dev/null +++ b/ipk-source/sdxpinn-patch/CONTROL/postinst @@ -0,0 +1,5 @@ +#!/bin/ash + +opkg update + +exit 0 diff --git a/ipk-source/sdxpinn-patch/CONTROL/preinst b/ipk-source/sdxpinn-patch/CONTROL/preinst index 6431bb0..795cef6 100755 --- a/ipk-source/sdxpinn-patch/CONTROL/preinst +++ b/ipk-source/sdxpinn-patch/CONTROL/preinst @@ -1,5 +1,165 @@ #!/bin/ash +clean_distfeeds() { + # Define the list of items to comment out + items_to_comment=" +src/gz openwrt_core https://downloads.openwrt.org/releases/22.03.5/targets/sdx75/generic/packages +src/gz openwrt_qtiagm https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiagm +src/gz openwrt_qtiargs https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiargs +src/gz openwrt_qtiaudio https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiaudio +src/gz openwrt_qtiaudioprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiaudioprop +src/gz openwrt_qtibsp https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtibsp +src/gz openwrt_qtibspprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtibspprop +src/gz openwrt_qtibt https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtibt +src/gz openwrt_qtibtprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtibtprop +src/gz openwrt_qticore https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qticore +src/gz openwrt_qticoreinternal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qticoreinternal +src/gz openwrt_qticoreprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qticoreprop +src/gz openwrt_qtictainternal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtictainternal +src/gz openwrt_qtidata https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtidata +src/gz openwrt_qtidatainternal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtidatainternal +src/gz openwrt_qtidataprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtidataprop +src/gz openwrt_qtiipq https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiipq +src/gz openwrt_qtiipqezmesh https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiipqezmesh +src/gz openwrt_qtiipqprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiipqprop +src/gz openwrt_qtilocation https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtilocation +src/gz openwrt_qtilocationinternal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtilocationinternal +src/gz openwrt_qtilocationprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtilocationprop +src/gz openwrt_qtimsdcprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtimsdcprop +src/gz openwrt_qtinternal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtinternal +src/gz openwrt_qtipal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtipal +src/gz openwrt_qtiperfprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiperfprop +src/gz openwrt_qtippatprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtippatprop +src/gz openwrt_qtiquectel https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiquectel +src/gz openwrt_qtiquectelprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiquectelprop +src/gz openwrt_qtirilprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtirilprop +src/gz openwrt_qtisecurity https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtisecurity +src/gz openwrt_qtisecurityinternal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtisecurityinternal +src/gz openwrt_qtisecurityprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtisecurityprop +src/gz openwrt_qtisensorsinternal https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtisensorsinternal +src/gz openwrt_qtisensorsprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtisensorsprop +src/gz openwrt_qtissdk https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtissdk +src/gz openwrt_qtissmgr https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtissmgr +src/gz openwrt_qtissmgrprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtissmgrprop +src/gz openwrt_qtiwlan https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiwlan +src/gz openwrt_qtiwlanprop https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/qtiwlanprop +" + + # Define the list of items to ensure are uncommented + items_to_keep=" +src/gz openwrt_base https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/base +src/gz openwrt_luci https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/luci +src/gz openwrt_packages https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/packages +src/gz openwrt_routing https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/routing +src/gz openwrt_telephony https://downloads.openwrt.org/releases/22.03.5/packages/aarch64_cortex-a53/telephony/ +" + + # Input file to process + INPUT_FILE="/etc/opkg/distfeeds.conf" + # Backup the original file + cp "$INPUT_FILE" "${INPUT_FILE}.bak" + + # Create a temporary file for the modified content + TEMP_FILE="${INPUT_FILE}.tmp" + + # Process the file line by line + while IFS= read -r line || [ -n "$line" ]; do + # Check if the line should be commented out + for item in $items_to_comment; do + if [ "$line" = "$item" ] || [ "$line" = "# $item" ]; then + echo "# $item" >> "$TEMP_FILE" + continue 2 + fi + done + + # Check if the line should be uncommented + for item in $items_to_keep; do + if [ "$line" = "# $item" ] || [ "$line" = "$item" ]; then + echo "$item" >> "$TEMP_FILE" + continue 2 + fi + done + + # Preserve other lines as is + echo "$line" >> "$TEMP_FILE" + done < "$INPUT_FILE" + + # Ensure all items_to_keep are present and uncommented + for item in $items_to_keep; do + if ! grep -qx "$item" "$TEMP_FILE"; then + echo "$item" >> "$TEMP_FILE" + fi + done + + # Replace the original file with the modified one + mv "$TEMP_FILE" "$INPUT_FILE" + + echo "Processed '$INPUT_FILE'. Backup saved as '${INPUT_FILE}.bak'." +} +repo_iamromulanSDXPINN_check() { + # Define the repository and key details + REPO_URL="https://raw.githubusercontent.com/iamromulan/quectel-rgmii-toolkit/SDXPINN/opkg-feed" + REPO_LINE="src/gz iamromulan-SDXPINN-repo $REPO_URL" + FEEDS_FILE="/etc/opkg/customfeeds.conf" + PUBLIC_KEY_URL="https://raw.githubusercontent.com/iamromulan/quectel-rgmii-toolkit/SDXPINN/opkg-feed/iamromulan-SDXPINN-repo.key" + TMP_KEY="/tmp/iamromulan-SDXPINN-repo.key" + KEYS_DIR="/etc/opkg/keys" + + # Clean up duplicate entries in customfeeds.conf + if grep -q "$REPO_LINE" "$FEEDS_FILE" 2>/dev/null; then + echo "Cleaning up duplicate entries in $FEEDS_FILE." + sed -i "/$REPO_LINE/d" "$FEEDS_FILE" + fi + + # Add the repository to customfeeds.conf + echo "Adding repository to $FEEDS_FILE." + echo "$REPO_LINE" >> "$FEEDS_FILE" || { + echo "Error: Could not add repository to $FEEDS_FILE." + return 1 + } + + # Download the key temporarily for verification + curl -fsSL "$PUBLIC_KEY_URL" -o "$TMP_KEY" || { + echo "Error: Failed to download public key from $PUBLIC_KEY_URL." + return 1 + } + + # Check if the key already exists in /etc/opkg/keys/ + local key_installed=0 + for key in "$KEYS_DIR"/*; do + if cmp -s "$TMP_KEY" "$key"; then + echo "Public key already installed: $(basename "$key")." + key_installed=1 + break + fi + done + + # If the key is not installed, add it + if [ "$key_installed" -eq 0 ]; then + echo "Installing public key..." + opkg-key add "$TMP_KEY" || { + echo "Error: Failed to add public key." + rm -f "$TMP_KEY" + return 1 + } + echo "Public key installed successfully." + fi + + # Clean up temporary key file + rm -f "$TMP_KEY" + + return 0 +} + +# Begin Patch Process +echo -e "\e[92mBegining sdxpinn-patch process...\e[0m" +echo -e "\e[92mEnsuring distfeeds is clean of any non-working sources and has stock OpenWRT ones...\e[0m" +clean_distfeeds +echo -e "\e[92mEnsuring iamromulan's SDXPINN repo is listed in customfeeds and public key is installed...\e[0m" +repo_iamromulanSDXPINN_check +echo -e "\e[92miamromulan's SDXPINN repo source and key is installed.\e[0m" + +echo -e "\e[92msdxpinn-patch process complete.\e[0m" exit 0 diff --git a/ipk-source/sdxpinn-patch/CONTROL/prerm b/ipk-source/sdxpinn-patch/CONTROL/prerm index 815e719..59f2ec6 100755 --- a/ipk-source/sdxpinn-patch/CONTROL/prerm +++ b/ipk-source/sdxpinn-patch/CONTROL/prerm @@ -1,4 +1,5 @@ #!/bin/ash - +echo -e "\e[38;5;196mINFO: This package can not be removed by opkg\e[0m" +echo -e "\e[38;5;40mINFO: This package can be upgraded...\e[0m" exit 0 \ No newline at end of file diff --git a/ipk-source/sdxpinn-patch/root/tmp/sdxpinn.patched b/ipk-source/sdxpinn-patch/root/tmp/sdxpinn.patched index e69de29..d00491f 100644 --- a/ipk-source/sdxpinn-patch/root/tmp/sdxpinn.patched +++ b/ipk-source/sdxpinn-patch/root/tmp/sdxpinn.patched @@ -0,0 +1 @@ +1