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

Commit 9778f006 authored by /e/ robot's avatar /e/ robot
Browse files

Merge remote-tracking branch 'origin/lineage-21.0' into v1-u

parents 564ae031 9dc0556f
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
@@ -27,9 +27,16 @@
    <string name="global_action_restart_fastboot">Fastbootd</string>
    <string name="global_action_restart_progress">Ag atosú\u2026</string>
    <string name="global_action_restart_recovery_progress">Ag atosú go mód athshlánaithe\u2026</string>
    <string name="global_action_restart_bootloader_progress">Ag atosú go mód an bootloader\u2026</string>
    <string name="global_action_restart_download_progress">Ag atosú go mód íoslódála\u2026</string>
    <string name="global_action_restart_fastboot_progress">Ag atosú go mód fastbootd\u2026</string>
    <string name="global_action_current_user">Reatha</string>
    <string name="global_action_users">Úsáideoirí</string>
    <string name="status_bar_icons_title">Deilbhíní barra stádais</string>
    <string name="drag_or_tap_to_add_tiles">Coinnigh &amp; tarraing nó tapáil chun tíleanna a chur leis</string>
    <string name="quick_settings_ambient_display_label">Taispeántas comhthimpeallach</string>
    <string name="accessibility_quick_settings_ambient_display_off">Taispeántas comhthimpeallach múchta.</string>
    <string name="accessibility_quick_settings_ambient_display_on">Taispeántas comhthimpeallach ar.</string>
    <string name="quick_settings_aod_label">AOD</string>
    <string name="quick_settings_aod_off_powersave_label">AOD as \n sábháil Ceallraí</string>
    <string name="quick_settings_caffeine_label">Caiféin</string>
@@ -38,6 +45,30 @@
    <string name="quick_settings_heads_up_label">Cinn suas</string>
    <string name="accessibility_quick_settings_heads_up_off">Cinn suas as.</string>
    <string name="accessibility_quick_settings_heads_up_on">Cinn suas ar.</string>
    <string name="quick_settings_powershare_label">PowerShare Gan Sreang</string>
    <string name="quick_settings_powershare_off_powersave_label">Gan Sreang PowerShare múchta\n Coigilt ceallraí</string>
    <string name="quick_settings_powershare_off_low_battery_label">Gan sreang PowerShare as\nCeallraí ró-íseal</string>
    <string name="quick_settings_powershare_enabled_label">Tá PowerShare gan sreang cumasaithe</string>
    <string name="quick_settings_reading_mode">Mód léamh</string>
    <string name="accessibility_quick_settings_reading_mode_on">Mód léamh air.</string>
    <string name="accessibility_quick_settings_reading_mode_off">Mód léamh múchta.</string>
    <string name="quick_settings_sync_label">Sionc</string>
    <string name="accessibility_quick_settings_sync_off">Sionc as.</string>
    <string name="accessibility_quick_settings_sync_on">Sionc air.</string>
    <string name="quick_settings_profiles_label">Próifílí córais</string>
    <string name="accessibility_quick_settings_profiles_off">Próifílí múchta.</string>
    <string name="accessibility_quick_settings_profiles">Próifíl: <xliff:g id="profile" example="Default">%s</xliff:g>.</string>
    <string name="quick_settings_usb_tether_label">Ceanglóir USB</string>
    <string name="quick_settings_vpn_label">VPN</string>
    <string name="quick_settings_vpn_connect_dialog_title">Ceangail le\u2026</string>
    <string name="vpn_credentials_hint">Cuir isteach do chuid dintiúir maidir le nascadh le <xliff:g id="name">%s</xliff:g></string>
    <string name="vpn_credentials_username">Ainm úsáideora</string>
    <string name="vpn_credentials_password">Pasfhocal</string>
    <string name="vpn_credentials_dialog_connect">Ceangal</string>
    <string name="accessibility_dpad_left">Cúrsóir ar chlé</string>
    <string name="accessibility_dpad_right">Cúrsóir ar dheis</string>
    <string name="status_bar_firewall">Balla dóiteáin</string>
    <string name="screenshot_delete_label">Scrios</string>
    <string name="screenshot_delete_description">Scrios seat scáileáin</string>
    <string name="screenrecord_delete_label">Scrios</string>
</resources>
+1 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@
    <string name="quick_settings_aod_off_powersave_label">AOD fikur\nKursim baterie</string>
    <string name="quick_settings_caffeine_label">Kafeina</string>
    <string name="accessibility_quick_settings_caffeine_off">Kafeina fikur.</string>
    <string name="accessibility_quick_settings_caffeine_on">Kafeina fikur.</string>
    <string name="accessibility_quick_settings_caffeine_on">Kafeina Ndezur.</string>
    <string name="quick_settings_heads_up_label">Heads up</string>
    <string name="accessibility_quick_settings_heads_up_off">Heads-up fikur.</string>
    <string name="accessibility_quick_settings_heads_up_on">Heads-up ndezur.</string>
