Android杂章

184 阅读12分钟

gerrit提交代码

git push --no-thin origin HEAD:refs/for/master

修改push地址

git remote set-url --push origin gitee.com/SillyCuckoo…

SystemUI push地址

git remote set-url --push origin ssh://XX

打开语言设置页面

adb shell am start -a android.settings.LOCALE_SETTINGS

Debug开启指针显示

adb shell settings put system pointer_location 1

查看资源分辨率设置

adb shell cmd overlay lookup --verbose com.android.systemui com.android.systemui:dimen/notification_panel_width

打开日志开关

adb shell setprop log.tag.XXX DEBUG

命令行进入fastboot

adb reboot bootloader

历史通知

1、执行如下命令,手机重启

历史通知: adb devices adb root adb shell setprop debug.sysui true adb shell setprop debug.sysui.notif true adb shell setprop debug.sysui.miui.fold.timeout 3000 adb shell stop adb shell start

录制视频命令:

adb shell screenrecord sdcard/13.mp4

导出视频命令: adb pull sdcard/13.mp4

日志输出到本地

adb logcat -> D:/logcat.txt

git stash

git stash // 缓存本地修改 git stash pop // 恢复缓存堆栈第一个 stash git stash list // 查看现有 stash git stash apply stash@{1} // 恢复 stash@{1} git stash show -p // 查看 stash 的 diff

悬浮通知

adb shell dumpsys activity service com.android.systemui/.SystemUIService >D:/2.txt adb shell dumpsys notification --noredact>D:/1.txt

查看窗体尺寸

adb shell dumpsys window windows > d:/windows.txt

打印当前屏幕尺寸

adb shell wm size

获取当前活动的包名和类名

adb shell dumpsys window | findstr mCurrentFocus #悬浮通知输入框RemoteInputView.java 悬浮框父容器NotificationContentView.java NotificationContentInflaterInjector.java

观察VOIP

adb shell dumpsys notification --noredact >notif3.txt && adb shell dumpsys activity service SystemUIService buffers >buffer6.txt && adb shell dumpsys activity service SystemUIService >sysui6.txt 搜索关键字 :BUFFER Notif 、 pipline、InterruptionStateProvider、FocusedNotifPromptContr、wm_ adb shell dumpsys SurfaceFlinger > SurfaceFlinger.txt adb shell dumpsys activity service SystemUIService buffers >buffer9.txt && adb shell dumpsys activity service SystemUIService >sysui3-error.txt

adb push命令

adb root && adb remount adb shell disable-verity adb shell reboot adb push MiuiSystemUI.apk /system_ext/priv-app/MiuiSystemUI/MiuiSystemUI.apk adb reboot adb shell ps | findStr com.android.systemui adb shell kill xx

关闭debug的USB通知

adb root adb shell setprop debug.sysui true adb shell setprop debug.sysui.notif true adb shell stop;adb shell start

开发版设置不能安装Setting

adb shell setprop persist.sys.allow_update_systemapp true

push失败Read-only问题,执行以下命令

adb shell "umount -l /system_ext/priv-app"

搜索手机中pull的安装包apk

adb shell pm path com.whatsapp adb shell pm list package -f |grep whatsapp package:/data/app/~~917AkDrraQN4hj856tNmcw==/com.whatsapp-xLwMr9nrGQFB1RbKiF2QOQ==/base.apk=com.whatsapp adb pull /data/app/~~917AkDrraQN4hj856tNmcw==/com.whatsapp-xLwMr9nrGQFB1RbKiF2QOQ==/base.apk .

查询SystemUI进程

adb shell 后面 ps -ef | grep systemui

配置全局的提交模版

git config --global commit.template ./commit-template

增加topic命令

git push origin HEAD:refs/for// -o topic=message

增加hashtag命令

git push origin HEAD:refs/for// -o hashtag=message

gerrit.pt.mioffice.cn

adb shell dumpsys activity service com.android.systemui/.SystemUIService >2.txt && vi 2.txt

搜索日志unsorted/unfiltered notifications

跳过开机引导方法:

adb root adb remount adb shell settings put secure user_setup_complete 1 adb shell settings put global device_provisioned 1 adb reboot

跳过账号登录 adb root adb shell pm disable com.xiaomi.account

刷了机可以试试这样是否可以:

刷机后第一次: adb root && adb disable-verity && adb shell settings put secure user_setup_complete 1 && adb shell settings put global device_provisioned 1 && adb reboot

重启后: adb root && adb shell pm disable com.xiaomi.account && adb remount

查询构建时间

adb shell getprop ro.build.date

查看手机的IP地址

adb shell ifconfig

Winscope 启用命令

WindowManager 跟踪记录: 开启跟踪:adb shell cmd window tracing start 结束追踪:adb shell cmd window tracing stop 获取捕获文件:adb pull /data/misc/wmtrace/wm_trace.winscope wm_trace.winscope

SurfaceFlinger 跟踪: 开始跟踪:adb shell su root service call SurfaceFlinger 1025 i32 1 结束跟踪:adb shell su root service call SurfaceFlinger 1025 i32 0 获取捕获文件: adb pull /data/misc/wmtrace/layers_trace.winscope layers_trace.winscope

#adb无线连接 adb tcpip 5555 //改手机adb端口 adb shell ifconfig //查看本地Ip adb connect 10.192.183.36:5555 connected to 10.192.183.36:5555

护眼模式颜色RGB

R199 G237 B204 色调80、饱和度97、亮度205,红203,绿233,蓝203,添加到自定义颜色

Notepad使用正则表达式过滤过个关键字 | 【关键字1】.【关键字2】|【关键字2】.【关键字1】

PotPlayer快捷键

c:加速 x:慢速 z:恢复上一个记录速度 d:上一帧 f:下一帧

Source Insight常用快捷键 Ctrl+= :跳转到定义 Alt+/ :查找引用 F3 : 向后搜寻 F4 : 向前搜寻 F5: 到指定栏 F7 :查找符号 F8 :查找本地符号 F9 :向左 F10 :向右 Alt+, :向后跳转 Alt+. : 向前跳转 Shift+F3 : 在光标这个词的后边搜索 Shift+F4 : 在光标这个词的前边搜索 F12 : 增量搜索 Shift+Ctrl+f: 工程中搜索 shift+F8 : 单词高亮 窗口操作:

project window Ctrl+O打开 symbol window Alt+F8打开和关闭 Contex Window 自定义键打开和关闭

