Files
oxmc 4149ba6560 Add AxSandbox integration (app-lock/app-hide/isolation/spoof)
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
2026-10-17 21:28:36 -07:00
..
…