Publish TracingServiceProxy after storage has been unlocked

TracingServiceProxy depends on external system services to forward its
requests to. There is an edge case where reportTrace was called before
the encrypted storage was unlocked and before external services can be
bound (e.g. occurs when reportTrace is concurrent to system_server
starting up).

This change defers the registration of the service until we are ready to
accept requests. As a side-effect this also means that the device needs
to be unlocked before the service is published.

Bug: 333846370
Test: atest PerfettoReporterTest
Test: boot device without lock and invoke perfetto reporting (verify the report is accepted immediately)
Test: boot device with lock and invoke perfetto reporting (verify the report is accepted after unlocking)
Test: invoke perfetto reporting concurrent to kill -9 `pidof system_server`
Change-Id: Ibb75c3e314d30b18cdc32e3774be1ee8022960b1
1 file changed