clash订阅地址

fast.lycorisrecoil.org/link/8Hfzl8…

Perfetto 快捷命令

1.进入SQL快捷键 ctrl+O 2.退出SQL快捷键 ctrl+S

TR的意思是技术评审,是英语Technical Review的简写。

下面是某产品的技术评审点,供参考: TR1——概念阶段技术评审点:产品需求和概念技术评审(业务需求评审) TR2——计划阶段技术评审点1:需求分解和需求规格评审(功能需求评审,产品级规格) TR3——计划阶段技术评审点2:总体方案评审(系统设计,架构设计,概要设计) TR4——开发阶段技术评审点1:模块/系统评审(详细设计,BBFV测试结果) TR4A——开发阶段技术评审点2:原形机的质量SDV结果和初始产品的准备情况 TR5——开发阶段技术评审点3:初始产品的质量(SIT结果)(SIT Alpha测试技术评审) TR6——验证阶段技术评审点:发布评审(SVT Beta测试、制造系统验证等) ———————————————— 原文链接:blog.csdn.net/jichuang123…

观察手机动画执行太慢,可以到开发者选项中的Animation设置成X10.的播放速度

电话通讯调试步骤

XX Please provide the log and screen recording of the test machine and the PASS comparison machine according to the steps below, thank you.

**Update the google dialer APP to the latest version in the Google play store.

  1. Turn on the developer mode first, and set the following settings in the developer options:
    1. Logger buffer size --> 8M
    2. Select the log level --> Verbose
    3. Open the time floating window display
  2. Enter * # * # 74663# * # * on the dial pad (you will see toast “Debug for telephony is opened”);
  3. Dial pad input: * # * # 98685# * # * --> click the upper right corner --> click "Dynamic Settings" --> click "TelephonyLog" --> click "Enable"(Only applicable to mobile phones with MTK chips) 4.Restart the phone; 5.Execute the following command: (1) adb shell setprop log.tag.Telecom VERBOSE (2) adb shell setprop log.tag.Telephony VERBOSE (3) adb shell setprop log.tag.Dialer VERBOSE (4) adb shell setprop log.tag.TelecomFramework VERBOSE (5) adb shell setprop log.tag.ImsCall VERBOSE 6.Reproduce the problem and provide 284, modem Log and screen recording, thank you.

XX请按照以下步骤提供测试机和PASS比对机的日志和屏幕记录,谢谢。 在google play商店中将google拨号器APP更新至最新版本。 1.首先打开开发人员模式,并在开发人员选项中设置以下设置: 1.记录器缓冲区大小-->8M 2.选择日志级别-->详细 3.打开时间浮动窗口显示 2.在拨号盘上输入##74663##(您将看到吐司“电话调试已打开”); 3.拨号输入:##98685#***-->点击右上角-->点击“动态设置”-->点击”TelephonyLog“-->点击启用”(仅适用于带有MTK芯片的手机) 4.重启手机; 5.执行以下命令: (1) adb shell setprop log.tag。电信VERBOSE (2) adb shell setprop log.tag。电话VERBOSE (3) adb shell setprop log.tag。拨号器VERBOSE (4) adb shell setprop log.tag。电信框架VERBOSE (5) adb shell setprop log.tag。ImsCall VERBOSE 6.重现问题并提供284、调制解调器日志和屏幕录制,谢谢。

搜索关键字 :BUFFER Notif 、 pipline、InterruptionStateProvider、FocusedNotifPromptContr、FocusedNotifPromptView、wm_

通知带有action、RemoteView点击事件的管理器NotificationRemoteInputManager.java

带有action的通知点击事件 ActionClickLogger

通知点击事件NotificationClicker.java、NotificationClickerLogger.kt、 日志信息NotificationEventConstants.kt

通知拉起启动类 ActivityIntentHelper.java

am_ , wm_,ActivityManager , ActivityTaskManager , MIUILOG、MIUIInput、input_focus、 BroadcastDispatcherLog、Historicl 对应事件点的日志

NotificationPanelViewController.java通知面板的日志类-> ShadeLogger.kt

查询包含这些类的日志(如下查看锁屏解锁相关流程)

adb shell logcat -b all | grep -E "KeyguardService|KeyguardViewMediator|KeyguardUpdateMonitor|KeyguardSecuri|miui_keyguard_passworld"

adb shell logcat -b all | grep -E "NotificationRowContentBinder"

输出NotificationRecord

adb shell dumpsys notification --noredact adb shell dumpsys notification --noredact > NotificationRecord.txt

澄清描述

复现条件苛刻,影响范围小,其他通知焦点通知无此现象,暂无计划。 属于特定场景问题,且场景影响较小,只有首次存在问题,后续也可恢复,目前修改风险较大,容易引入问题,暂时保持

jira搜索URL地址搜索过滤

jira-phone.mioffice.cn/browse/BUGO… = Unresolved AND filter = 14728 AND filter = 19829 AND filter != 20920 AND assignee = yingleyi

SystemUIBootTiming耗时查询tag

切换到全局岛

adb shell setprop feature.island.debug true

弹小窗popwindow方法

adb push C:\Users\Mi\app_notification.xml /data/user_de/0/com.android.systemui/shared_prefs/ adb shell settings put secure show_guide_notification 0 adb shell stop adb shell start

手机断点时, 设置手机不会断开连接:

adb shell settings put global window_input_event_timeout_millis 100000000 adb shell am set-debug-app --persistent com.android.systemui

通知栏切换经典控制中心、新控制中心

adb shell setprop debug.sysui.use_control_center -1 经典 1 新版 adb shell stop adb shell start

安全模式通知

adb shell settings put global sys.rescueparty.systemui.level 3 然后重启systemui进程,会发送安全模式通知

切换分身空间

am_switch_user uc_switch_user um_user_visibility_changed ssm_user_switching uc_dispatch_user_switch 02-07 01:25:22.767 1000 2878 3246 I am_switch_user: 0

notification_panel_revealed 1 代表出现;0代表隐藏

LogBuffer日志查看

adb shell cmd statusbar echo -t NotifActivityStarter:V 重启systemui进程 adb shell stop;adb shell start

NotificationTopPaddingController.kt topPadding高度计算控制类

乌邦图提取截图命令

ffmpeg %d.jpg -vsync 2 -ss 00:05 -t 1 -i Screenrecorder-2025-03-11-15-47-36-963.mp4

