diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index c1a833b..303e9d2 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -2,6 +2,8 @@ + + diff --git a/plugins/withRemoveMediaPermissions.js b/plugins/withRemoveMediaPermissions.js index 0ce0ea8..283e630 100644 --- a/plugins/withRemoveMediaPermissions.js +++ b/plugins/withRemoveMediaPermissions.js @@ -8,12 +8,29 @@ const BLOCKED_PERMISSIONS = [ const withRemoveMediaPermissions = (config) => withAndroidManifest(config, (config) => { const manifest = config.modResults.manifest; - const permissions = manifest['uses-permission'] ?? []; - manifest['uses-permission'] = permissions.filter( + // Pastikan xmlns:tools ada di manifest root + if (!manifest.$['xmlns:tools']) { + manifest.$['xmlns:tools'] = 'http://schemas.android.com/tools'; + } + + // Hapus entry yang ada (apapun atributnya) + const existing = manifest['uses-permission'] ?? []; + manifest['uses-permission'] = existing.filter( (perm) => !BLOCKED_PERMISSIONS.includes(perm.$?.['android:name']) ); + // Tambahkan entry dengan tools:node="remove" agar Gradle merger + // membuang permission ini dari SEMUA sumber (termasuk library manifests) + for (const permission of BLOCKED_PERMISSIONS) { + manifest['uses-permission'].push({ + $: { + 'android:name': permission, + 'tools:node': 'remove', + }, + }); + } + return config; });