The Google Play Games Services Godt plugin has three different
versions (corresponding to different Godot versions, none of which is
the current version), and they're all based on v1 of the API, which
requires full internet permissions. To be fair, Google's Play Games
Services examples are, as of this writing, also based on v1, and
Google's messaging on this could use some help.

The design of Play Games Services is evil: it automatically installs a
provider, playgamesinitprovider, which asks my users to log in before
they even start the game.  This is an atrocious user experience: my
users don't know if they care about leaderboards until they play the
game.

This removes that provider (and all others -- it's a hack).  It goes
inside 'android {'.

When I remove the provider using this tack, logging into Play GGames
doesn't work unless the Play Games app is installed, and sometimes it
doesn't seem to prompt the user to install it (sometimes it does --
I'm not sure what the difference is).  But that's still better than a
user's first experience of your game being some Google garbage that
you don't even need.

It's possible that other libraries for accessing Play Games work
better. I haven't really messed around enough to know.

diff --git a/android/build/build.gradle b/android/build/build.gradle
index da12674..d56abd0 100644
--- a/android/build/build.gradle
+++ b/android/build/build.gradle
@@ -216,7 +216,29 @@ android {
         variant.outputs.all { output ->
             output.outputFileName = "android_${variant.name}.apk"
         }
-    }
+        variant.outputs.each { output ->
+            output.processManifest.doLast { task ->
+            def processManifest = output.getProcessManifestProvider().get()
+            def outputDir = task.getMultiApkManifestOutputDirectory()
+            File outputDirectory
+            if (outputDir instanceof File) {
+                outputDirectory = outputDir
+            } else {
+                outputDirectory = outputDir.get().asFile
+            }
+            File manifestOutFile = file("$outputDirectory/AndroidManifest.xml")
+
+            if (manifestOutFile.exists() && manifestOutFile.canRead() && manifestOutFile.canWrite()) {
+               def xmlParser = new XmlParser()
+               def xmlRoot = xmlParser.parse(manifestOutFile)
+               xmlRoot.'application'.provider.replaceNode {}
+               def nodePrinter = new XmlNodePrinter(new PrintWriter(new FileWriter(manifestOutFile)))
+               nodePrinter.preserveWhitespace = true
+               nodePrinter.print(xmlRoot)
+            }
+         }
+      }
+   }
 }
 
 task copyAndRenameDebugApk(type: Copy) {