视频提取帧的命令。需要安装ffmpeg

正则表达式 21:50.+NotifActivityStarter

查看某个类的属性

adb shell dumpsys activity service com.android.systemui/.SystemUIService > SystemUIService.txt

悬浮通知

notification_alert InterruptionStateProvider NotificationAlertLogger onViewBound AlertCoordinator sysui_heads_up_status 查看悬浮时间 HeadsUpManager am_proc

亮灭屏日志

screen_toggled:屏幕电源状态信息 其中 0 表示屏幕关闭,1 表示屏幕打开,2 表示已锁屏。

广播日志搜索

Historicl

通话悬浮通知

NotifySyncService Telecom InCall、NotificationBroadcastReceiver(接听电话) StatusBarNotifier---判断电话是否传入全屏fullScreenIntent--jira问题--BUGOS2-115295 PAL: Stream -BSP-Audio通话流的切换上锁 HeadsUpManagerLogger.kt

电话外放、听筒切换日志

TelecomFramework InCall PendingIntentRecordImpl NotificationProviderPublic ActivityManager StatusBarNotifier backgroundBlur

CRASH日志搜索

AndroidRuntime ANR wm_

通知点击事件

notification_clicked notification_action_clicked NotificationClicker systemui.shade onHeightUpdated PendingIntentRecordImpl PendingIntentRecord NotifActivityStarter ActivityTaskManager am_foreground_service MIUIInput unfiltered notifications 搜索关键字 :BUFFER Notif 、 pipline、InterruptionStateProvider、FocusedNotifPromptContr、wm_

05-10 17:45:49.448 1000 1936 2053 I wm_activity_launch_time: [0,241681706,tv.danmaku.bili/.ui.intent.IntentHandlerActivity,1400] IntentHandlerActivity launch耗时较长,建议用户升级版本后尝试,本地测试不复现

媒体通知

PlaybackState

查看当前系统中得 DisplayArea 分组情况

adb shell wm dump displays

查看当前系统中这个容器的层级

adb shell am dump containers

渲染

NotificationRowContentBinder

焦点通知的点击启动需要fullscreenIntent (时钟、录音、电话都是焦点通知)

通控合并日志

NotificationPanelExpandController、WindowOnBackDispatcher、ShadeHeaderClipController

MiuiDebugConfig.java 日志的开关

  1. 进入Debug模式 adb root adb shell setprop debug.miuisystemui.staging(替换对应的属性) true adb shell ps -A | grep systemui adb shell kill pid

开启调试模式adb shell setprop debug.sysui true

adb shell stop;adb shell start

通知亮屏,1的话通知亮屏

设置–壁纸和个性化–通知光效 里面更改设置为 亮屏 wakeup_for_keyguard_notification

短信问题,查手机卡,请求高德、美团、发送验证码

DequeueBuffer

搜索日志关键字

NotificationChannel InterruptionStateProvider FocusedNotifPromptView sysui_heads_up_status

手指滑动日志搜索

MIUIInput

crash日志搜索

am_crash adb logcat -b crash

查看wm日志

adb logcat -b all | grep wm_on

查看用户使用系统版本

08-19 10:06:59.668 1000 10805 10805 E RelatedAnswerPopupWindow: Failed to request related answer and param={miVersion=OS2.0.240812.1.VOCCNXM.PRE, osVersion=15, thirdAppPackageName=, subType=beta, thirdAppVersionName=, model=dada, packageName=com.miui.device.thirdparty, appVersionName=, device=dada, deviceName=dada_pre, content=点击通知栏京东下载出错通知,} miVersion 字段

最近任务列表实现类

RecentsImpl

锁屏退出动画

KeyguardViewMediator: handleStartKeyguardExitAnimation startTime=0 fadeoutDuration=0

crash

adb logcat > crash.log

正则表达式抓日志

adb shell命令 logcat | grep -iE "NotificationViewWrapperInjector" i表示忽略大小写 E表示支持正则表达式

可过滤相应的tag查看某个类的日志:adb logcat | grep NotifStackSizeCalc 可实时查看通知相关日志:adb logcat -b events | grep notification_ SystemUI的系统日志:adb logcat -b events | grep sysui_ (锁屏状态:sysui_status_bar_state) 锁屏:KeyguardDisplayManager(show锁屏,hide解锁)

#埋点事件记录EventTracker 研发本地验证 adb shell setprop debug.sysui true 重启systemui进程 logcat 过滤EventTracker 查看打点 触发weekly 事件 app_state 命令: adb shell cmd jobscheduler run -f com.android.systemui 1000001 触发daily 事件 state 命令: adb shell cmd jobscheduler run -f com.android.systemui 300002

adb logcat -b events | grep com.android.systemui

LogBuffer 在logcat中使用 【参考类】com.android.systemui.log.LogBuffer LogBuffer 是SystemUI记录日志的工具,正常情况下,只有在生成BugReport的时候,才会全部转储 【在LogCat中使用】 正常只有大于等于warn级别的,才会回显到logcat中 但是它可以通过相关的命令实现回显到logcat中 LogBuffer 在构造的时候会传入name参数,这个就是Buffer的名称 LogBuffer 在记录的时候会传入tag和level参数,这个是日志的tag和级别 在进行回显的时候,可以针对Buffer或者针对Tag设置level级别的回显 针对Buffer级别 adb shell cmd statusbar echo -b : bufferName 在子类构造的时候便会传入,如果是通过注解生成的,大概率是该类名称 也可以通过BugReport去查询下 以NotificationPanelViewController为例,它使用的是ShadeLog,它的Buffer名称就是“ShadeLog” 如果需要将整个ShadeLog全部回显到logcat中,可以执行以下命令 adb shell cmd statusbar echo -b ShadeLog:verbose 针对tag级别 adb shell cmd statusbar echo -t : 道理同上,以ShadeLog为例,“systemui.shade”即为tag adb shell cmd statusbar echo -t systemui.shade:verbose

#遇到触摸操作中不确定哪个View消费了输入事件的可以使用下面的命令打开开关,抓trace可以看出来 adb shell setprop persist.sys.perfdebug.monitor.enable true adb shell setprop persist.sys.perfdebug.monitor.catalog all 开关代码在miui/frameworks/base/core/java/android/os/perfdebug/PerfDebugMonitorImpl.java 还可以抓日志 adb shell dumpsys activity service SystemUIService buffers 过滤"systemui.shade",会有ShadeLogger的日志

