ec3e75de5d
Add IPawletManager AIDL interface, PawletManager client wrapper, and PawletManagerService implementation. The service is hosted by a privileged system app which calls: ServiceManager.addService(PawletManager.SERVICE_NAME, new PawletManagerService(this)); API surface: - Build info: getPawletVersion, getDisplayVersion, getReleaseType, getBuildDate - Device info: getDeviceCodename, getDeviceModel, getHardwarePlatform, getSerialNumber - Provisioning: isDeviceProvisioned, isUserSetupComplete - Feature flags: isFeatureEnabled / setFeatureEnabled (persist.pawlet.feature.*) - SDK version: getPawletSdkVersion PawletDevice: remove broken resource lookup, use system props directly; add isPawletDevice, getBuildVersion, getDisplayVersion, getReleaseType, getHardwarePlatform, getSerialNumber, getBuildDate. PawletSystem: remove dead SDK<24 branches; improve isRooted to check su binary paths and Magisk; keep isEmulator with same logic. sepolicy: vendor_internal_prop for persist.* and vendor.* props, dontaudit for system domains; fix file_contexts JAR labels. Android.bp: add aidl block, pawlet-manager-service java_library. AndroidManifest: minSdk 26, targetSdk 36.
15 lines
527 B
Plaintext
15 lines
527 B
Plaintext
# PawletOS framework service domain
|
|
type pawlet_device, domain, coredomain;
|
|
type pawlet_device_exec, exec_type, file_type;
|
|
|
|
# Binder communication with system_server and servicemanager
|
|
binder_use(pawlet_device)
|
|
binder_call(pawlet_device, system_server)
|
|
binder_call(pawlet_device, servicemanager)
|
|
|
|
# Allow reading PawletOS system properties
|
|
get_prop(pawlet_device, system_prop)
|
|
|
|
# Silence audit noise from system domains reading vendor props they don't need
|
|
dontaudit domain vendor_internal_prop:file { read open getattr map };
|