mirror of
				https://github.com/mer-hybris/libgbinder
				synced 2025-11-04 06:44:08 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
GLib-style interface to binder (Android IPC mechanism)
 | 
						|
 | 
						|
Key features:
 | 
						|
 | 
						|
1. Integration with GLib event loop
 | 
						|
2. Detection of 32 vs 64 bit kernel at runtime
 | 
						|
3. Asynchronous transactions that don't block the event thread
 | 
						|
4. Stable service manager and low-level transaction APIs
 | 
						|
 | 
						|
Android keeps changing both low-level RPC and service manager
 | 
						|
protocols from version to version. To counter that, libgbinder
 | 
						|
implements configirable backends for different variants of those,
 | 
						|
and yet keeping its own API unchanged.
 | 
						|
 | 
						|
Configuration is loaded from [Protocol] and [ServiceManager] sections
 | 
						|
of /etc/gbinder.conf file. The keys are binder device names or the
 | 
						|
special Default value, the value is the identifier of the protocol
 | 
						|
or service manager variant, respectively.
 | 
						|
 | 
						|
In addition to reading /etc/gbinder.conf if it exists, /etc/gbinder.d
 | 
						|
directory is scanned for .conf files, the file list is sorted, files are
 | 
						|
loaded one by one, overwriting the entries loaded from /etc/gbinder.conf
 | 
						|
or from the previously processed file.
 | 
						|
 | 
						|
Known protocol and service manager variants are aidl, aidl2, aidl3 and
 | 
						|
hidl. This list is expected to expand further in the future. The default
 | 
						|
configuration is as follows:
 | 
						|
 | 
						|
  [Protocol]
 | 
						|
  Default = aidl
 | 
						|
  /dev/binder = aidl
 | 
						|
  /dev/hwbinder = hidl
 | 
						|
 | 
						|
  [ServiceManager]
 | 
						|
  Default = aidl
 | 
						|
  /dev/binder = aidl
 | 
						|
  /dev/hwbinder = hidl
 | 
						|
 | 
						|
Alternatively and preferably, one can specify the desired Android API
 | 
						|
level:
 | 
						|
 | 
						|
  [General]
 | 
						|
  ApiLevel = 29
 | 
						|
 | 
						|
and let libgbinder pick the appropriate preset. Full list of presets can
 | 
						|
be found in src/gbinder_config.c
 |