diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index e0f6033b..b9fae924 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -210,11 +210,6 @@ jobs:
pnpm tauri icon ../../data/icons/readest-book.png
git checkout .
- MANIFEST="src-tauri/gen/android/app/src/main/AndroidManifest.xml"
- PERMISSION_LINE=''
- grep -q 'REQUEST_INSTALL_PACKAGES' "$MANIFEST" || \
- sed -i "/android.permission.INTERNET/a \ $PERMISSION_LINE" "$MANIFEST"
-
pushd src-tauri/gen/android
echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > keystore.properties
echo "password=${{ secrets.ANDROID_KEY_PASSWORD }}" >> keystore.properties
diff --git a/apps/readest-app/scripts/release-google-play.sh b/apps/readest-app/scripts/release-google-play.sh
index 389c7c0b..0ce68f0c 100755
--- a/apps/readest-app/scripts/release-google-play.sh
+++ b/apps/readest-app/scripts/release-google-play.sh
@@ -23,6 +23,8 @@ VERSION_CODE=$((10#$MAJOR * 10000 + 10#$MINOR * 1000 + 10#$PATCH))
echo "๐ข Computed versionCode: $VERSION_CODE"
PROPERTIES_FILE="./src-tauri/gen/android/app/tauri.properties"
+MANIFEST="./src-tauri/gen/android/app/src/main/AndroidManifest.xml"
+PERMISSION_LINE=''
if [[ ! -f "$PROPERTIES_FILE" ]]; then
echo "โ File not found: $PROPERTIES_FILE"
@@ -36,9 +38,31 @@ mv "$tmpfile" "$PROPERTIES_FILE"
echo "โ
Updated $PROPERTIES_FILE"
+# --- REMOVE PERMISSION BEFORE BUILD ---
+if grep -q 'REQUEST_INSTALL_PACKAGES' "$MANIFEST"; then
+ echo "๐งน Removing REQUEST_INSTALL_PACKAGES from AndroidManifest.xml"
+ if [[ "$OSTYPE" == "darwin"* ]]; then
+ sed -i '' "/REQUEST_INSTALL_PACKAGES/d" "$MANIFEST"
+ else
+ sed -i "/REQUEST_INSTALL_PACKAGES/d" "$MANIFEST"
+ fi
+fi
+
echo "๐ Running: pnpm tauri android build"
pnpm tauri android build
+# --- ADD PERMISSION BACK AFTER BUILD ---
+if ! grep -q 'REQUEST_INSTALL_PACKAGES' "$MANIFEST"; then
+ echo "โป๏ธ Restoring REQUEST_INSTALL_PACKAGES in AndroidManifest.xml"
+ if [[ "$OSTYPE" == "darwin"* ]]; then
+ sed -i '' "/android.permission.INTERNET/a\\
+ $PERMISSION_LINE
+ " "$MANIFEST"
+ else
+ sed -i "/android.permission.INTERNET/a \ $PERMISSION_LINE" "$MANIFEST"
+ fi
+fi
+
source .env.google-play.local
if [[ -z "$GOOGLE_PLAY_JSON_KEY_FILE" ]]; then
echo "โ GOOGLE_PLAY_JSON_KEY_FILE is not set"
diff --git a/apps/readest-app/src-tauri/gen/android/app/src/main/AndroidManifest.xml b/apps/readest-app/src-tauri/gen/android/app/src/main/AndroidManifest.xml
index 446eebf5..fd3917f7 100644
--- a/apps/readest-app/src-tauri/gen/android/app/src/main/AndroidManifest.xml
+++ b/apps/readest-app/src-tauri/gen/android/app/src/main/AndroidManifest.xml
@@ -1,6 +1,7 @@
+