libbinder: on host
The usecase is unit testing things which implement binder interfaces.
Bug: 124524556
Test: TH runs all relevant unit tests
Change-Id: I8caba1290da6d0354a7736a26d1dad7b6ab852e6
diff --git a/libs/binder/Android.bp b/libs/binder/Android.bp
index 86f19c5..8af2872 100644
--- a/libs/binder/Android.bp
+++ b/libs/binder/Android.bp
@@ -16,6 +16,8 @@
name: "libbinder_headers",
export_include_dirs: ["include"],
vendor_available: true,
+ host_supported: true,
+
header_libs: [
"libbase_headers",
"libcutils_headers",
@@ -28,6 +30,27 @@
],
}
+// These interfaces are android-specific implementation unrelated to binder
+// transport itself and should be moved to AIDL or in domain-specific libs.
+//
+// Currently, these are only on system android (not vendor, not host)
+libbinder_device_interface_sources = [
+ "ActivityManager.cpp",
+ "AppOpsManager.cpp",
+ "IActivityManager.cpp",
+ "IAppOpsCallback.cpp",
+ "IAppOpsService.cpp",
+ "IBatteryStats.cpp",
+ "IMediaResourceMonitor.cpp",
+ "IPermissionController.cpp",
+ "IProcessInfoService.cpp",
+ "IUidObserver.cpp",
+ "PermissionCache.cpp",
+ "PermissionController.cpp",
+ "ProcessInfoService.cpp",
+ "IpPrefix.cpp",
+]
+
cc_library_shared {
name: "libbinder",
@@ -37,6 +60,13 @@
enabled: true,
},
double_loadable: true,
+ host_supported: true,
+
+ // TODO(b/31559095): get headers from bionic on host
+ include_dirs: [
+ "bionic/libc/kernel/android/uapi/",
+ "bionic/libc/kernel/uapi/",
+ ],
// libbinder does not offer a stable wire protocol.
// if a second copy of it is installed, then it may break after security
@@ -44,62 +74,39 @@
no_apex: true,
srcs: [
- "ActivityManager.cpp",
- "AppOpsManager.cpp",
"Binder.cpp",
"BpBinder.cpp",
"BufferedTextOutput.cpp",
"Debug.cpp",
- "IActivityManager.cpp",
- "IAppOpsCallback.cpp",
- "IAppOpsService.cpp",
- "IBatteryStats.cpp",
"IInterface.cpp",
- "IMediaResourceMonitor.cpp",
"IMemory.cpp",
"IPCThreadState.cpp",
- "IPermissionController.cpp",
- "IProcessInfoService.cpp",
"IResultReceiver.cpp",
"IServiceManager.cpp",
"IShellCallback.cpp",
- "IUidObserver.cpp",
"MemoryBase.cpp",
"MemoryDealer.cpp",
"MemoryHeapBase.cpp",
"Parcel.cpp",
"ParcelFileDescriptor.cpp",
- "PermissionCache.cpp",
- "PermissionController.cpp",
"PersistableBundle.cpp",
- "ProcessInfoService.cpp",
"ProcessState.cpp",
"Static.cpp",
"Stability.cpp",
"Status.cpp",
"TextOutput.cpp",
- "IpPrefix.cpp",
":libbinder_aidl",
],
target: {
+ android: {
+ srcs: libbinder_device_interface_sources,
+ },
+ host: {
+ cflags: ["-D__ANDROID_HOST__"],
+ },
vendor: {
- exclude_srcs: [
- "ActivityManager.cpp",
- "AppOpsManager.cpp",
- "IActivityManager.cpp",
- "IAppOpsCallback.cpp",
- "IAppOpsService.cpp",
- "IBatteryStats.cpp",
- "IMediaResourceMonitor.cpp",
- "IPermissionController.cpp",
- "IProcessInfoService.cpp",
- "IUidObserver.cpp",
- "PermissionCache.cpp",
- "PermissionController.cpp",
- "ProcessInfoService.cpp",
- "IpPrefix.cpp",
- ],
+ exclude_srcs: libbinder_device_interface_sources,
},
},