Check for CHANGE_NETWORK_STATE and ACCESS_NETWORK_STATE in offline manifest

Expand the offline permissions check workflow to also verify that
CHANGE_NETWORK_STATE and ACCESS_NETWORK_STATE are not present in the
merged manifest, in addition to the existing INTERNET permission check.

https://claude.ai/code/session_01AoRYewAhR6nhY6hGJhLPem
This commit is contained in:
Claude
2026-03-18 10:52:49 +00:00
parent bb0dcfa0bb
commit 0fef2bcfad
+16 -12
View File
@@ -36,7 +36,7 @@ jobs:
- name: Generate merged manifest for offline build - name: Generate merged manifest for offline build
run: ./gradlew processOfflineDebugManifest --no-daemon run: ./gradlew processOfflineDebugManifest --no-daemon
- name: Check for INTERNET permission in offline merged manifest - name: Check for network permissions in offline merged manifest
run: | run: |
MANIFEST=$(find app/build/intermediates/merged_manifests -name "AndroidManifest.xml" | grep -i offline | head -1) MANIFEST=$(find app/build/intermediates/merged_manifests -name "AndroidManifest.xml" | grep -i offline | head -1)
if [ -z "$MANIFEST" ]; then if [ -z "$MANIFEST" ]; then
@@ -44,14 +44,18 @@ jobs:
exit 1 exit 1
fi fi
echo "Checking: $MANIFEST" echo "Checking: $MANIFEST"
if grep -q 'android.permission.INTERNET' "$MANIFEST"; then FAILED=0
echo "" for PERMISSION in android.permission.INTERNET android.permission.CHANGE_NETWORK_STATE android.permission.ACCESS_NETWORK_STATE; do
echo "ERROR: android.permission.INTERNET found in offline build manifest!" if grep -q "$PERMISSION" "$MANIFEST"; then
echo "The offline flavor must not include INTERNET permission." echo ""
echo "" echo "ERROR: $PERMISSION found in offline build manifest!"
echo "Offending lines:" echo "The offline flavor must not include network permissions."
grep 'android.permission.INTERNET' "$MANIFEST" echo ""
exit 1 echo "Offending lines:"
else grep "$PERMISSION" "$MANIFEST"
echo "OK: No INTERNET permission in offline build manifest" FAILED=1
fi else
echo "OK: No $PERMISSION in offline build manifest"
fi
done
exit $FAILED