Skip to content

Commit fd06bf9

Browse files
fix: marshal cycle-broken parcelables instead of treating as opaque
The codegen treated all cycle-broken types as opaque (no marshal/unmarshal), but parcelables redirected to types sub-packages have full capabilities. Only cycle-broken interfaces need opaque treatment (proxy constructors don't exist in types sub-packages). This fixes ~60 interfaces where cycle-broken parcelable params/returns were silently skipped on the wire. Also updates GetUsers to match the AIDL spec (3 bool params) and regenerates all code from a clean state.
1 parent 89582c2 commit fd06bf9

81 files changed

Lines changed: 2920 additions & 796 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 82 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -543,30 +543,111 @@ More examples: [`examples/`](examples/)
543543

544544
| Example | Queries |
545545
| ---------------------------------------------------------- | --------------------------------------------------- |
546+
| [`account_manager`](examples/account_manager/) | List accounts on the device via AccountManager. |
546547
| [`activity_manager`](examples/activity_manager/) | Process limits, monkey test flag, permission checks |
548+
| [`aidl_bridge`](examples/aidl_bridge/) | Expose a bridge service that forwards calls to another binder service. |
549+
| [`aidl_explorer`](examples/aidl_explorer/) | Introspect methods on binder services. |
550+
| [`alarm_auditor`](examples/alarm_auditor/) | Audit pending alarms via AlarmManager. |
551+
| [`app_hibernation`](examples/app_hibernation/) | Query app hibernation status via the AppHibernationService. |
552+
| [`attention_monitor`](examples/attention_monitor/) | Monitor user presence via PowerManager and display state. |
553+
| [`attestation_verify`](examples/attestation_verify/) | Query attestation verification and related security services. |
554+
| [`audio_focus`](examples/audio_focus/) | Query current audio focus state via AudioService. |
555+
| [`audio_recording_monitor`](examples/audio_recording_monitor/) | Detect which apps are currently recording audio. |
547556
| [`audio_status`](examples/audio_status/) | Audio device info, volume state |
548557
| [`battery_health`](examples/battery_health/) | Capacity, charge status, current draw |
558+
| [`binder_fuzzer`](examples/binder_fuzzer/) | Send randomized parcel data to services to test robustness. |
559+
| [`binder_latency`](examples/binder_latency/) | Measure round-trip binder transaction times. |
560+
| [`ble_sensor_collector`](examples/ble_sensor_collector/) | BLE sensor collector: scan for BLE devices and register a GATT client. |
561+
| [`bluetooth_audio_routing`](examples/bluetooth_audio_routing/) | Manage Bluetooth A2DP audio connections via binder. |
562+
| [`bluetooth_inventory`](examples/bluetooth_inventory/) | Enumerate paired/bonded Bluetooth devices and query adapter info. |
549563
| [`bluetooth_status`](examples/bluetooth_status/) | Query Bluetooth adapter status and scan for BLE devices via binder. |
550564
| [`camera_capture`](examples/camera_capture/) | Camera frame capture using gralloc-allocated buffers. |
551565
| [`camera_connect`](examples/camera_connect/) | Camera device connection with callback stub |
566+
| [`carrier_config`](examples/carrier_config/) | Query carrier configuration: default carrier service package, |
567+
| [`charge_monitor`](examples/charge_monitor/) | Monitor charging status and battery health via the Health HAL. |
568+
| [`clipboard_monitor`](examples/clipboard_monitor/) | Access the clipboard service to check clipboard state. |
569+
| [`compliance_checker`](examples/compliance_checker/) | Verify device compliance: encryption, security state, OTA update status. |
570+
| [`credential_manager`](examples/credential_manager/) | Query the CredentialManager service for availability. |
552571
| [`device_info`](examples/device_info/) | Device properties, build info |
572+
| [`device_policy`](examples/device_policy/) | Query DevicePolicyManager for device administration state. |
553573
| [`display_info`](examples/display_info/) | Display IDs, brightness, night mode |
574+
| [`dnd_controller`](examples/dnd_controller/) | Query and display Do Not Disturb (Zen) mode via NotificationManager. |
575+
| [`dns_config`](examples/dns_config/) | Query network configuration via the netd system service. |
576+
| [`dream_manager`](examples/dream_manager/) | Query screensaver/daydream state via DreamManager. |
577+
| [`dual_sim`](examples/dual_sim/) | Monitor SIM slots: query active subscription count, slot info, |
554578
| [`error_handling`](examples/error_handling/) | Graceful error handling: service checks, typed errors, permissions |
579+
| [`esim_manager`](examples/esim_manager/) | Query eSIM/eUICC profile management: OTA status, supported countries, |
580+
| [`factory_reset`](examples/factory_reset/) | Factory reset demonstration via DevicePolicyManager. |
555581
| [`flashlight_torch`](examples/flashlight_torch/) | Toggle flashlight/torch via ICameraService |
582+
| [`geofence`](examples/geofence/) | Query location provider availability for geofencing use cases. |
556583
| [`getservice_vs_checkservice`](examples/getservice_vs_checkservice/) | Binary getservice_vs_checkservice compares GetService vs CheckService |
584+
| [`gnss_diagnostics`](examples/gnss_diagnostics/) | Query GNSS hardware model name, year, and capabilities via LocationManager. |
557585
| [`gps_location`](examples/gps_location/) | Live GPS fix via ILocationListener callback |
586+
| [`headless_controller`](examples/headless_controller/) | Headless device orchestration: query power, display, and process state. |
587+
| [`ims_monitor`](examples/ims_monitor/) | Monitor IMS registration state via ITelephony proxy. |
588+
| [`input_injector`](examples/input_injector/) | Query input devices from InputManager. |
589+
| [`job_scheduler_monitor`](examples/job_scheduler_monitor/) | Query JobScheduler state from the "jobscheduler" service. |
558590
| [`keymint_delete_test`](examples/keymint_delete_test/) | Binary keymint_delete_test calls DeleteAllKeys on the KeyMint HAL |
591+
| [`keystore_ops`](examples/keystore_ops/) | Query Keystore2 service for key entries and counts (read-only). |
592+
| [`kiosk_lockdown`](examples/kiosk_lockdown/) | Query activity/window manager for kiosk lockdown information. |
593+
| [`last_location`](examples/last_location/) | Retrieve the last known fused location without registering a listener. |
559594
| [`list_packages`](examples/list_packages/) | List all installed packages via GetAllPackages |
560595
| [`list_services`](examples/list_services/) | Enumerate all binder services, ping each |
596+
| [`location_benchmark`](examples/location_benchmark/) | Compare location providers by querying all providers and their properties. |
597+
| [`mdm_agent`](examples/mdm_agent/) | Lightweight MDM agent querying device policies via DevicePolicyManager. |
598+
| [`media_session_control`](examples/media_session_control/) | Enumerate active media sessions and query global priority. |
599+
| [`media_transcoding`](examples/media_transcoding/) | Query media transcoding service status and media metrics session IDs. |
600+
| [`memory_pressure`](examples/memory_pressure/) | Read memory pressure info from ActivityManager. |
601+
| [`mock_service`](examples/mock_service/) | Create a mock binder service for testing. |
602+
| [`network_monitor`](examples/network_monitor/) | Check network connectivity status via NetworkManagementService. |
603+
| [`network_policy`](examples/network_policy/) | Query network policy settings via the INetworkPolicyManager system service. |
604+
| [`notification_listener`](examples/notification_listener/) | Query notification state via NotificationManager: zen mode, active notifications. |
605+
| [`oem_lock_status`](examples/oem_lock_status/) | Query OemLockService for bootloader lock state and OEM unlock status. |
606+
| [`ota_status`](examples/ota_status/) | Query update engine for OTA update status. |
607+
| [`package_monitor`](examples/package_monitor/) | Monitor installed packages by polling the PackageManager. |
561608
| [`package_query`](examples/package_query/) | Package list, installation info |
609+
| [`permission_audit`](examples/permission_audit/) | Audit permissions for installed apps via the ActivityManager. |
610+
| [`permission_boundary`](examples/permission_boundary/) | Test which binder calls succeed or fail from the current security context. |
611+
| [`permission_checker`](examples/permission_checker/) | Check permissions for UIDs/PIDs via ActivityManager. |
612+
| [`power_profiling`](examples/power_profiling/) | Measure battery current draw over time via the Health HAL. |
613+
| [`power_save_auto`](examples/power_save_auto/) | Query power save mode status and related settings via PowerManager. |
562614
| [`power_status`](examples/power_status/) | Power supply state, charging info |
615+
| [`process_watchdog`](examples/process_watchdog/) | List running processes via ActivityManager and check resource usage. |
616+
| [`qr_scanner_daemon`](examples/qr_scanner_daemon/) | QR/barcode scanner daemon that captures camera frames for processing. |
617+
| [`remote_diagnostics`](examples/remote_diagnostics/) | Collect comprehensive device state for remote diagnostics. |
618+
| [`rkp_monitor`](examples/rkp_monitor/) | Monitor remote key provisioning (RKP) and device security state. |
619+
| [`rotation_resolver`](examples/rotation_resolver/) | Query device rotation and display state via WindowManager and DisplayManager. |
620+
| [`satellite_check`](examples/satellite_check/) | Check satellite telephony readiness by querying the telephony service. |
621+
| [`screen_control`](examples/screen_control/) | Check screen on/off state and display interactivity via PowerManager. |
622+
| [`secure_element`](examples/secure_element/) | Query OMAPI SecureElementService for available readers. |
563623
| [`security_test_apk`](examples/security_test_apk/) | Binary security_test_apk probes whether an app-sandboxed process can |
624+
| [`sensor_gateway`](examples/sensor_gateway/) | Sensor data collection relay: list available sensors and query defaults. |
625+
| [`sensor_reader`](examples/sensor_reader/) | Read sensor data from the SensorManager HAL. |
564626
| [`server_service`](examples/server_service/) | Register a Go service and call it back via binder |
565627
| [`server_service_aidl`](examples/server_service_aidl/) | Register a Go binder service using a generated AIDL stub. |
628+
| [`signage_controller`](examples/signage_controller/) | Display brightness and power control for digital signage. |
629+
| [`sim_status`](examples/sim_status/) | Query telephony service for SIM state: radio, ICC card, data state. |
630+
| [`sms_monitor`](examples/sms_monitor/) | Query SMS service: preferred subscription, IMS SMS support. |
566631
| [`softap_manage`](examples/softap_manage/) | WiFi hotspot enable/disable, config |
567632
| [`softap_tether_offload`](examples/softap_tether_offload/) | Tethering offload config, stats |
568633
| [`softap_wifi_hal`](examples/softap_wifi_hal/) | WiFi chip info, AP interface state |
634+
| [`sound_trigger`](examples/sound_trigger/) | List sound trigger modules via SoundTriggerMiddlewareService. |
635+
| [`statusbar_control`](examples/statusbar_control/) | Query status bar state: navigation bar mode, tracing, last system key. |
569636
| [`storage_info`](examples/storage_info/) | Storage device stats, mount points |
637+
| [`suspend_logger`](examples/suspend_logger/) | Acquire and release a system suspend wake lock to demonstrate SystemSuspend interaction. |
638+
| [`system_app_classifier`](examples/system_app_classifier/) | Classify installed packages as system or user apps. |
639+
| [`thermal_monitor`](examples/thermal_monitor/) | Poll thermal service for CPU/GPU temperatures, throttling status, and cooling devices. |
640+
| [`timelapse_capture`](examples/timelapse_capture/) | Periodic timelapse camera capture via binder. |
641+
| [`transaction_resolver`](examples/transaction_resolver/) | Resolve AIDL method names to transaction codes for binder services. |
642+
| [`usage_stats`](examples/usage_stats/) | Query app usage statistics via the UsageStatsManager. |
643+
| [`usb_tracker`](examples/usb_tracker/) | Query USB device state: ports, functions, speed, and HAL versions. |
644+
| [`user_manager`](examples/user_manager/) | Query user profiles from the UserManager service. |
645+
| [`vehicle_telematics`](examples/vehicle_telematics/) | Collect GPS, battery, and device diagnostics for vehicle telematics. |
646+
| [`version_compat`](examples/version_compat/) | Validate proxy compatibility across API levels. |
647+
| [`volume_control`](examples/volume_control/) | Get and set stream volumes via AudioService. |
648+
| [`vpn_monitor`](examples/vpn_monitor/) | Check VPN status via the IVpnManager system service. |
649+
| [`wakelock_audit`](examples/wakelock_audit/) | Enumerate supported wake lock levels via PowerManager. |
650+
| [`wifi_scanner`](examples/wifi_scanner/) | Scan available WiFi networks via the wificond system service. |
570651

571652
<!-- END GENERATED EXAMPLES_TABLE -->
572653

@@ -2280,6 +2361,6 @@ See the example app at [`examples/gomobile/`](examples/gomobile/).
22802361
│ ├── hardware/ HAL interfaces
22812362
│ └── ... 405 packages total
22822363
├── com/ AOSP com.android.* service proxies
2283-
├── examples/ 24 runnable examples
2364+
├── examples/ 105 runnable examples
22842365
└── .github/workflows/ CI configuration
22852366
```

android/accounts/iaccountmanager.go

Lines changed: 7 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)