Merge "[MTE] show notification if using MTE bootloader switch."

This commit is contained in:
Florian Mayer
2022-01-27 22:34:02 +00:00
committed by Android (Google) Code Review
4 changed files with 41 additions and 0 deletions

View File

@@ -3872,6 +3872,11 @@
<!-- Message of notification shown when serial console is enabled. [CHAR LIMIT=NONE] -->
<string name="console_running_notification_message">Performance is impacted. To disable, check bootloader.</string>
<!-- Title of notification shown when MTE status override is enabled. [CHAR LIMIT=NONE] -->
<string name="mte_override_notification_title">Experimental MTE enabled</string>
<!-- Message of notification shown when MTE status override is enabled. [CHAR LIMIT=NONE] -->
<string name="mte_override_notification_message">Performance and stability might be impacted. Reboot to disable. If enabled using arm64.memtag.bootctl, set it to "none" beforehand.</string>
<!-- Title of notification shown when contaminant is detected on the USB port. [CHAR LIMIT=NONE] -->
<string name="usb_contaminant_detected_title">Liquid or debris in USB port</string>
<!-- Message of notification shown when contaminant is detected on the USB port. [CHAR LIMIT=NONE] -->

View File

@@ -2080,6 +2080,8 @@
<java-symbol type="string" name="test_harness_mode_notification_message" />
<java-symbol type="string" name="console_running_notification_title" />
<java-symbol type="string" name="console_running_notification_message" />
<java-symbol type="string" name="mte_override_notification_title" />
<java-symbol type="string" name="mte_override_notification_message" />
<java-symbol type="string" name="taking_remote_bugreport_notification_title" />
<java-symbol type="string" name="share_remote_bugreport_notification_title" />
<java-symbol type="string" name="sharing_remote_bugreport_notification_title" />

View File

@@ -282,6 +282,10 @@ message SystemMessage {
// Notify the user to set up dream
NOTE_SETUP_DREAM = 68;
// Inform the user that MTE override is active.
// Package: android
NOTE_MTE_OVERRIDE_ENABLED = 69;
// ADD_NEW_IDS_ABOVE_THIS_LINE
// Legacy IDs with arbitrary values appear below
// Legacy IDs existed as stable non-conflicting constants prior to the O release

View File

@@ -5014,6 +5014,7 @@ public class ActivityManagerService extends IActivityManager.Stub
}
// UART is on if init's console service is running, send a warning notification.
showConsoleNotificationIfActive();
showMteOverrideNotificationIfActive();
t.traceEnd();
}
@@ -5048,6 +5049,35 @@ public class ActivityManagerService extends IActivityManager.Stub
}
private void showMteOverrideNotificationIfActive() {
if (!SystemProperties.getBoolean("ro.arm64.memtag.bootctl_supported", false)
|| !com.android.internal.os.Zygote.nativeSupportsMemoryTagging()) {
return;
}
String title = mContext
.getString(com.android.internal.R.string.mte_override_notification_title);
String message = mContext
.getString(com.android.internal.R.string.mte_override_notification_message);
Notification notification =
new Notification.Builder(mContext, SystemNotificationChannels.DEVELOPER)
.setSmallIcon(com.android.internal.R.drawable.stat_sys_adb)
.setOngoing(true)
.setTicker(title)
.setDefaults(0) // please be quiet
.setColor(mContext.getColor(
com.android.internal.R.color
.system_notification_accent_color))
.setContentTitle(title)
.setContentText(message)
.setVisibility(Notification.VISIBILITY_PUBLIC)
.build();
NotificationManager notificationManager =
mContext.getSystemService(NotificationManager.class);
notificationManager.notifyAsUser(
null, SystemMessage.NOTE_MTE_OVERRIDE_ENABLED, notification, UserHandle.ALL);
}
@Override
public void bootAnimationComplete() {
if (DEBUG_ALL) Slog.d(TAG, "bootAnimationComplete: Callers=" + Debug.getCallers(4));