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

Commit 310ac5b1 authored by Yan Yan's avatar Yan Yan
Browse files

Reland: Add attribution tags for VCN and VPN

Allows IKE library metrics to identify and log the system clients

This commit also updates VcnManagementServiceTest to mock
out createAttributionContext

Bug: 278943609
Test: manually verified the metrics
Test: CtsVcnTestCases, FrameworksVcnTests, Ikev2VpnTest,
      VpnManagerServiceTest, VpnTest
Change-Id: I8b326de0484f9c97eb1b12f27a792c5ebf35ba1e
parent 750f874b
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -162,6 +162,8 @@ import java.util.concurrent.TimeUnit;
// TODO(b/180451994): ensure all incoming + outgoing calls have a cleared calling identity
public class VcnManagementService extends IVcnManagementService.Stub {
    @NonNull private static final String TAG = VcnManagementService.class.getSimpleName();
    @NonNull private static final String CONTEXT_ATTRIBUTION_TAG = "VCN";

    private static final long DUMP_TIMEOUT_MILLIS = TimeUnit.SECONDS.toMillis(5);
    private static final int LOCAL_LOG_LINE_COUNT = 512;

@@ -223,7 +225,9 @@ public class VcnManagementService extends IVcnManagementService.Stub {

    @VisibleForTesting(visibility = Visibility.PRIVATE)
    VcnManagementService(@NonNull Context context, @NonNull Dependencies deps) {
        mContext = requireNonNull(context, "Missing context");
        mContext =
                requireNonNull(context, "Missing context")
                        .createAttributionContext(CONTEXT_ATTRIBUTION_TAG);
        mDeps = requireNonNull(deps, "Missing dependencies");

        mLooper = mDeps.getLooper();
+2 −1
Original line number Diff line number Diff line
@@ -80,6 +80,7 @@ import java.util.List;
 */
public class VpnManagerService extends IVpnManager.Stub {
    private static final String TAG = VpnManagerService.class.getSimpleName();
    private static final String CONTEXT_ATTRIBUTION_TAG = "VPN_MANAGER";

    @VisibleForTesting
    protected final HandlerThread mHandlerThread;
@@ -157,7 +158,7 @@ public class VpnManagerService extends IVpnManager.Stub {
    }

    public VpnManagerService(Context context, Dependencies deps) {
        mContext = context;
        mContext = context.createAttributionContext(CONTEXT_ATTRIBUTION_TAG);
        mDeps = deps;
        mHandlerThread = mDeps.makeHandlerThread();
        mHandlerThread.start();
+7 −1
Original line number Diff line number Diff line
@@ -118,6 +118,7 @@ import java.util.UUID;
@RunWith(AndroidJUnit4.class)
@SmallTest
public class VcnManagementServiceTest {
    private static final String CONTEXT_ATTRIBUTION_TAG = "VCN";
    private static final String TEST_PACKAGE_NAME =
            VcnManagementServiceTest.class.getPackage().getName();
    private static final String TEST_PACKAGE_NAME_2 = "TEST_PKG_2";
@@ -177,6 +178,7 @@ public class VcnManagementServiceTest {
                    0 /* carrierId */,
                    0 /* profileClass */);

    private final Context mMockContextWithoutAttributionTag = mock(Context.class);
    private final Context mMockContext = mock(Context.class);
    private final VcnManagementService.Dependencies mMockDeps =
            mock(VcnManagementService.Dependencies.class);
@@ -202,6 +204,10 @@ public class VcnManagementServiceTest {
    private final IBinder mMockIBinder = mock(IBinder.class);

    public VcnManagementServiceTest() throws Exception {
        doReturn(mMockContext)
                .when(mMockContextWithoutAttributionTag)
                .createAttributionContext(CONTEXT_ATTRIBUTION_TAG);

        setupSystemService(
                mMockContext, mConnMgr, Context.CONNECTIVITY_SERVICE, ConnectivityManager.class);
        setupSystemService(
@@ -249,7 +255,7 @@ public class VcnManagementServiceTest {
        doReturn(bundle).when(mConfigReadWriteHelper).readFromDisk();

        setupMockedCarrierPrivilege(true);
        mVcnMgmtSvc = new VcnManagementService(mMockContext, mMockDeps);
        mVcnMgmtSvc = new VcnManagementService(mMockContextWithoutAttributionTag, mMockDeps);
        setupActiveSubscription(TEST_UUID_1);

        doReturn(mMockIBinder).when(mMockPolicyListener).asBinder();