libbinder: binders hold wire protocol version
The libbinder wire protocol version is currently unstable, but we may stablize it. This adds a version field in the stability token which is passed around with binder objects, so it doesn't require additional memory. Future consideration/direction: - when starting a transaction, attach a binder to a Parcel object - when parceling, parcel according to the maximum of (locally understood wire protocol, binder wire protocol) - verify in transact the data parcel has the corresponding binder - when the server creates a reply parcel, note version which is the same as the version used in the data Parcel (we know that whoever wrote this transaction can understand this level). - save binary blobs of known write*/read* data flows, and test that Parcel can understand and recreate these blobs after it is versioned. Bug: 167966510 Test: 'atest binderStabilityTest' - verifies behavior Test: internally checks version is always set Change-Id: I9bb5be5b5b7d7255f8387cf690d86a055102f95d
Loading
Please register or sign in to comment