Car+ Unlocker

简体中文

Car+ Unlocker is a modern Xposed module (libxposed API 102) for OPPO / OnePlus devices that lets any installed third‑party app appear in the ColorOS Car+ (com.oplus.ocar) app list and be launched from the car UI.

  • Package: io.github.hao1196561270.CarPlusUnlocker
  • API: libxposed API 102 (modern Xposed API)
  • Target: Car+ (com.oplus.ocar) on OPPO / OnePlus ColorOS
  • Size: ≈ 54 KB release APK

Features

  • Dense list of third‑party (non‑system) apps (icon / name / version) with per‑app enable switches
  • Search: tap the magnifier icon — the top bar expands into a full‑width input with live filtering (magnifier at the far left, the whole bar is tappable)
  • Pull‑to‑refresh to reload the list
  • “停止Car+” button: force‑stops Car+ (root required) so configuration changes take effect immediately; shows a short one‑time help dialog
  • Hide launcher icon: hides the desktop entry via a launcher alias — the app itself stays reachable through the LSPosed manager "Settings" entry, the in‑app switch, or adb shell pm enable io.github.hao1196561270.CarPlusUnlocker/.DeskIcon
  • Unified look: fixed brand‑color top bar (identical in light and dark mode with the status bar), pure white / pure black page backgrounds, adaptive text colors
  • Minimal footprint: framework widgets only (ListView / SearchView / native pull‑to‑refresh), no androidx runtime dependency; the signed release APK is about 54 KB thanks to R8 + resource shrinking

How it works

Car+ Unlocker UI (module app)
        │  writes via libxposed service
        ▼
LSPosed database (Remote Preferences, group "carplus_unlocker")
        ▲
        │  read‑only via getRemotePreferences (hooked process)
        │
com.oplus.ocar process
   Hook 1  android.app.Application.onCreate   → kill Car+ background processes + lazy scan of enabled apps
   Hook 2  com.oplus.ocar.carcontrol.response.CertifiedApps.getList
            → unmark "experimental" apps, inject the enabled apps as media apps (fields like
              appType="media", launch/display params, Car Fusion / CarPlus / double‑open support)

Enabled‑app switches are stored in Remote Preferences (LSPosed database) through the libxposed service; the hook reads the same group read‑only, so UI state and hook behaviour stay in sync without file sharing.

Requirements

  • Android 15+ (minSdk 35)
  • Root (KernelSU or Magisk) with LSPosed (or a compatible framework) that supports libxposed API 102 (LSPosed 1.9.x with API 102 support or newer)
  • Car+ (com.oplus.ocar) installed
  • The “停止Car+” / refresh‑style actions need root (su)

Build from source

./gradlew assembleDebug        # debug APK
./gradlew assembleRelease      # signed release APK (signing config in `keystore/`, local only)

Release builds are signed; keep keystore/ (git‑ignored) backed up so future releases can be installed over previous versions.

Install & Usage

  1. Install the APK (release builds are signed; installing over previous versions preserves state).
  2. Open LSPosed → Modules → enable Car+ Unlocker (scope com.oplus.ocar is declared statically by the module).
  3. Open Car+ Unlocker, enable the apps you want in Car+ (search / pull‑to‑refresh supported).
  4. Tap “停止Car+” (root) or stop/restart Car+ manually; then check the Car+ app list in the car UI.

Hide launcher icon: toggle “隐藏桌面图标” in the app. To show it again: open the app via LSPosed manager → module → Settings and toggle the switch back, or run adb shell pm enable io.github.hao1196561270.CarPlusUnlocker/.DeskIcon.

Compatibility notes

The hooks target Car+ internals (CertifiedApps.getList, CertifiedAppInfo). Car+ updates may rename or restructure these classes; if the module stops working after an update, check the relevant signatures against your Car+ build. See HOOKS.md for the full hook list and maintenance notes.

License

Apache License 2.0

Built on libxposed (Apache‑2.0) and androidx.swiperefreshlayout.

Releases

1.0

Stable

9/1/2026, 2:03:44 PM

Car+ Unlocker v1.0.0

在 ColorOS Car+ 应用列表中添加任意第三方应用 / Add any third-party app to the ColorOS Car+ app list.

  • 首个版本 / Initial release v1.0
  • 正式签名 / Officially signed

Assets

1