Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a796c6c5 authored by Jonathan Klee's avatar Jonathan Klee
Browse files

Make 3rd party app links verification work on A14

When Android has installed an app, immediately after it proceeds with App Links verification
by requesting the application Digital Asset Links json file at https://appdomain.name/.well-known/assetlinks.json

This step is not done when the device is not in charge.

With this MR, we are forcing the App Links verification by ignoring the UID's networking block feature.

This reverts commit 07b889e4.
parent 49a4ee56
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@
    <uses-permission android:name="android.permission.INTENT_FILTER_VERIFICATION_AGENT"/>
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.OBSERVE_NETWORK_POLICY"/>
    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.UPDATE_DOMAIN_VERIFICATION_USER_SELECTION"/>
+0 −16
Original line number Diff line number Diff line
@@ -17,12 +17,8 @@
package com.android.statementservice.domain

import android.content.Context
import android.content.pm.PackageManager
import android.content.pm.verify.domain.DomainVerificationManager
import android.net.ConnectivityManager
import android.net.Network
import android.net.NetworkCapabilities
import android.net.NetworkPolicyManager
import android.util.Log
import androidx.collection.LruCache
import com.android.statementservice.network.retriever.StatementRetriever
@@ -95,18 +91,6 @@ class DomainVerifier private constructor(
        val assetMatcher = synchronized(targetAssetCache) { targetAssetCache[packageName] }
            .takeIf { it!!.isPresent }
            ?: return WorkResult.failure() to VerifyStatus.FAILURE_PACKAGE_MANAGER
        // Only verify hosts if UID's networking is not blocked
        val networkPolicyManager = appContext.getSystemService(NetworkPolicyManager::class.java)
        if (networkPolicyManager != null) {
            val isNetworkMetered = appContext.getSystemService(ConnectivityManager::class.java)
                    ?.getNetworkCapabilities(network)?.hasCapability(
                            NetworkCapabilities.NET_CAPABILITY_NOT_METERED) == false
            val packageUid = appContext.packageManager.getPackageUid(packageName,
                    PackageManager.PackageInfoFlags.of(0))
            if (networkPolicyManager.isUidNetworkingBlocked(packageUid, isNetworkMetered)) {
                return WorkResult.failure() to VerifyStatus.NO_RESPONSE
            }
        }
        return verifyHost(host, assetMatcher.get(), network)
    }