adb shell cmd statusbar echo -t : adb shell cmd statusbar echo -b : Eg: adb shell cmd statusbar echo -t NotifCollection:V adb shell cmd statusbar echo -t NotificationRowContentBinder:D

V上可以用上述命令打开buffer log,这样可以直接logcat实时抓

改变刷新率

09-06 13:20:50.024 1000 3601 11698 I SettingsProvider: refresh rate settings changed, name:miui_refresh_rate,value:120,pkg:com.miui.powerkeeper

NotifPipeline: ---------------------------------------------------------------------------- STAGE 0: SETUP notifPluggableCoordinators: NotifCoordinatorsImpl core coordinators: 1 DataStoreCoordinator notifLiveDataStoreImpl: NotifLiveDataStoreImpl activeNotifListPrivate: NotifLiveDataImpl syncObservers: 0 asyncObservers: 0 activeNotifCountPrivate: NotifLiveDataImpl syncObservers: 0 asyncObservers: 0 hasActiveNotifsPrivate: NotifLiveDataImpl syncObservers: 0 asyncObservers: 0 normal coordinators: 36 HideLocallyDismissedNotifsCoordinator HideNotifsForOtherUsersCoordinator KeyguardCoordinator RankingCoordinator AppOpsCoordinator DeviceProvisionedCoordinator BubbleCoordinator MiuiBubbleCoordinator DebugModeCoordinator ConversationCoordinator GroupCountCoordinator GroupWhenCoordinator MediaCoordinator RowAppearanceCoordinator StackCoordinator ShadeEventCoordinator ViewConfigCoordinator VisualStabilityCoordinator "SensitiveContentInvalidator" (SensitiveContentCoordinatorImpl) SmartspaceDedupingCoordinator HeadsUpCoordinator GutsCoordinator PreparationCoordinator RemoteInputCoordinator DismissibilityCoordinator UsbNotificationCoordinator BadgeCoordinator CountLimitCoordinator AlertCoordinator FoldCoordinator MiuiNotifCoordinator DynamicFpsCoordinator FocusCoordinator AodFocusController MiuiTimeoutCoordinator HeadsUpSensitiveCoordinator

STAGE 1: LISTEN
notificationService: MiuiNotificationListener
  notificationHandlers: 2
    GroupCoalescer$1
    PeopleSpaceWidgetManager$1

STAGE 2: BATCH EVENTS
groupCoalescer: GroupCoalescer
  handler: NotifCollection$1

STAGE 3: COLLECT
notifCollection: NotifCollection
  notifCollectionListeners: 28
    NotificationMediaManager$2
    MiuiNotificationCenter$2
    NotifBindPipeline$1
    NotifRemoteViewCacheImpl$1
    ConversationNotificationManager$1
    NotificationLogger$2
    BubblesManager$5
    OngoingCallController$notifListener$1
    NotificationStackScrollLayoutController$11
    NotificationsControllerImpl$initialize$1
    IconManager$entryListener$1
    MiuiBubbleManager$3
    KeyguardCoordinator$collectionListener$1
    MediaCoordinator$2
    ShadeEventCoordinator$mNotifCollectionListener$1
    SmartspaceDedupingCoordinator$collectionListener$1
    HeadsUpCoordinator$mNotifCollectionListener$1
    PreparationCoordinator$1
    RemoteInputCoordinator$mCollectionListener$1
    BadgeCoordinator$3
    FoldCoordinator$collectionListener$1
    MiuiNotifCoordinator$collectionListener$1
    DynamicFpsCoordinator$collectionListener$1
    FocusCoordinator$3
    MiuiTimeoutCoordinator$2
    NotificationInteractionTracker
    TargetSdkResolver$initialize$1
    ForegroundServiceNotificationListener$1
  lifetimeExtenders: 6
    "ModalLifetimeExtender" (ModalLifetimeExtender)
    "HeadsUpCoordinator" (HeadsUpCoordinator$mLifetimeExtender$1)
    "GutsCoordinator" (GutsCoordinator$mLifetimeExtender$1)
    "RemoteInputHistory" (RemoteInputCoordinator$RemoteInputHistoryExtender)
    "SmartReplyHistory" (RemoteInputCoordinator$SmartReplyHistoryExtender)
    "RemoteInputActive" (RemoteInputCoordinator$RemoteInputActiveExtender)
  dismissInterceptors: 1
    "BubbleCoordinator" (BubbleCoordinator$2)
  buildListener: ShadeListBuilder$1

