Skip to content

Commit 145ce84

Browse files
xaionaro@dx.centerxaionaro@dx.center
authored andcommitted
fix(codegen): resolve accessor name collisions for multi-interface services
TimeManager wraps both ITimeDetectorService and ITimeZoneDetectorService under @SystemService(TIME_MANAGER_SERVICE). The binder usage scanner's Strategy 2 heuristic picked one arbitrarily, producing a false service-to-descriptor mapping that caused duplicate Go function names. Fix selectBestInterfaceForClass to reject ambiguous ties below the strong-match threshold (score < 3). Also harden generateAccessorFiles to skip accessors when the constant-based fallback name still collides. Regenerated all accessor files and README stats.
1 parent f8803eb commit 145ce84

File tree

28 files changed

+533
-8
lines changed

28 files changed

+533
-8
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2073,7 +2073,7 @@ go run ./tools/cmd/aidl2spec -3rdparty tools/pkg/3rdparty -output specs/
20732073
go run ./tools/cmd/spec2go -specs specs/ -output . -smoke-tests
20742074
```
20752075

2076-
This discovers all AIDL files across `frameworks-base`, `frameworks-native`, `hardware-interfaces`, and `system-hardware-interfaces`, infers search roots from package declarations, and generates Go proxies for all AOSP services. The current AOSP snapshot produces **5,151 Go files** across **407 packages**.
2076+
This discovers all AIDL files across `frameworks-base`, `frameworks-native`, `hardware-interfaces`, and `system-hardware-interfaces`, infers search roots from package declarations, and generates Go proxies for all AOSP services. The current AOSP snapshot produces **5,174 Go files** across **407 packages**.
20772077

20782078
### Transaction Code Resolution
20792079

@@ -2367,7 +2367,7 @@ See the example app at [`examples/gomobile/`](examples/gomobile/).
23672367
│ └── driver.go Open, mmap, ioctl BINDER_WRITE_READ
23682368
├── servicemanager/ ServiceManager client
23692369
├── errors/ AIDL exception types (ExceptionCode, StatusError)
2370-
├── android/ Pre-generated AOSP service proxies (5,151 files)
2370+
├── android/ Pre-generated AOSP service proxies (5,174 files)
23712371
│ ├── app/ ActivityManager, AlarmManager, ...
23722372
│ ├── os/ ServiceManager, PowerManager, ...
23732373
│ ├── hardware/ HAL interfaces

android/app/backup/get_backup.go

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

android/app/timedetector/get_time_detector.go

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

android/app/timezonedetector/get_time_zone_detector.go

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

android/app/trust/get_trust.go

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

android/content/pm/get_background_install_control.go

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

android/hardware/get_camera.go

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

android/hardware/get_media.camera.go

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

android/os/get_device_identifiers.go

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

android/os/get_powerstats.go

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

0 commit comments

Comments
 (0)