diff options
| author | 2021-11-12 17:21:21 +0000 | |
|---|---|---|
| committer | 2021-11-12 17:21:21 +0000 | |
| commit | 4be13ed38e3f50423dd579d0c3cb1d96ef6aa91a (patch) | |
| tree | 1de66331633f76439a1ebaae17ac52f802eaade3 | |
| parent | 653ad04d5063ac0812ee3bbde6c9600150570d3e (diff) | |
| parent | 7926d52f250189c7a4117051fa856ffb033b3048 (diff) | |
Merge "Make libbinder_rs vendor available." am: 7926d52f25
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1885833
Change-Id: I52777cd8fd9fe88bd12b831f668a1a795c222dd9
| -rw-r--r-- | libs/binder/rust/Android.bp | 3 | ||||
| -rw-r--r-- | libs/binder/rust/src/binder.rs | 3 | ||||
| -rw-r--r-- | libs/binder/rust/src/native.rs | 4 | ||||
| -rw-r--r-- | libs/binder/rust/src/proxy.rs | 1 |
4 files changed, 9 insertions, 2 deletions
diff --git a/libs/binder/rust/Android.bp b/libs/binder/rust/Android.bp index d323022b01..4561d6e494 100644 --- a/libs/binder/rust/Android.bp +++ b/libs/binder/rust/Android.bp @@ -20,6 +20,7 @@ rust_library { "libdowncast_rs", ], host_supported: true, + vendor_available: true, target: { darwin: { enabled: false, @@ -64,6 +65,7 @@ rust_library { "libbinder_ndk", ], host_supported: true, + vendor_available: true, target: { darwin: { enabled: false, @@ -105,6 +107,7 @@ rust_bindgen { "libbinder_ndk", ], host_supported: true, + vendor_available: true, // Currently necessary for host builds // TODO(b/31559095): bionic on host should define this diff --git a/libs/binder/rust/src/binder.rs b/libs/binder/rust/src/binder.rs index bd2e6954cb..d09ac83785 100644 --- a/libs/binder/rust/src/binder.rs +++ b/libs/binder/rust/src/binder.rs @@ -167,6 +167,7 @@ pub trait IBinderInternal: IBinder { fn ping_binder(&mut self) -> Result<()>; /// Indicate that the service intends to receive caller security contexts. + #[cfg(not(android_vndk))] fn set_requesting_sid(&mut self, enable: bool); /// Dump this object to the given file handle @@ -635,6 +636,7 @@ unsafe impl<T, V: AsNative<T>> AsNative<T> for Option<V> { pub struct BinderFeatures { /// Indicates that the service intends to receive caller security contexts. This must be true /// for `ThreadState::with_calling_sid` to work. + #[cfg(not(android_vndk))] pub set_requesting_sid: bool, // Ensure that clients include a ..BinderFeatures::default() to preserve backwards compatibility // when new fields are added. #[non_exhaustive] doesn't work because it prevents struct @@ -837,6 +839,7 @@ macro_rules! declare_binder_interface { /// Create a new binder service. pub fn new_binder<T: $interface + Sync + Send + 'static>(inner: T, features: $crate::BinderFeatures) -> $crate::Strong<dyn $interface> { let mut binder = $crate::Binder::new_with_stability($native(Box::new(inner)), $stability); + #[cfg(not(android_vndk))] $crate::IBinderInternal::set_requesting_sid(&mut binder, features.set_requesting_sid); $crate::Strong::new(Box::new(binder)) } diff --git a/libs/binder/rust/src/native.rs b/libs/binder/rust/src/native.rs index f5d7187f4a..e183ea30fc 100644 --- a/libs/binder/rust/src/native.rs +++ b/libs/binder/rust/src/native.rs @@ -212,7 +212,7 @@ impl<T: Remotable> Binder<T> { /// Mark this binder object with local stability, which is vendor if we are /// building for the VNDK and system otherwise. - #[cfg(vendor_ndk)] + #[cfg(any(vendor_ndk, android_vndk))] fn mark_local_stability(&mut self) { unsafe { // Safety: Self always contains a valid `AIBinder` pointer, so @@ -223,7 +223,7 @@ impl<T: Remotable> Binder<T> { /// Mark this binder object with local stability, which is vendor if we are /// building for the VNDK and system otherwise. - #[cfg(not(vendor_ndk))] + #[cfg(not(any(vendor_ndk, android_vndk)))] fn mark_local_stability(&mut self) { unsafe { // Safety: Self always contains a valid `AIBinder` pointer, so diff --git a/libs/binder/rust/src/proxy.rs b/libs/binder/rust/src/proxy.rs index 83553d793b..760d862c53 100644 --- a/libs/binder/rust/src/proxy.rs +++ b/libs/binder/rust/src/proxy.rs @@ -323,6 +323,7 @@ impl<T: AsNative<sys::AIBinder>> IBinderInternal for T { status_result(status) } + #[cfg(not(android_vndk))] fn set_requesting_sid(&mut self, enable: bool) { unsafe { sys::AIBinder_setRequestingSid(self.as_native_mut(), enable) }; } |