diff options
15 files changed, 62 insertions, 56 deletions
diff --git a/AconfigFlags.bp b/AconfigFlags.bp index d1afb8656784..858620b41088 100644 --- a/AconfigFlags.bp +++ b/AconfigFlags.bp @@ -12,52 +12,36 @@ // See the License for the specific language governing permissions and // limitations under the License. -aconfig_srcjars = [ - // !!! KEEP THIS LIST ALPHABETICAL !!! - ":aconfig_mediacodec_flags_java_lib{.generated_srcjars}", - ":android.content.pm.flags-aconfig-java{.generated_srcjars}", - ":android.content.res.flags-aconfig-java{.generated_srcjars}", - ":android.crashrecovery.flags-aconfig-java{.generated_srcjars}", - ":android.hardware.biometrics.flags-aconfig-java{.generated_srcjars}", - ":android.media.codec-aconfig-java{.generated_srcjars}", - ":android.media.playback.flags-aconfig-java{.generated_srcjars}", - ":android.net.platform.flags-aconfig-java{.generated_srcjars}", - ":android.net.vcn.flags-aconfig-java{.generated_srcjars}", - ":android.nfc.flags-aconfig-java{.generated_srcjars}", - ":android.os.flags-aconfig-java{.generated_srcjars}", - ":android.security.flags-aconfig-java{.generated_srcjars}", - ":com.android.hardware.camera2-aconfig-java{.generated_srcjars}", - ":com.android.hardware.input-aconfig-java{.generated_srcjars}", - ":com.android.net.thread.flags-aconfig-java{.generated_srcjars}", - ":com.android.text.flags-aconfig-java{.generated_srcjars}", - ":com.android.window.flags.window-aconfig-java{.generated_srcjars}", - // !!! KEEP THIS LIST ALPHABETICAL !!! -] - -stubs_defaults { +aconfig_declarations_group { name: "framework-minus-apex-aconfig-declarations", - aconfig_declarations: [ - "android.content.pm.flags-aconfig", - "android.content.res.flags-aconfig", - "android.crashrecovery.flags-aconfig", - "android.hardware.biometrics.flags-aconfig", - "android.media.playback.flags-aconfig", - "android.net.platform.flags-aconfig", - "android.net.vcn.flags-aconfig", - "android.nfc.flags-aconfig", - "android.os.flags-aconfig", - "android.security.flags-aconfig", - "com.android.hardware.camera2-aconfig", - "com.android.hardware.input.input-aconfig", - "com.android.net.thread.flags-aconfig", - "com.android.window.flags.window-aconfig", - "com.android.text.flags-aconfig", + java_aconfig_libraries: [ + // !!! KEEP THIS LIST ALPHABETICAL !!! + "aconfig_mediacodec_flags_java_lib", + "android.content.pm.flags-aconfig-java", + "android.content.res.flags-aconfig-java", + "android.crashrecovery.flags-aconfig-java", + "android.hardware.biometrics.flags-aconfig-java", + "android.media.codec-aconfig-java", + "android.media.playback.flags-aconfig-java", + "android.net.platform.flags-aconfig-java", + "android.net.vcn.flags-aconfig-java", + "android.nfc.flags-aconfig-java", + "android.os.flags-aconfig-java", + "android.security.flags-aconfig-java", + "com.android.hardware.camera2-aconfig-java", + "com.android.hardware.input-aconfig-java", + "com.android.net.thread.flags-aconfig-java", + "com.android.text.flags-aconfig-java", + "com.android.window.flags.window-aconfig-java", + // !!! KEEP THIS LIST ALPHABETICAL !!! ], } filegroup { name: "framework-minus-apex-aconfig-srcjars", - srcs: aconfig_srcjars, + srcs: [ + ":framework-minus-apex-aconfig-declarations{.srcjars}", + ], } // Aconfig declarations and libraries for the core framework @@ -66,7 +50,9 @@ java_defaults { // Add java_aconfig_libraries to here to add them to the core framework // Add aconfig-annotations-lib as a dependency for the optimization - srcs: aconfig_srcjars, + srcs: [ + ":framework-minus-apex-aconfig-declarations{.srcjars}", + ], libs: ["aconfig-annotations-lib"], } diff --git a/api/Android.bp b/api/Android.bp index ea59d0b5ccdc..14320c96aafc 100644 --- a/api/Android.bp +++ b/api/Android.bp @@ -310,7 +310,7 @@ packages_to_document = [ // classpath (or sources) somehow. stubs_defaults { name: "android-non-updatable-stubs-defaults", - defaults: ["framework-minus-apex-aconfig-declarations"], + aconfig_declarations: ["framework-minus-apex-aconfig-declarations"], srcs: [":android-non-updatable-stub-sources"], sdk_version: "none", system_modules: "none", diff --git a/core/api/current.txt b/core/api/current.txt index 13b6da5fe9bf..8f5374c9dbc6 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -12739,7 +12739,7 @@ package android.content.pm { field public static final String FEATURE_TELEPHONY_RADIO_ACCESS = "android.hardware.telephony.radio.access"; field public static final String FEATURE_TELEPHONY_SUBSCRIPTION = "android.hardware.telephony.subscription"; field @Deprecated public static final String FEATURE_TELEVISION = "android.hardware.type.television"; - field @FlaggedApi("com.android.net.thread.flags.thread_enabled") public static final String FEATURE_THREAD_NETWORK = "android.hardware.thread_network"; + field @FlaggedApi("com.android.net.thread.flags.thread_enabled_platform") public static final String FEATURE_THREAD_NETWORK = "android.hardware.thread_network"; field public static final String FEATURE_TOUCHSCREEN = "android.hardware.touchscreen"; field public static final String FEATURE_TOUCHSCREEN_MULTITOUCH = "android.hardware.touchscreen.multitouch"; field public static final String FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT = "android.hardware.touchscreen.multitouch.distinct"; diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 250a6ffe7a50..eca138b83dbe 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -357,7 +357,7 @@ package android { field public static final String SYSTEM_APPLICATION_OVERLAY = "android.permission.SYSTEM_APPLICATION_OVERLAY"; field public static final String SYSTEM_CAMERA = "android.permission.SYSTEM_CAMERA"; field public static final String TETHER_PRIVILEGED = "android.permission.TETHER_PRIVILEGED"; - field @FlaggedApi("com.android.net.thread.flags.thread_enabled") public static final String THREAD_NETWORK_PRIVILEGED = "android.permission.THREAD_NETWORK_PRIVILEGED"; + field @FlaggedApi("com.android.net.thread.flags.thread_enabled_platform") public static final String THREAD_NETWORK_PRIVILEGED = "android.permission.THREAD_NETWORK_PRIVILEGED"; field public static final String TIS_EXTENSION_INTERFACE = "android.permission.TIS_EXTENSION_INTERFACE"; field public static final String TOGGLE_AUTOMOTIVE_PROJECTION = "android.permission.TOGGLE_AUTOMOTIVE_PROJECTION"; field public static final String TRIGGER_LOST_MODE = "android.permission.TRIGGER_LOST_MODE"; @@ -3482,7 +3482,7 @@ package android.content { field public static final String SYSTEM_CONFIG_SERVICE = "system_config"; field public static final String SYSTEM_UPDATE_SERVICE = "system_update"; field public static final String TETHERING_SERVICE = "tethering"; - field @FlaggedApi("com.android.net.thread.flags.thread_enabled") public static final String THREAD_NETWORK_SERVICE = "thread_network"; + field @FlaggedApi("com.android.net.thread.flags.thread_enabled_platform") public static final String THREAD_NETWORK_SERVICE = "thread_network"; field public static final String TIME_MANAGER_SERVICE = "time_manager"; field public static final String TRANSLATION_MANAGER_SERVICE = "translation"; field public static final String UI_TRANSLATION_SERVICE = "ui_translation"; diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 95fc3ac623ca..bfb041cf3edd 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -4767,7 +4767,7 @@ public abstract class Context { * @see android.net.thread.ThreadNetworkManager * @hide */ - @FlaggedApi("com.android.net.thread.flags.thread_enabled") + @FlaggedApi(com.android.net.thread.flags.Flags.FLAG_THREAD_ENABLED_PLATFORM) @SystemApi public static final String THREAD_NETWORK_SERVICE = "thread_network"; diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 6b156cffdce1..c943789c2e33 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -3756,7 +3756,7 @@ public abstract class PackageManager { * The device is capable of communicating with other devices via * <a href="https://www.threadgroup.org">Thread</a> networking protocol. */ - @FlaggedApi("com.android.net.thread.flags.thread_enabled") + @FlaggedApi(com.android.net.thread.flags.Flags.FLAG_THREAD_ENABLED_PLATFORM) @SdkConstant(SdkConstantType.FEATURE) public static final String FEATURE_THREAD_NETWORK = "android.hardware.thread_network"; diff --git a/core/java/android/net/thread/flags.aconfig b/core/java/android/net/thread/flags.aconfig index 6e72f8ebd8d1..ff762d78c412 100644 --- a/core/java/android/net/thread/flags.aconfig +++ b/core/java/android/net/thread/flags.aconfig @@ -1,8 +1,18 @@ package: "com.android.net.thread.flags" +# This file contains aconfig flags used from platform code +# Flags used for module APIs must be in aconfig files under each modules + flag { name: "thread_user_restriction_enabled" namespace: "thread_network" description: "Controls whether user restriction on thread networks is enabled" bug: "307679182" } + +flag { + name: "thread_enabled_platform" + namespace: "thread_network" + description: "Controls whether the Android Thread feature is enabled" + bug: "301473012" +} diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index cdef20afb11d..f60a8a48289c 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -1867,7 +1867,7 @@ public class UserManager { * @see DevicePolicyManager#clearUserRestriction(ComponentName, String) * @see #getUserRestrictions() */ - @FlaggedApi("com.android.net.thread.flags.thread_user_restriction_enabled") + @FlaggedApi(com.android.net.thread.flags.Flags.FLAG_THREAD_USER_RESTRICTION_ENABLED) public static final String DISALLOW_THREAD_NETWORK = "no_thread_network"; /** diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 720324cf4603..04a70df6920f 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -2237,7 +2237,7 @@ <!-- @SystemApi @hide Allows changing Thread network state and access to Thread network credentials such as Network Key and PSKc. <p>Not for use by third-party applications. - @FlaggedApi("com.android.net.thread.flags.thread_enabled") --> + @FlaggedApi("com.android.net.thread.flags.thread_enabled_platform") --> <permission android:name="android.permission.THREAD_NETWORK_PRIVILEGED" android:protectionLevel="signature|privileged" /> diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index 898b19969d9c..c11356b7308e 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -339,6 +339,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { static final String TAG = NetworkPolicyLogger.TAG; private static final boolean LOGD = NetworkPolicyLogger.LOGD; private static final boolean LOGV = NetworkPolicyLogger.LOGV; + // TODO: b/304347838 - Remove once the feature is in staging. + private static final boolean ALWAYS_RESTRICT_BACKGROUND_NETWORK = false; /** * No opportunistic quota could be calculated from user data plan or data settings. @@ -1060,7 +1062,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } // The flag is boot-stable. - mBackgroundNetworkRestricted = Flags.networkBlockedForTopSleepingAndAbove(); + mBackgroundNetworkRestricted = ALWAYS_RESTRICT_BACKGROUND_NETWORK + && Flags.networkBlockedForTopSleepingAndAbove(); if (mBackgroundNetworkRestricted) { // Firewall rules and UidBlockedState will get updated in // updateRulesForGlobalChangeAL below. diff --git a/services/core/java/com/android/server/vcn/routeselection/IpSecPacketLossDetector.java b/services/core/java/com/android/server/vcn/routeselection/IpSecPacketLossDetector.java index 5f4852f77727..a25d67ab66af 100644 --- a/services/core/java/com/android/server/vcn/routeselection/IpSecPacketLossDetector.java +++ b/services/core/java/com/android/server/vcn/routeselection/IpSecPacketLossDetector.java @@ -252,7 +252,7 @@ public class IpSecPacketLossDetector extends NetworkMetricMonitor { } getInboundTransformInternal() - .getIpSecTransformState( + .requestIpSecTransformState( new HandlerExecutor(mHandler), new IpSecTransformStateReceiver()); // Schedule for next poll @@ -302,7 +302,8 @@ public class IpSecPacketLossDetector extends NetworkMetricMonitor { "packetLossRate: " + packetLossRate + "% in the past " - + (state.getTimestamp() - mLastIpSecTransformState.getTimestamp()) + + (state.getTimestampMillis() + - mLastIpSecTransformState.getTimestampMillis()) + "ms"; mLastIpSecTransformState = state; diff --git a/services/core/java/com/android/server/vcn/routeselection/NetworkMetricMonitor.java b/services/core/java/com/android/server/vcn/routeselection/NetworkMetricMonitor.java index a79f188713e1..1704aa117a2b 100644 --- a/services/core/java/com/android/server/vcn/routeselection/NetworkMetricMonitor.java +++ b/services/core/java/com/android/server/vcn/routeselection/NetworkMetricMonitor.java @@ -138,10 +138,10 @@ public abstract class NetworkMetricMonitor implements AutoCloseable { } /** Poll an IpSecTransformState */ - public void getIpSecTransformState( + public void requestIpSecTransformState( @NonNull Executor executor, @NonNull OutcomeReceiver<IpSecTransformState, RuntimeException> callback) { - ipSecTransform.getIpSecTransformState(executor, callback); + ipSecTransform.requestIpSecTransformState(executor, callback); } /** Close this instance and release the underlying resources */ diff --git a/services/tests/mockingservicestests/src/com/android/server/OWNERS b/services/tests/mockingservicestests/src/com/android/server/OWNERS index b363f545760e..f80156021408 100644 --- a/services/tests/mockingservicestests/src/com/android/server/OWNERS +++ b/services/tests/mockingservicestests/src/com/android/server/OWNERS @@ -2,3 +2,4 @@ per-file *Alarm* = file:/apex/jobscheduler/OWNERS per-file *AppStateTracker* = file:/apex/jobscheduler/OWNERS per-file *DeviceIdleController* = file:/apex/jobscheduler/OWNERS per-file SensitiveContentProtectionManagerServiceTest.java = file:/core/java/android/permission/OWNERS +per-file RescuePartyTest.java = file:/packages/CrashRecovery/OWNERS diff --git a/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java index 5f2abc3285c9..34929356fe8c 100644 --- a/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java @@ -205,6 +205,7 @@ import libcore.io.Streams; import org.junit.After; import org.junit.Assume; import org.junit.Before; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.MethodRule; @@ -2217,6 +2218,7 @@ public class NetworkPolicyManagerServiceTest { assertFalse(mService.isUidNetworkingBlocked(UID_B, false)); } + @Ignore("Temporarily disabled until the feature is enabled") @Test @RequiresFlagsEnabled(Flags.FLAG_NETWORK_BLOCKED_FOR_TOP_SLEEPING_AND_ABOVE) public void testBackgroundChainOnTempAllowlistChange() throws Exception { @@ -2246,6 +2248,7 @@ public class NetworkPolicyManagerServiceTest { assertTrue(mService.isUidNetworkingBlocked(UID_A, false)); } + @Ignore("Temporarily disabled until the feature is enabled") @Test @RequiresFlagsEnabled(Flags.FLAG_NETWORK_BLOCKED_FOR_TOP_SLEEPING_AND_ABOVE) public void testUidObserverFiltersProcStateChanges() throws Exception { @@ -2308,6 +2311,7 @@ public class NetworkPolicyManagerServiceTest { waitForUidEventHandlerIdle(); } + @Ignore("Temporarily disabled until the feature is enabled") @Test @RequiresFlagsEnabled(Flags.FLAG_NETWORK_BLOCKED_FOR_TOP_SLEEPING_AND_ABOVE) public void testUidObserverFiltersStaleChanges() throws Exception { @@ -2328,6 +2332,7 @@ public class NetworkPolicyManagerServiceTest { waitForUidEventHandlerIdle(); } + @Ignore("Temporarily disabled until the feature is enabled") @Test @RequiresFlagsEnabled(Flags.FLAG_NETWORK_BLOCKED_FOR_TOP_SLEEPING_AND_ABOVE) public void testUidObserverFiltersCapabilityChanges() throws Exception { diff --git a/tests/vcn/java/com/android/server/vcn/routeselection/IpSecPacketLossDetectorTest.java b/tests/vcn/java/com/android/server/vcn/routeselection/IpSecPacketLossDetectorTest.java index 9daba6a79a27..1d7be2f4f039 100644 --- a/tests/vcn/java/com/android/server/vcn/routeselection/IpSecPacketLossDetectorTest.java +++ b/tests/vcn/java/com/android/server/vcn/routeselection/IpSecPacketLossDetectorTest.java @@ -144,7 +144,7 @@ public class IpSecPacketLossDetectorTest extends NetworkEvaluationTestBase { mTestLooper.dispatchAll(); verify(mIpSecTransform) - .getIpSecTransformState(any(), mTransformStateReceiverCaptor.capture()); + .requestIpSecTransformState(any(), mTransformStateReceiverCaptor.capture()); return mTransformStateReceiverCaptor.getValue(); } @@ -210,7 +210,7 @@ public class IpSecPacketLossDetectorTest extends NetworkEvaluationTestBase { assertNull(mIpSecPacketLossDetector.getLastTransformState()); mTestLooper.moveTimeForward(POLL_IPSEC_STATE_INTERVAL_MS); mTestLooper.dispatchAll(); - verify(newTransform).getIpSecTransformState(any(), any()); + verify(newTransform).requestIpSecTransformState(any(), any()); } @Test |