Wires the ax_sandbox module (PawletOS/ax_sandbox, common/vendor/axion.xml --
source copied from AxionAOSP, see that repo's README.md for the license
decision record) into frameworks/base:
- IActivityManager.aidl: 34 new methods (getSandboxAppLockState,
addSandboxLockedApp, isSandboxPackageHidden, etc.) plus 4 new
com.android.internal.app types this depends on (HiddenNotificationInfo,
IAppLockStateListener, IAppSessionListener, IHiddenNotificationListener --
these also don't exist anywhere in AxionAOSP's own ax_sandbox module,
only referenced by it; copied from their frameworks/base fork directly).
- ActivityManagerService.java: bare delegate implementations for all 34
methods, calling AxSandboxService.getInstance(). No permission checks --
faithfully matches AxionAOSP's own upstream implementation, which has
none either. Flagged, not silently carried over -- see the block comment
in IActivityManager.aidl.
- SystemServer.java: constructs AxSandboxService(mSystemContext, atm) right
after StartThermalManager, matching real upstream placement (needs the
ActivityTaskManagerService instance directly, same reason
ActivityManagerService itself isn't built via the generic
startService(Class) form).
- Context.java / SystemServiceRegistry.java: AX_SANDBOX_SERVICE constant +
registration, so getSystemService(AxSandboxManager.class) resolves.
- core/java/Android.bp, services/core/Android.bp: filegroup references
(ax_sandbox_common_sources, ax_sandbox_server_sources) pulling in the
ax_sandbox repo's actual source.
- TaskFragment.java, ActivityRecord.java (6 call sites), Task.java,
DisplayContent.java, KeyguardController.java, RecentTasks.java,
ActivityTaskSupervisor.java (2 call sites): the real WM focus-lifecycle
hooks AxSandboxService needs to actually gate app switches -- extracted
from AxionAOSP's real frameworks/base fork diff (branch lineage-23.2)
against a LineageOS lineage-23.2 baseline, isolating exactly the
AxSandbox-relevant hunks from other bundled Axion features in the same
files (GameSpaceService, AxDragonite, an unrelated TaskInputSink
removal) that are explicitly out of scope here and were not pulled in.
Deferred, not included: the shared/ credential-verification + Compose UI
layer, and app-level consumers (AxSandbox, AppLocker apps).
See notes/axion-port-plan.md in the main PawletOS workspace for the full
decision record, including the explicit, informed acceptance of copying
source that has no license grant (all but one file in ax_sandbox).
Change-Id: Iaxs4ndb0x0000000000000000000000000000001