Only send started broadcast for main sysui process

Protected broadcasts can only be sent by system apps and since the sysui
started broadcast is protected, it should only be sent by the system
(user 0) process.

Bug: 266454339
Test: manual
Change-Id: I87fd07f927902a36dbe62eec954b9a716c416b5b
This commit is contained in:
Alex Stetson
2023-01-24 15:50:27 -08:00
parent e81f65a62a
commit 41550fbace

View File

@@ -21,6 +21,7 @@ import com.android.systemui.CoreStartable
import com.android.systemui.broadcast.BroadcastSender
import com.android.systemui.dump.DumpManager
import com.android.systemui.statusbar.commandline.CommandRegistry
import com.android.systemui.util.InitializationChecker
import dagger.Binds
import dagger.Module
import dagger.multibindings.ClassKey
@@ -34,7 +35,8 @@ constructor(
private val commandRegistry: CommandRegistry,
private val flagCommand: FlagCommand,
private val featureFlags: FeatureFlagsDebug,
private val broadcastSender: BroadcastSender
private val broadcastSender: BroadcastSender,
private val initializationChecker: InitializationChecker
) : CoreStartable {
init {
@@ -46,8 +48,11 @@ constructor(
override fun start() {
featureFlags.init()
commandRegistry.registerCommand(FlagCommand.FLAG_COMMAND) { flagCommand }
val intent = Intent(FlagManager.ACTION_SYSUI_STARTED)
broadcastSender.sendBroadcast(intent)
if (initializationChecker.initializeComponents()) {
// protected broadcast should only be sent for the main process
val intent = Intent(FlagManager.ACTION_SYSUI_STARTED)
broadcastSender.sendBroadcast(intent)
}
}
}