Files
oxmc a1ff8098cc cache: wire up PawletCache resolution; read MDM software-update policy
- CacheResolverClient/SpkiPinning: resolve component downloads through
  os.pawlet.cache's IPawletCacheService when available (SPKI-pinned),
  falling back to the origin URL otherwise. sepolicy domain (bg_upd.te,
  seapp_contexts) for the new binder client + apps.php dispatcher.
- PolicyReader: read the policy PawletProfiled/pawletprofiled's
  software-update MDM payload handler writes to
  /data/system/pawletos/software_update_policy.json (previously unread on
  either platform). Wired into the scheduled JobService and UpdateExecutor:
  autoCheck=false skips the periodic check outright; autoDownload/
  autoInstall=false stages found updates instead of silently installing
  them; deferDays holds a staged update until it's been pending that long
  (new pending_first_seen_at column, DB v2 -> v3). Explicit user/MDM-
  triggered checks and installs are unaffected — the policy only throttles
  the automatic path, matching the payload's own field names.
2026-08-15 01:52:31 -07:00

30 lines
1.2 KiB
Plaintext

/*
* SPDX-FileCopyrightText: oxmc / PawletOS
* SPDX-License-Identifier: Apache-2.0
*/
package pawletos.bgupd;
import pawletos.bgupd.IUpdateCallback;
import pawletos.bgupd.ComponentStatus;
import pawletos.bgupd.UpdateParams;
interface IBgUpdaterService {
// Immediate, user-triggered (e.g. settings toggle changing WebView provider)
void requestComponentUpdate(String componentId, in @nullable UpdateParams params, IUpdateCallback callback);
// Query current state without forcing a network check
ComponentStatus getComponentStatus(String componentId);
List<ComponentStatus> getAllComponentStatus();
// Explicit user actions from the PawletOS settings addon
void setPreferredProvider(String componentId, String providerId);
void deleteDisabledProvider(String componentId, String providerId, IUpdateCallback callback);
// Manual "check now" button, separate from the scheduled job
void forceCheckAll(IUpdateCallback callback);
// Installs a staged update for an "install_mode": "manual" component
// (ComponentStatus.updateAvailable == true). No-op via onFailure if nothing is pending.
void installPendingUpdate(String componentId, IUpdateCallback callback);
}