STAGE 4: BUILD LIST
listBuilder: ShadeListBuilder
  choreographer: NotifPipelineChoreographerImpl
  notifPreGroupFilters: 13
    "HideLocallyDismissedNotifsFilter" (HideLocallyDismissedNotifsCoordinator$1)
    "NotCurrentUserFilter" (HideNotifsForOtherUsersCoordinator$1)
    "IsSuspendedFilter" (RankingCoordinator$4)
    "DndSuppressingVisualEffects" (RankingCoordinator$4)
    "AppOpsCoordinator" (AppOpsCoordinator$1)
    "DeviceProvisionedCoordinator" (DeviceProvisionedCoordinator$1)
    "BubbleCoordinator" (BubbleCoordinator$1)
    "DebugModeFilter" (DebugModeCoordinator$filter$1)
    "MediaCoordinator" (MediaCoordinator$1)
    "SmartspaceDedupingFilter" (SmartspaceDedupingCoordinator$filter$1)
    "UsbNotifCoordinator" (UsbNotificationCoordinator$1)
    "FoldCoordinator" (FoldCoordinator$foldFilter$1)
    "MiuiNotifCoordinator" (MiuiNotifCoordinator$miuiNotifFilter$1)
  onBeforeTransformGroupsListeners: 1
    HeadsUpCoordinator$attach$1
  notifPromoters: 4
    "ConversationCoordinator" (ConversationCoordinator$notificationPromoter$1)
    "HeadsUpCoordinator" (HeadsUpCoordinator$mNotifPromoter$1)
    "MiuiPromoter" (MiuiNotifCoordinator$notifPromoter$1)
    "FocusNotification" (FocusCoordinator$2)
  onBeforeSortListeners: 1
    "SensitiveContentInvalidator" (SensitiveContentCoordinatorImpl)
  notifSections: 8
    NotifSection
      index: 0
      bucket: 2
      sectioner: "HeadsUp" (HeadsUpCoordinator$sectioner$1)
      headerController: SectionHeaderNodeControllerImpl
      comparator: "HeadsUp" (HeadsUpCoordinator$sectioner$1$getComparator$1)
    NotifSection
      index: 1
      bucket: 3
      sectioner: "ForegroundService" (AppOpsCoordinator$2)
      headerController: null
      comparator: null
    NotifSection
      index: 2
      bucket: 4
      sectioner: "People(alerting)" (ConversationCoordinator$peopleSilentSectioner$1)
      headerController: SectionHeaderNodeControllerImpl
      comparator: "People" (ConversationCoordinator$notifComparator$1)
    NotifSection
      index: 3
      bucket: 4
      sectioner: "People(silent)" (ConversationCoordinator$peopleSilentSectioner$1)
      headerController: SectionHeaderNodeControllerImpl
      comparator: "People" (ConversationCoordinator$notifComparator$1)
    NotifSection
      index: 4
      bucket: 6
      sectioner: "Alerting" (RankingCoordinator$1)
      headerController: SectionHeaderNodeControllerImpl
      comparator: null
    NotifSection
      index: 5
      bucket: 7
      sectioner: "Silent" (RankingCoordinator$1)
      headerController: SectionHeaderNodeControllerImpl
      comparator: null
    NotifSection
      index: 6
      bucket: 7
      sectioner: "Minimized" (RankingCoordinator$1)
      headerController: SectionHeaderNodeControllerImpl
      comparator: null
    NotifSection
      index: 7
      bucket: 0
      sectioner: "UnknownSection" (ShadeListBuilder$2)
      headerController: null
      comparator: null
  notifComparators: 1
    "MiuiComparator" (NotificationRankingManagerExKt$miuiRankingComparator$1)
  onBeforeFinalizeFilterListeners: 4
    GroupCountCoordinator$attach$1
    GroupWhenCoordinator$attach$1
    HeadsUpCoordinator$attach$2
    PreparationCoordinator$$ExternalSyntheticLambda1
  notifFinalizeFilters: 5
    "KeyguardCoordinator" (KeyguardCoordinator$notifFilter$1)
    "KeyguardCoordinator-unseen" (KeyguardCoordinator$unseenNotifFilter$1)
    "PreparationCoordinatorInflationError" (PreparationCoordinator$2)
    "PreparationCoordinatorInflating" (PreparationCoordinator$3)
    "SummaryFilter" (MiuiNotifCoordinator$miuiNotifFilter$1)
  onBeforeRenderListListeners: 6
    ConversationCoordinator$onBeforeRenderListListener$1
    RowAppearanceCoordinator$attach$1
    GroupExpansionManagerImpl$$ExternalSyntheticLambda0
    ShadeEventCoordinator$attach$1
    "SensitiveContentInvalidator" (SensitiveContentCoordinatorImpl)
    DismissibilityCoordinator$attach$1
  onRenderListListener: RenderStageManager$attach$1
  PostBuildList: false

STAGE 5: DISPATCH RENDER
renderStageManager: RenderStageManager
  viewRenderer: ShadeViewManager$viewRenderer$1
  onAfterRenderListListeners: 4
    DataStoreCoordinator$attach$1
    KeyguardCoordinator$attach$2
    StackCoordinator$attach$1
    MiuiNotifCoordinator$attach$1
  onAfterRenderGroupListeners: 2
    GroupCountCoordinator$attach$2
    GroupWhenCoordinator$attach$2
  onAfterRenderEntryListeners: 1
    RowAppearanceCoordinator$attach$2

STAGE 6: UPDATE SHADE
shadeViewManager: ShadeViewManager
  rootController: RootNodeController
    listContainer: NotificationStackScrollLayoutController$NotificationListContainerImpl
      NotificationStackScrollLayoutController.this: NotificationStackScrollLayoutController
  specBuilder: NodeSpecBuilder
  viewDiffer: ShadeViewDiffer

NotificationLockscreenUserManagerImpl:
----------------------------------------------------------------------------
NotificationLockscreenUserManager state:
  mCurrentUserId=0
  mShowLockscreenNotifications=true
  mAllowLockscreenRemoteInput=false
  mCurrentProfiles=0 
  mCurrentManagedProfiles=
  mLockscreenPublicMode={0=false}
  mUsersWithSeparateWorkChallenge={0=false}
  mUsersAllowingPrivateNotifications={0=true}
  mUsersAllowingNotifications={}
  mUsersInLockdownLatestResult={}
  mShouldHideNotifsLatestResult={}

NotificationMediaManager:
----------------------------------------------------------------------------
    mMediaNotificationKey=null
    mMediaController=null
    mMediaMetadata=null

NotificationPanelNavigationBarCoordinator:
----------------------------------------------------------------------------
lastNavigationBarMode=-1
hookNavBarDarkMode=false
reasons=0

NotificationRemoteInputManager:
----------------------------------------------------------------------------
mRemoteInputController: com.android.systemui.statusbar.RemoteInputController@dbe04ef
  mLastAppliedRemoteInputActive: null
  isRemoteInputActive: false
  mOpen: 0
  mSpinning: 0
  {}
  mDelegate: com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController$6@f431bfc
mRemoteInputListener: RemoteInputCoordinator
  LifetimeExtender: RemoteInputHistory:
    mEntriesExtended: 0
  LifetimeExtender: SmartReplyHistory:
    mEntriesExtended: 0
  LifetimeExtender: RemoteInputActive:
    mEntriesExtended: 0

NotificationRoundnessManager:
----------------------------------------------------------------------------
roundForPulsingViews=true
isClearAllInProgress=false

