diff options
| author | 2024-01-25 10:27:31 +0000 | |
|---|---|---|
| committer | 2024-01-25 10:27:31 +0000 | |
| commit | ff2c92625d50e734be90d892c32ca58ea6219563 (patch) | |
| tree | 122b4d31e453c4245898a16eaca438bc0ca6b854 | |
| parent | 03bd516c242addea51fb760d2c420978d2576d56 (diff) | |
Revert "Add IProcessObserver.OnProcessStarted API."
Revert submission 25758093-on-process-started
Reason for revert: Build breakage b/322242947
Reverted changes: /q/submissionid:25758093-on-process-started
Change-Id: I8bd883ecad0503bdbfceaef84319a311dbee10a8
10 files changed, 0 insertions, 340 deletions
diff --git a/core/java/android/app/HomeVisibilityListener.java b/core/java/android/app/HomeVisibilityListener.java index 5dd7ab0f99fa..1f5f2e4c8237 100644 --- a/core/java/android/app/HomeVisibilityListener.java +++ b/core/java/android/app/HomeVisibilityListener.java @@ -69,11 +69,6 @@ public abstract class HomeVisibilityListener { public HomeVisibilityListener() { mObserver = new android.app.IProcessObserver.Stub() { @Override - public void onProcessStarted(int pid, int processUid, int packageUid, - String packageName, String processName) { - } - - @Override public void onForegroundActivitiesChanged(int pid, int uid, boolean fg) { refreshHomeVisibility(); } diff --git a/core/java/android/app/IProcessObserver.aidl b/core/java/android/app/IProcessObserver.aidl index 5c5e72cf9d6f..7be3620f317b 100644 --- a/core/java/android/app/IProcessObserver.aidl +++ b/core/java/android/app/IProcessObserver.aidl @@ -18,17 +18,6 @@ package android.app; /** {@hide} */ oneway interface IProcessObserver { - /** - * Invoked when an app process starts up. - * - * @param pid The pid of the process. - * @param processUid The UID associated with the process. - * @param packageUid The UID associated with the package. - * @param packageName The name of the package. - * @param processName The name of the process. - */ - void onProcessStarted(int pid, int processUid, int packageUid, - @utf8InCpp String packageName, @utf8InCpp String processName); void onForegroundActivitiesChanged(int pid, int uid, boolean foregroundActivities); void onForegroundServicesChanged(int pid, int uid, int serviceTypes); void onProcessDied(int pid, int uid); diff --git a/libs/WindowManager/Shell/tests/flicker/pip/src/com/android/wm/shell/flicker/pip/tv/TvPipTestBase.kt b/libs/WindowManager/Shell/tests/flicker/pip/src/com/android/wm/shell/flicker/pip/tv/TvPipTestBase.kt index 0d1853534927..47bff8de377e 100644 --- a/libs/WindowManager/Shell/tests/flicker/pip/src/com/android/wm/shell/flicker/pip/tv/TvPipTestBase.kt +++ b/libs/WindowManager/Shell/tests/flicker/pip/src/com/android/wm/shell/flicker/pip/tv/TvPipTestBase.kt @@ -78,14 +78,6 @@ abstract class TvPipTestBase : PipTestBase(rotationToString(ROTATION_0), ROTATIO uiAutomation.dropShellPermissionIdentity() } - override fun onProcessStarted( - pid: Int, - processUid: Int, - packageUid: Int, - packageName: String, - processName: String - ) {} - override fun onForegroundActivitiesChanged(pid: Int, uid: Int, foreground: Boolean) {} override fun onForegroundServicesChanged(pid: Int, uid: Int, serviceTypes: Int) {} diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java index 22a3345bb22e..ae0cd65b2770 100644 --- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java +++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java @@ -3751,11 +3751,6 @@ final class ActivityManagerShellCommand extends ShellCommand { } @Override - public void onProcessStarted(int pid, int processUid, int packageUid, String packageName, - String processName) { - } - - @Override public void onForegroundServicesChanged(int pid, int uid, int serviceTypes) { } diff --git a/services/core/java/com/android/server/am/AppFGSTracker.java b/services/core/java/com/android/server/am/AppFGSTracker.java index fb89b8e4f3b4..1f98aba5bbd7 100644 --- a/services/core/java/com/android/server/am/AppFGSTracker.java +++ b/services/core/java/com/android/server/am/AppFGSTracker.java @@ -102,11 +102,6 @@ final class AppFGSTracker extends BaseAppStateDurationsTracker<AppFGSPolicy, Pac } @Override - public void onProcessStarted(int pid, int processUid, int packageUid, String packageName, - String processName) { - } - - @Override public void onProcessDied(int pid, int uid) { } }; diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java index ebc18adc0d82..3156e9da0ae9 100644 --- a/services/core/java/com/android/server/am/ProcessList.java +++ b/services/core/java/com/android/server/am/ProcessList.java @@ -2852,7 +2852,6 @@ public final class ProcessList { ? PROC_START_TIMEOUT_WITH_WRAPPER : PROC_START_TIMEOUT); } } - dispatchProcessStarted(app, pid); checkSlow(app.getStartTime(), "startProcess: done updating pids map"); return true; } @@ -4959,22 +4958,6 @@ public final class ProcessList { } } - void dispatchProcessStarted(ProcessRecord app, int pid) { - int i = mProcessObservers.beginBroadcast(); - while (i > 0) { - i--; - final IProcessObserver observer = mProcessObservers.getBroadcastItem(i); - if (observer != null) { - try { - observer.onProcessStarted(pid, app.uid, app.info.uid, - app.info.packageName, app.processName); - } catch (RemoteException e) { - } - } - } - mProcessObservers.finishBroadcast(); - } - void dispatchProcessDied(int pid, int uid) { int i = mProcessObservers.beginBroadcast(); while (i > 0) { diff --git a/services/core/java/com/android/server/app/GameServiceProviderInstanceImpl.java b/services/core/java/com/android/server/app/GameServiceProviderInstanceImpl.java index cdd147a0ec37..684d6a0fc596 100644 --- a/services/core/java/com/android/server/app/GameServiceProviderInstanceImpl.java +++ b/services/core/java/com/android/server/app/GameServiceProviderInstanceImpl.java @@ -177,11 +177,6 @@ final class GameServiceProviderInstanceImpl implements GameServiceProviderInstan } @Override - public void onProcessStarted(int pid, int processUid, int packageUid, String packageName, - String processName) { - } - - @Override public void onForegroundServicesChanged(int pid, int uid, int serviceTypes) { } }; diff --git a/services/core/java/com/android/server/devicestate/DeviceStateManagerService.java b/services/core/java/com/android/server/devicestate/DeviceStateManagerService.java index 9a4997fafb0d..dff14b5fbdd0 100644 --- a/services/core/java/com/android/server/devicestate/DeviceStateManagerService.java +++ b/services/core/java/com/android/server/devicestate/DeviceStateManagerService.java @@ -204,10 +204,6 @@ public final class DeviceStateManagerService extends SystemService { } @Override - public void onProcessStarted(int pid, int processUid, int packageUid, String packageName, - String processName) {} - - @Override public void onProcessDied(int pid, int uid) {} @Override diff --git a/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java b/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java index d7ef388b05e4..6deda468f9a2 100644 --- a/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java +++ b/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java @@ -214,11 +214,6 @@ public final class MediaProjectionManagerService extends SystemService } @Override - public void onProcessStarted(int pid, int processUid, int packageUid, - String packageName, String processName) { - } - - @Override public void onForegroundServicesChanged(int pid, int uid, int serviceTypes) { MediaProjectionManagerService.this.handleForegroundServicesChanged(pid, uid, serviceTypes); diff --git a/services/tests/mockingservicestests/src/com/android/server/am/ProcessObserverTest.java b/services/tests/mockingservicestests/src/com/android/server/am/ProcessObserverTest.java deleted file mode 100644 index fcf761fb6607..000000000000 --- a/services/tests/mockingservicestests/src/com/android/server/am/ProcessObserverTest.java +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Copyright (C) 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.server.am; - -import static android.os.Process.myPid; -import static android.os.Process.myUid; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyBoolean; -import static org.mockito.ArgumentMatchers.anyInt; -import static org.mockito.ArgumentMatchers.anyLong; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; - -import android.app.ActivityManagerInternal; -import android.app.IApplicationThread; -import android.app.IProcessObserver; -import android.app.usage.UsageStatsManagerInternal; -import android.content.ComponentName; -import android.content.Context; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageManagerInternal; -import android.os.Binder; -import android.os.Handler; -import android.os.HandlerThread; -import android.os.IBinder; -import android.util.Log; - -import androidx.test.filters.MediumTest; -import androidx.test.platform.app.InstrumentationRegistry; - -import com.android.server.DropBoxManagerInternal; -import com.android.server.LocalServices; -import com.android.server.am.ActivityManagerService.Injector; -import com.android.server.appop.AppOpsService; -import com.android.server.wm.ActivityTaskManagerInternal; -import com.android.server.wm.ActivityTaskManagerService; - -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - -import java.io.File; -import java.util.Arrays; - - -/** - * Tests to verify that process events are dispatched to process observers. - */ -@MediumTest -@SuppressWarnings("GuardedBy") -public class ProcessObserverTest { - private static final String TAG = "ProcessObserverTest"; - - private static final String PACKAGE = "com.foo"; - - @Rule - public final ApplicationExitInfoTest.ServiceThreadRule - mServiceThreadRule = new ApplicationExitInfoTest.ServiceThreadRule(); - - private Context mContext; - private HandlerThread mHandlerThread; - - @Mock - private AppOpsService mAppOpsService; - @Mock - private DropBoxManagerInternal mDropBoxManagerInt; - @Mock - private PackageManagerInternal mPackageManagerInt; - @Mock - private UsageStatsManagerInternal mUsageStatsManagerInt; - @Mock - private ActivityManagerInternal mActivityManagerInt; - @Mock - private ActivityTaskManagerInternal mActivityTaskManagerInt; - @Mock - private BatteryStatsService mBatteryStatsService; - - private ActivityManagerService mRealAms; - private ActivityManagerService mAms; - - private ProcessList mRealProcessList = new ProcessList(); - private ProcessList mProcessList; - - final IProcessObserver mProcessObserver = mock(IProcessObserver.Stub.class); - - @Before - public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); - - mContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); - - mHandlerThread = new HandlerThread(TAG); - mHandlerThread.start(); - - LocalServices.removeServiceForTest(DropBoxManagerInternal.class); - LocalServices.addService(DropBoxManagerInternal.class, mDropBoxManagerInt); - - LocalServices.removeServiceForTest(PackageManagerInternal.class); - LocalServices.addService(PackageManagerInternal.class, mPackageManagerInt); - - LocalServices.removeServiceForTest(ActivityManagerInternal.class); - LocalServices.addService(ActivityManagerInternal.class, mActivityManagerInt); - - LocalServices.removeServiceForTest(ActivityTaskManagerInternal.class); - LocalServices.addService(ActivityTaskManagerInternal.class, mActivityTaskManagerInt); - - doReturn(new ComponentName("", "")).when(mPackageManagerInt).getSystemUiServiceComponent(); - doReturn(true).when(mActivityTaskManagerInt).attachApplication(any()); - doNothing().when(mActivityTaskManagerInt).onProcessMapped(anyInt(), any()); - - mRealAms = new ActivityManagerService( - new TestInjector(mContext), mServiceThreadRule.getThread()); - mRealAms.mConstants.loadDeviceConfigConstants(); - mRealAms.mActivityTaskManager = new ActivityTaskManagerService(mContext); - mRealAms.mActivityTaskManager.initialize(null, null, mContext.getMainLooper()); - mRealAms.mAtmInternal = mActivityTaskManagerInt; - mRealAms.mPackageManagerInt = mPackageManagerInt; - mRealAms.mUsageStatsService = mUsageStatsManagerInt; - mRealAms.mProcessesReady = true; - mAms = spy(mRealAms); - mRealProcessList.mService = mAms; - mProcessList = spy(mRealProcessList); - - doReturn(mProcessObserver).when(mProcessObserver).asBinder(); - mProcessList.registerProcessObserver(mProcessObserver); - - doAnswer((invocation) -> { - Log.v(TAG, "Intercepting isProcStartValidLocked() for " - + Arrays.toString(invocation.getArguments())); - return null; - }).when(mProcessList).isProcStartValidLocked(any(), anyLong()); - } - - @After - public void tearDown() throws Exception { - mHandlerThread.quit(); - } - - private class TestInjector extends Injector { - TestInjector(Context context) { - super(context); - } - - @Override - public AppOpsService getAppOpsService(File recentAccessesFile, File storageFile, - Handler handler) { - return mAppOpsService; - } - - @Override - public Handler getUiHandler(ActivityManagerService service) { - return mHandlerThread.getThreadHandler(); - } - - @Override - public ProcessList getProcessList(ActivityManagerService service) { - return mRealProcessList; - } - - @Override - public BatteryStatsService getBatteryStatsService() { - return mBatteryStatsService; - } - } - - private ProcessRecord makeActiveProcessRecord(String packageName) - throws Exception { - final ApplicationInfo ai = makeApplicationInfo(packageName); - return makeActiveProcessRecord(ai); - } - - private ProcessRecord makeActiveProcessRecord(ApplicationInfo ai) - throws Exception { - final IApplicationThread thread = mock(IApplicationThread.class); - final IBinder threadBinder = new Binder(); - doReturn(threadBinder).when(thread).asBinder(); - doAnswer((invocation) -> { - Log.v(TAG, "Intercepting bindApplication() for " - + Arrays.toString(invocation.getArguments())); - if (mRealAms.mConstants.mEnableWaitForFinishAttachApplication) { - mRealAms.finishAttachApplication(0); - } - return null; - }).when(thread).bindApplication( - any(), any(), - any(), any(), anyBoolean(), - any(), any(), - any(), any(), - any(), - any(), anyInt(), - anyBoolean(), anyBoolean(), - anyBoolean(), anyBoolean(), any(), - any(), any(), any(), - any(), any(), - any(), any(), - any(), - anyLong(), anyLong()); - final ProcessRecord r = spy(new ProcessRecord(mAms, ai, ai.processName, ai.uid)); - r.setPid(myPid()); - r.setStartUid(myUid()); - r.setHostingRecord(new HostingRecord(HostingRecord.HOSTING_TYPE_BROADCAST)); - r.makeActive(thread, mAms.mProcessStats); - doNothing().when(r).killLocked(any(), any(), anyInt(), anyInt(), anyBoolean(), - anyBoolean()); - return r; - } - - static ApplicationInfo makeApplicationInfo(String packageName) { - final ApplicationInfo ai = new ApplicationInfo(); - ai.packageName = packageName; - ai.processName = packageName; - ai.uid = myUid(); - return ai; - } - - /** - * Verify that a process start event is dispatched to process observers. - */ - @Test - public void testNormal() throws Exception { - ProcessRecord app = startProcess(); - verify(mProcessObserver).onProcessStarted( - app.getPid(), app.uid, app.info.uid, PACKAGE, PACKAGE); - } - - private ProcessRecord startProcess() throws Exception { - final ProcessRecord app = makeActiveProcessRecord(PACKAGE); - final ApplicationInfo appInfo = makeApplicationInfo(PACKAGE); - mProcessList.handleProcessStartedLocked(app, app.getPid(), /* usingWrapper */ false, - /* expectedStartSeq */ 0, /* procAttached */ false); - app.getThread().bindApplication(PACKAGE, appInfo, - null, null, false, - null, - null, - null, null, - null, - null, 0, - false, false, - true, false, - null, - null, null, - null, - null, null, null, - null, null, - 0, 0); - return app; - } - - // TODO: [b/302724778] Remove manual JNI load - static { - System.loadLibrary("mockingservicestestjni"); - } -} |