// vendor/oxmc/pawletprofiled/Android.bp // ───────────────────────────────────────────────────────────────────────── // Drop this entire directory at vendor/oxmc/pawletprofiled/ and add // "pawletprofiled" to PRODUCT_PACKAGES in your device makefile. // // m pawletprofiled — build the daemon // m os.pawlet.profiled-V1-java — build Java stubs for system apps // ───────────────────────────────────────────────────────────────────────── // ── AIDL interface ──────────────────────────────────────────────────────── aidl_interface { name: "os.pawlet.profiled", srcs: ["aidl/os/pawlet/profiled/IPawletProfileService.aidl"], stability: "vintf", vendor_available: false, backend: { ndk: { enabled: true, }, java: { enabled: true, sdk_version: "system_current", }, cpp: { enabled: false, }, }, versions: ["1"], } // ── Vendored OpenSSL (Android-only, static, this binary only) ───────────── // See third_party/openssl-android/README.md — BoringSSL (the system // libcrypto/libssl) has no CMS/PKCS#7 support, so SignatureVerifier.cpp // links a private static copy instead of touching the platform's crypto // libs. third_party/openssl-android/Android.bp is picked up automatically // by Soong's normal recursive discovery — nothing to reference here beyond // the module names ("libssl_pawlet_static" / "libcrypto_pawlet_static") // used in static_libs below. // ── Native daemon ───────────────────────────────────────────────────────── // // This file is the Android/Soong build only — the Linux/D-Bus build lives // in CMakeLists.txt and is entirely separate. Accordingly the source list // below is the Android-specific set: main_android.cpp (Binder entry point) // and PawletProfileBinderService.cpp instead of main.cpp/PawletProfileService.cpp // (D-Bus), and no ZTE client (it watches NetworkManager over D-Bus, which // doesn't exist on Android — separate follow-up work, see main_android.cpp's // header comment). cc_binary { name: "pawletprofiled", srcs: [ "src/main_android.cpp", "src/PawletProfileBinderService.cpp", "src/ProfileParser.cpp", "src/ProfileStore.cpp", "src/SignatureVerifier.cpp", "src/payloads/PayloadHandlers.cpp", // shared dispatch — see its header comment "src/platform/android/Wifi.cpp", "src/platform/android/Ethernet.cpp", "src/platform/android/Vpn.cpp", "src/platform/android/Cert.cpp", "src/platform/android/Pkcs12.cpp", "src/platform/android/Passcode.cpp", "src/platform/android/Mdm.cpp", "src/platform/android/SoftwareUpdate.cpp", "src/platform/android/TimeServer.cpp", "src/platform/android/Proxy.cpp", "src/platform/android/DnsProxy.cpp", "src/platform/android/Firewall.cpp", "src/platform/android/Ldap.cpp", "src/platform/android/Wallpaper.cpp", "src/platform/android/Screensaver.cpp", "src/platform/android/FirstBoot.cpp", "src/platform/android/ContentCache.cpp", ], shared_libs: [ "libbinder_ndk", "libbase", "liblog", "os.pawlet.profiled-V1-ndk", ], static_libs: [ "libyaml", "libssl_pawlet_static", "libcrypto_pawlet_static", ], cflags: [ "-Wall", "-Wextra", "-Werror", "-std=c++17", ], init_rc: ["pawletprofiled.rc"], vintf_fragments: ["pawletprofiled.xml"], required: ["pawletprofiled_sepolicy"], } // ── SELinux policy shim ─────────────────────────────────────────────────── prebuilt_etc { name: "pawletprofiled_sepolicy", src: "sepolicy/pawletprofiled.te", sub_dir: "selinux", }