NotificationSettingsManager:
----------------------------------------------------------------------------
CloudDataUpdated: true
mAllowFloatPackages: [com.google.android.talk, com.tencent.mm, com.tencent.qq, com.tencent.mobileqq, com.tencent.tim, com.xiaomi.channel, com.whatsapp, com.facebook.orca, com.bbm, jp.naver.line.android, com.bsb.hike, com.hike.chat.stickers, org.telegram.messenger, com.viber.voip, com.vkontakte.android, com.imo.android.imoim, com.snapchat.android, com.facebook.mlite, com.alibaba.android.rimet, com.android.calendar, com.google.android.gm, com.android.email, com.microsoft.office.outlook, ru.mail.mailapp, com.yahoo.mobile.client.android.mail, com.tencent.androidqqmail, com.android.deskclock, com.miui.yellowpage, com.android.mms, com.android.phone, com.android.server.telecom, com.android.updater, com.android.settings, com.android.bluetooth, com.jeejen.family.miui, com.miui.networkassistant, com.miui.securitycenter, com.miui.securitycore, com.lbe.security.miui, com.android.soundrecorder, com.miui.home, com.miui.personalassistant, com.miui.packageinstaller, com.xiaomi.account, com.android.cts.verifier, android, com.fihtdc.fqc, com.mi.AutoTest, com.android.cellbroadcastreceiver, com.android.htmlviewer, com.xiaomi.drivemode, com.miui.greenguard, com.xiaomi.mipicks, com.xiaomi.smarthome, com.kiteguard, com.xiaomi.discover, com.orange.phone, com.miui.userguide, com.miui.hybrid.accessory, com.google.android.apps.messaging, com.baidao.ytxaegis, com.xiaomi.gameboosterglobal, com.mi.health, com.google.android.dialer, com.miui.miservice, com.miui.mishare.connectivity, com.mi.oa, com.miui.huanji, com.amazon.dee.app, com.xiaomi.misettings, com.google.android.apps.vega, com.google.android.apps.maps, com.miui.cleanmaster, com.xiaomi.market, com.miui.voiceassist, com.orange.conecta.es, com.miui.cloudservice, miui.test.cases, com.ss.android.lark, com.miui.notes, com.xiaomi.mitv.phone.tvassistant, com.miui.backup, com.miui.thirdappassistant, com.xiaomi.calendar, com.miui.core, com.ss.android.lark.kami, com.xiaomi.mi_connect_service, com.xiaomi.mirror, com.miui.voicetrigger, com.skype.rover, com.xiaomi.bluetooth, com.miui.tsmclient, com.blackshark.bsamagent, com.blackshark.discovery, com.blackshark.market, com.blackshark.flutter_toolbox, com.ume.browser.hs, com.blackshark.aftersaleservice, com.blackshark.ota, com.blackshark.msgtransfer, com.tencent.southpole.appstore, com.blackshark.gamedock, com.zeusis.HydraService, com.blackshark.HydraAlpha, com.blackshark.shoulderkey, com.blackshark.performancemaster, com.xiaomi.aiasst.service, com.miui.audiomonitor, com.android.emailhd, com.android.providers.downloads, com.xiaomi.simactivate.service, com.xiaomi.midrop, com.android.providers.settings, com.xiaomi.finddevice, com.miui.backup.transfer, com.miui.cloudbackup, com.miui.screenrecorder, com.android.fileexplorer, com.xiaomi.mitv.smartshare, com.miui.gallery, com.miui.freeform, com.tencent.wework, com.sankuai.xmpp, com.yiqixie.kem, com.blackshark.performancemaster, com.blackshark.bsperipheral, com.blackshark.push, com.piggylab.toybox, com.piggylab.holdon, com.miui.bugreport, com.android.systemui, com.miui.misound, com.blackshark.sharkman, com.android.nfc, com.miui.accessibility, com.jd.jmworkstation, com.alibaba.android.rimet.aliding, com.blackshark.bssf, com.blackshark.browser, com.ss.android.lark.xmhk, com.ss.android.lark.htone, com.ss.android.lark.kywl, com.ss.android.lark.sa83b7j6, com.ss.android.lark.zmps, com.ss.android.lark.sav6uft6, com.xiaomi.mirror, com.xiaomi.aicr]
mAllowKeyguardPackages: [com.google.android.talk, com.tencent.mm, com.tencent.qq, com.tencent.mobileqq, com.tencent.tim, com.xiaomi.channel, com.whatsapp, com.facebook.orca, com.bbm, jp.naver.line.android, com.bsb.hike, com.hike.chat.stickers, org.telegram.messenger, com.viber.voip, com.vkontakte.android, com.imo.android.imoim, com.snapchat.android, com.facebook.mlite, com.alibaba.android.rimet, com.android.calendar, com.google.android.gm, com.android.email, com.microsoft.office.outlook, ru.mail.mailapp, com.yahoo.mobile.client.android.mail, com.tencent.androidqqmail, com.android.deskclock, com.android.mms, com.android.phone, com.android.server.telecom, com.android.updater, com.android.bluetooth, com.jeejen.family.miui, com.miui.networkassistant, com.miui.securitycenter, com.miui.securitycore, com.lbe.security.miui, com.android.soundrecorder, com.android.cts.verifier, android, com.fihtdc.fqc, com.mi.AutoTest, com.android.cellbroadcastreceiver, com.android.htmlviewer, com.miui.greenguard, com.kiteguard, com.xiaomi.discover, com.orange.phone, com.android.stk, com.miui.userguide, com.xiaomi.mipicks, com.miui.systemAdSolution, com.techown.emm, com.miui.hybrid.accessory, com.google.android.apps.messaging, com.baidao.ytxaegis, com.nio.nsc.staff, com.xiaoxun.xun, com.imibaby.client, com.google.android.dialer, abbanza.bixpe.orange.dispositivos.android, edu.okstate.membership, com.milink.service, com.xiaomi.account, com.zing.zalo, com.miui.mishare.connectivity, com.mi.oa, com.amazon.dee.app, com.google.android.apps.vega, com.google.android.apps.maps, com.miui.smarttravel, com.orange.conecta.es, com.orange.miorange, co.uk.infomedia.humley.orangejuegos, com.orange.serenateleasistencia.es, com.miui.tsmclient, com.kakao.talk, com.ss.android.lark, com.audible.universal, com.xiaomi.calendar, com.ss.android.lark.kami, com.xiaomi.bluetooth, com.xiaomi.mi_connect_service, com.android.emailhd, com.android.nfc, com.xiaomi.finddevice, com.miui.carlink, com.miui.accessibility, com.alibaba.android.rimet.aliding, com.xunmeng.merchant, com.ss.android.lark.xmhk, com.ss.android.lark.htone, com.tencent.wework, com.ss.android.lark.kywl, com.ss.android.lark.sa83b7j6, com.ss.android.lark.zmps, com.ss.android.lark.sav6uft6, com.xiaomi.mirror, com.xiaomi.aicr]
mCanShowBadgePackages: [com.google.android.apps.messaging, com.google.android.talk, com.tencent.mm, com.tencent.qq, com.tencent.mobileqq, com.tencent.tim, com.xiaomi.channel, com.whatsapp, com.facebook.orca, com.bbm, jp.naver.line.android, com.bsb.hike, com.hike.chat.stickers, org.telegram.messenger, com.viber.voip, com.vkontakte.android, com.imo.android.imoim, com.snapchat.android, com.facebook.mlite, com.alibaba.android.rimet, com.android.calendar, com.google.android.gm, com.android.email, com.microsoft.office.outlook, ru.mail.mailapp, com.yahoo.mobile.client.android.mail, com.tencent.androidqqmail, com.android.deskclock, com.xiaomi.youpin, com.android.browser, com.miui.themestore, com.miui.securitymanager, com.ss.android.lark, cn.xuexi.android, com.xiaomi.gamecenter, com.xiaomi.calendar, com.ss.android.lark.kami, com.xiaomi.shop, com.android.emailhd, com.android.nfc, com.alibaba.android.rimet.aliding, com.duokan.reader, com.dragon.read, tv.danmaku.bili, com.xunmeng.pinduoduo, com.achievo.vipshop, com.eg.android.AlipayGphone, com.ss.android.ugc.aweme, com.baidu.searchbox, com.baidu.BaiduMap, ctrip.android.view, com.sina.weibo, com.ss.android.article.news, com.zhihu.android, com.ximalaya.ting.android, com.smile.gifmaker, com.xingin.xhs, com.autonavi.minimap, com.youku.phone, com.UCMobile, com.tencent.qqlive, com.Qunar, com.taobao.taobao, com.ss.android.article.lite, com.mipay.wallet, com.sankuai.meituan, com.wuba, com.dianping.v1, com.xs.fm, com.ss.android.auto, com.tongcheng.android, com.jingdong.app.mall, com.qiyi.video, com.quark.browser]
mBlockBadgePackages: []
mBlockFloatPackages: []
mBlockKeyguardPackages: []
mAllowSlidePackages: [com.tencent.mm, com.tencent.wework, com.tencent.tim, com.tencent.mobileqq, com.tencent.qqlite, com.xiaomi.channel, com.alibaba.android.rimet, com.ss.android.lark, com.immomo.momo, com.p1.mobile.putong, com.blued.international, com.soft.blued, cn.soulapp.android, com.google.android.talk, com.whatsapp, com.whatsapp.w4b, com.facebook.orca, jp.naver.line.android, org.telegram.messenger, com.viber.voip, com.vkontakte.android, com.imo.android.imoim, com.snapchat.android, com.facebook.orca, com.facebook.mlite, com.discord, com.android.email, com.microsoft.office.outlook, com.yahoo.mobile.client.android.mail, com.tencent.androidqqmail, com.android.mms, com.skype.raider, com.twitter.android, com.google.android.apps.messaging, com.ss.android.lark.kami]
mMediaAppWhiteList: [com.netease.cloudmusic, com.netease.cloudmusic.lite, com.tencent.qqmusic, com.tencent.qqmusiclite, com.kugou.android, cn.kuwo.player, cn.kuwo.kwmusichd, com.luna.music, com.kugou.android.lite, cn.wenyu.bodian, cmccwm.mobilemusic, com.ximalaya.ting.android, com.ximalaya.ting.lite, com.ximalaya.ting.kid, com.ximalayaos.pad.tingkid, com.miui.fm, fm.qingting.qtradio, com.shinyv.cnr, com.tencent.radio, com.yibasan.lizhifm, app.podcast.cosmos, bubei.tingshu]
mHiddenCustomActionsList: [com.netease.cloudmusic.lite, com.tencent.qqmusiclite, com.tencent.radio, com.apple.android.music, com.google.android.apps.youtube.music, com.spotify.music]
mSeekBarDisabledPackages: [com.miui.fm, fm.qingting.qtradio]
mHistoricalFoldingTimeout: 6.0
mHistoricalFoldingInListTimeout: 168.0
mHistoricalDismissTimeout: 168.0
mHistoricalFoldingWhiteList: [com.tencent.mm, com.tencent.mobileqq, com.xiaomi.xmsf, com.miui.systemAdSolution, com.ss.android.lark.kami, com.android.mms]
mFocusedNotifPromptWhiteList=[com.android.settings, com.android.incallui, com.autonavi.minimap, com.android.soundrecorder, com.miui.securitycenter, com.miui.personalassistant]
AppNotificationSettings:
  com.xiaomi.aiasst.service_message=true
  com.xiaomi.aiasst.service_keyguard=true
  com.yaku.whale_elk_keyguard=true
  com.tencent.mobileqq_mipush|com.tencent.mobileqq|105584_led=false
  com.miui.cleanmaster=2
  com.yaku.whale_shrimp_channel_flag=2
  com.tencent.mobileqq_mipush|com.tencent.mobileqq|105584_keyguard=true
  float_whitelist=[com.tencent.southpole.appstore, com.amazon.dee.app, com.xiaomi.drivemode, com.mi.AutoTest, com.miui.backup.transfer, com.tencent.qq, com.tencent.mobileqq, com.tencent.androidqqmail, com.blackshark.msgtransfer, com.blackshark.bsamagent, com.xiaomi.mipicks, com.orange.phone, com.miui.huanji, com.blackshark.discovery, com.google.android.talk, com.android.deskclock, com.yahoo.mobile.client.android.mail, com.google.android.apps.vega, com.xiaomi.finddevice, com.android.updater, com.android.nfc, com.miui.hybrid.accessory, com.miui.cloudservice, com.xiaomi.mitv.smartshare, com.blackshark.bsperipheral, com.kiteguard, com.google.android.apps.maps, com.xiaomi.channel, com.miui.userguide, com.miui.voicetrigger, com.alibaba.android.rimet.aliding, com.xiaomi.bluetooth, com.sankuai.xmpp, com.miui.misound, com.xiaomi.market, com.google.android.apps.messaging, com.android.cellbroadcastreceiver, com.miui.home, com.viber.voip, com.android.providers.settings, com.android.cts.verifier, com.android.systemui, com.tencent.tim, org.telegram.messenger, com.blackshark.browser, com.blackshark.sharkman, com.xiaomi.account, com.facebook.mlite, com.ss.android.lark.htone, com.miui.audiomonitor, com.jd.jmworkstation, com.mi.oa, com.xiaomi.smarthome, com.miui.networkassistant, com.blackshark.performancemaster, jp.naver.line.android, com.android.mms, com.xiaomi.aiasst.service, com.xiaomi.discover, com.ume.browser.hs, com.piggylab.toybox, com.xiaomi.simactivate.service, com.blackshark.shoulderkey, com.blackshark.push, com.miui.bugreport, com.ss.android.lark, com.android.calendar, ru.mail.mailapp, com.ss.android.lark.xmhk, com.xiaomi.aicr, com.android.settings, com.vkontakte.android, com.xiaomi.mirror, miui.test.cases, com.ss.android.lark.kywl, com.ss.android.lark.sav6uft6, com.android.soundrecorder, com.jeejen.family.miui, com.blackshark.bssf, com.blackshark.flutter_toolbox, com.bsb.hike, com.tencent.wework, com.tencent.mm, com.miui.cleanmaster, com.miui.securitycore, com.android.phone, com.miui.core, com.miui.packageinstaller, com.skype.rover, com.android.fileexplorer, com.mi.health, com.microsoft.office.outlook, com.miui.mishare.connectivity, com.lbe.security.miui, com.miui.greenguard, com.miui.voiceassist, com.miui.thirdappassistant, com.xiaomi.midrop, com.snapchat.android, com.miui.securitycenter, com.miui.freeform, com.yiqixie.kem, com.android.server.telecom, com.miui.backup, com.miui.cloudbackup, com.blackshark.aftersaleservice, com.imo.android.imoim, com.blackshark.ota, com.ss.android.lark.sa83b7j6, com.ss.android.lark.zmps, com.xiaomi.gameboosterglobal, com.baidao.ytxaegis, com.zeusis.HydraService, com.miui.gallery, com.miui.accessibility, com.miui.screenrecorder, com.piggylab.holdon, com.android.email, com.fihtdc.fqc, android, com.bbm, com.xiaomi.misettings, com.blackshark.HydraAlpha, com.ss.android.lark.kami, com.miui.notes, com.miui.miservice, com.miui.tsmclient, com.blackshark.gamedock, com.facebook.orca, com.alibaba.android.rimet, com.whatsapp, com.xiaomi.mitv.phone.tvassistant, com.android.providers.downloads, com.hike.chat.stickers, com.android.bluetooth, com.blackshark.market, com.android.emailhd, com.orange.conecta.es, com.xiaomi.mi_connect_service, com.miui.personalassistant, com.xiaomi.calendar, com.google.android.dialer, com.google.android.gm, com.android.htmlviewer, com.miui.yellowpage]
  com.xiaomi.aiasst.service_CALL_SCREEN_CHANNEL_keyguard=true
  com.tencent.mobileqq_CHANNEL_ID_HIDE_BADGE_channel_flag=2
  com.tencent.mobileqq_mipush|com.tencent.mobileqq|105584_sound=true
  com.tencent.mobileqq_mipush|com.tencent.mobileqq|105584_channel_flag=2
  com.yaku.whale_bear_vibrate=true
  com.tencent.mobileqq_CHANNEL_ID_HIDE_BADGE_vibrate=true
  com.tencent.mobileqq_mipush|com.tencent.mobileqq|105584_vibrate=true
  com.yaku.whale_shrimp_vibrate=true
  com.miui.securitycenter=2
  com.yaku.whale_bear_keyguard=true
  com.yaku.whale_crab_keyguard=true
  com.yaku.whale_crab_channel_flag=2
  com.xiaomi.aiasst.service_CALL_LOG_CHANNEL_AUTO_PICK_keyguard=true
  com.yaku.whale_bear_channel_flag=2
  com.tencent.mobileqq_CHANNEL_ID_HIDE_BADGE_sound=true
  keyguard_whitelist=[com.milink.service, com.amazon.dee.app, com.mi.AutoTest, com.tencent.qq, com.tencent.mobileqq, com.tencent.androidqqmail, com.orange.phone, com.xiaomi.mipicks, com.orange.miorange, com.miui.smarttravel, com.google.android.talk, com.android.deskclock, com.yahoo.mobile.client.android.mail, com.google.android.apps.vega, com.xiaomi.finddevice, com.android.updater, com.android.nfc, com.miui.hybrid.accessory, com.kiteguard, com.google.android.apps.maps, com.xiaomi.channel, com.miui.userguide, com.alibaba.android.rimet.aliding, com.xiaomi.bluetooth, com.miui.carlink, com.google.android.apps.messaging, com.android.cellbroadcastreceiver, abbanza.bixpe.orange.dispositivos.android, com.viber.voip, com.techown.emm, com.android.cts.verifier, com.tencent.tim, org.telegram.messenger, com.orange.serenateleasistencia.es, com.xiaoxun.xun, com.xiaomi.account, com.facebook.mlite, com.ss.android.lark.htone, com.mi.oa, com.miui.networkassistant, com.zing.zalo, jp.naver.line.android, com.android.mms, com.xiaomi.discover, com.nio.nsc.staff, com.ss.android.lark, co.uk.infomedia.humley.orangejuegos, com.android.calendar, ru.mail.mailapp, com.ss.android.lark.xmhk, com.xiaomi.aicr, com.vkontakte.android, com.xiaomi.mirror, com.ss.android.lark.kywl, com.ss.android.lark.sav6uft6, com.android.soundrecorder, com.jeejen.family.miui, com.bsb.hike, com.tencent.wework, com.tencent.mm, com.miui.securitycore, com.miui.systemAdSolution, com.android.phone, edu.okstate.membership, com.microsoft.office.outlook, com.miui.mishare.connectivity, com.lbe.security.miui, com.imibaby.client, com.miui.greenguard, com.snapchat.android, com.miui.securitycenter, com.android.server.telecom, com.imo.android.imoim, com.android.stk, com.ss.android.lark.sa83b7j6, com.ss.android.lark.zmps, com.baidao.ytxaegis, com.miui.accessibility, com.android.email, com.fihtdc.fqc, android, com.bbm, com.xunmeng.merchant, com.ss.android.lark.kami, com.miui.tsmclient, com.audible.universal, com.facebook.orca, com.alibaba.android.rimet, com.whatsapp, com.hike.chat.stickers, com.android.bluetooth, com.android.emailhd, com.orange.conecta.es, com.xiaomi.mi_connect_service, com.xiaomi.calendar, com.google.android.dialer, com.google.android.gm, com.kakao.talk, com.android.htmlviewer]
  com.yaku.whale_crab_vibrate=true
  com.yaku.whale_shrimp_keyguard=true