+35 −11
Original line number Diff line number Diff line
@@ -38,7 +38,6 @@ import static android.content.Intent.ACTION_PACKAGE_ADDED;
import static android.content.Intent.ACTION_UID_REMOVED;
import static android.content.Intent.ACTION_USER_ADDED;
import static android.content.Intent.ACTION_USER_REMOVED;
import static android.content.Intent.EXTRA_REPLACING;
import static android.content.Intent.EXTRA_UID;
import static android.content.pm.ApplicationInfo.FLAG_INSTALLED;
import static android.content.pm.ApplicationInfo.PRIVATE_FLAG_HIDDEN;
@@ -1443,21 +1442,16 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
            final int uid = intent.getIntExtra(EXTRA_UID, -1);
            if (uid == -1) return;

            if (intent.getBooleanExtra(EXTRA_REPLACING, false)) {
                if (LOGV) Slog.v(TAG, "ACTION_PACKAGE_ADDED Not new app, skip it uid=" + uid);
                return;
            }

            if (ACTION_PACKAGE_ADDED.equals(action)) {
                // update rules for UID, since it might be subject to
                // global background data policy
                // Clear the cache for the app
                synchronized (mUidRulesFirstLock) {
                    mInternetPermissionMap.delete(uid);
                    if (!hasInternetPermissionUL(uid) && !isSystemApp(uid)) {
                        Slog.i(TAG, "ACTION_PACKAGE_ADDED for uid=" + uid + ", no INTERNET");
                        addUidPolicy(uid, POLICY_REJECT_ALL);
                    }
                    mInternetPermissionMap.delete(uid);
                    updateRestrictionRulesForUidUL(uid);
                }
            }
@@ -3035,10 +3029,15 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                    }
                } else if (TAG_UID_POLICY.equals(tag)) {
                    int uid = readUidAttribute(in, forRestore, userId);
                    final int oldPolicy = mUidPolicy.get(uid, POLICY_NONE);
                    final int policy = readIntAttribute(in, ATTR_POLICY);

                    if (UserHandle.isApp(uid)) {
                        if (forRestore) {
                            setUidPolicyUncheckedUL(uid, oldPolicy, policy, true);
                        } else {
                            setUidPolicyUncheckedUL(uid, policy, false);
                        }
                    } else {
                        Slog.w(TAG, "unable to apply policy to UID " + uid + "; ignoring");
                    }
@@ -3049,8 +3048,13 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                    // TODO: set for other users during upgrade
                    // app policy is deprecated so this is only used in pre system user split.
                    final int uid = UserHandle.getUid(UserHandle.USER_SYSTEM, appId);
                    final int oldPolicy = mUidPolicy.get(uid, POLICY_NONE);
                    if (UserHandle.isApp(uid)) {
                        if (forRestore) {
                            setUidPolicyUncheckedUL(uid, oldPolicy, policy, true);
                        } else {
                            setUidPolicyUncheckedUL(uid, policy, false);
                        }
                    } else {
                        Slog.w(TAG, "unable to apply policy to UID " + uid + "; ignoring");
                    }
@@ -3084,7 +3088,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                final int newPolicy = policy | POLICY_ALLOW_METERED_BACKGROUND;
                if (LOGV)
                    Log.v(TAG, "new policy for " + uid + ": " + uidPoliciesToString(newPolicy));
                if (forRestore) {
                    setUidPolicyUncheckedUL(uid, policy, newPolicy, true);
                } else {
                    setUidPolicyUncheckedUL(uid, newPolicy, false);
                }
            } else {
                Slog.w(TAG, "unable to update policy on UID " + uid);
            }
@@ -4891,8 +4899,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {

    @GuardedBy("mUidRulesFirstLock")
    private int updateBlockedReasonsForRestrictedModeUL(int uid) {
        final boolean isBlockedOnAllNetworks = isUidBlockedOnAllNetworks(uid);
        final boolean hasRestrictedModeAccess = hasRestrictedModeAccess(uid)
                || !isUidBlockedOnAllNetworks(uid);
                || !isBlockedOnAllNetworks;
        final int oldEffectiveBlockedReasons;
        final int newEffectiveBlockedReasons;
        final int uidRules;
@@ -4923,6 +4932,21 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {

            postUidRulesChangedMsg(uid, uidRules);
        }
        // The result of this method is used solely to determine whether the UID belongs on the
        // restricted mode allowlist. If the UID is blocked on all networks, that should never
        // be the case. However, the blocked state that we assign here determines other things,
        // like whether an app with ACCESS_NETWORK_STATE can actually see the active network.
        // As of calyxos#1266, we have been working around this problem, but only for apps
        // without the INTERNET permission, for which the user has no network toggle available.
        // TODO: Now that we have decoupled the blocked state from a UID's actual placement on
        // the restricted mode allowlist (via the lines below), consider looking into a workaround
        // for apps that *do* have INTERNET permission but have their network toggle turned off,
        // so that we do not slightly privilege apps with neither INTERNET nor toggle. We might
        // not be able to do the same thing, though, or the firewall icon may not show such apps
        // as blocked; further research required.
        if (isBlockedOnAllNetworks) {
            return BLOCKED_REASON_RESTRICTED_MODE;
        }
        return newEffectiveBlockedReasons;
    }