Async Initialize CarrierPrivilegesTracker

Create a separate HandlerThread to offload the heavyweight
initialization required for CarrierPrivilegesTracker. Push
all async events to that thread until the init is done, then
process the events in-order and turn down the thread so that
there isn't another unnecessary thread hanging around once
the heavy work is done.

Bug: 357096337
Test: atest CarrierPrivilegesTrackerTest
Flag: async_init_carrier_privileges_tracker
Change-Id: Idba6bc2191183568ad5fb3fd96e4219ea5ddfd99
diff --git a/flags/Android.bp b/flags/Android.bp
index 1885032..edcfc3f 100644
--- a/flags/Android.bp
+++ b/flags/Android.bp
@@ -33,6 +33,7 @@
         "subscription.aconfig",
         "uicc.aconfig",
         "satellite.aconfig",
-        "iwlan.aconfig"
+        "iwlan.aconfig",
+        "carrier.aconfig",
     ],
 }
diff --git a/flags/carrier.aconfig b/flags/carrier.aconfig
new file mode 100644
index 0000000..dca2ad3
--- /dev/null
+++ b/flags/carrier.aconfig
@@ -0,0 +1,11 @@
+package: "com.android.internal.telephony.flags"
+container: "system"
+
+# OWNER=nharold TARGET=24Q4
+flag {
+    name: "async_init_carrier_privileges_tracker"
+    is_exported: true
+    namespace: "telephony"
+    description: "Offload the heavyweight initialization of CarrierPrivilegesTracker to a worker thread"
+    bug:"357096337"
+}