From 93a657ad3365e988305337ed3ab7a116bd800664 Mon Sep 17 00:00:00 2001
From: Daniel Micay
Android apps can declare associations with domains in order to handle those
+ URLs in the app automatically. For security reasons, app links are disabled by
+ default to prevent apps intercepting arbitrarily URLs. First party apps associated
+ with a domain are expected to be authorized by the domain. Apps can ask for their
+ app links to be verified by the OS by marking them with autoVerify
in
+ their manifest. The OS will securely confirm that the domain authorizes the app to
+ handle the domain's URLs. Users can also manually enable an app's link
+ associations via Settings ➔ Apps ➔ App name ➔ Open by default ➔ Add link. Apps can
+ ask users to enable the associations and send them to this page in the Settings
+ app.
As an example, the first party YouTube app will have the app links verified by + the OS automatically while the NewPipe app requires manually enabling handling + links for YouTube and other sites.
+ +Verification of app links by the OS is done by the Intent Filter Verification
+ Service system app. It will use an HTTPS GET request to fetch
+ https://example.com/.well-known/assetlinks.json
in order to process a
+ request to verify that an app can handle example.com
links. The app
+ needs to have the app id and signing keys authorized by the domain in order for
+ the verification to succeed.
These network requests by the Intent Filter Verification Service to verify app + associations with domains are commonly confused for network requests made by the + apps. It's simply an HTTPS GET request without identifying information and doesn't + offer a communication channel with the app. Redirects won't be followed so there + will be a single request for each attempt to verify a domain.
+ +If you don't want automatic app link verification, you can disable the Network + permission added by GrapheneOS for the Intent Filter Verification Service system + app. In the future, we may provide a way to disable verification directly instead + of stopping it from working. It will make heavily throttled attempts to verify a + domain after the check failed which won't negatively impact battery life due to + the conservative JobScheduler-based implementation.
+ +For more details, see the + developer + documentation on app link verification.
+