dumpsys deviceidle whitelist 查看到,已将 apk 添加 到 白名单,但是STANDBY_BUCKET_EXEMPTED 不为 5
时间: 2024-02-21 08:57:34 浏览: 55
根据您提供的信息,似乎您在 Android 系统中使用了 "dumpsys deviceidle whitelist" 命令来查看应用程序是否已添加到设备空闲白名单中,但是您注意到 "STANDBY_BUCKET_EXEMPTED" 值不为 5。
"STANDBY_BUCKET_EXEMPTED" 值表示应用程序当前的空闲优先级,取值范围为 1-5。如果值为 5,则表示该应用程序已被添加到设备的白名单,并且不会受到设备空闲模式的影响。如果值低于 5,则表示该应用程序可能不会被立即执行,并可能会受到设备空闲模式的影响。
因此,您可以尝试使用以下命令将应用程序添加到设备空闲白名单,并确保将其 "STANDBY_BUCKET_EXEMPTED" 值设置为 5:
```
adb shell dumpsys deviceidle whitelist +<package_name>
```
其中,"<package_name>" 应替换为您要添加到白名单的应用程序包名称。添加成功后,您可以再次运行 "dumpsys deviceidle whitelist" 命令来检查 "STANDBY_BUCKET_EXEMPTED" 值是否为 5。
相关问题
修改 android13源码, 使得 某 apk 的 STANDBY_BUCKET_EXEMPTED = 5
要将某个应用程序的 STANDBY_BUCKET_EXEMPTED 值设置为 5,可以按照以下步骤修改 Android 13 源代码:
1. 找到应用程序的包名或 UID
在 Android 系统中,每个应用程序都有唯一的包名或 UID(用户 ID),可以使用以下命令获取:
```
adb shell dumpsys package <package_name>
```
或
```
adb shell dumpsys package <UID>
```
其中,<package_name> 为应用程序的包名,<UID> 为应用程序的 UID。
2. 找到应用程序的 UsageStatsEntry 对象
在 Android 系统中,应用程序的使用情况统计信息存储在 UsageStatsManager 中,可以使用以下代码获取某个应用程序的 UsageStatsEntry 对象:
```java
UsageStatsManager usageStatsManager = (UsageStatsManager) getSystemService(Context.USAGE_STATS_SERVICE);
List<UsageStats> usageStatsList = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, 0, System.currentTimeMillis());
for (UsageStats usageStats : usageStatsList) {
if (usageStats.getPackageName().equals(<package_name>) || usageStats.getUid() == <UID>) {
UsageStatsEntry usageStatsEntry = usageStats.getUsageStatsEntry();
// TODO: 修改 standbyBucket 值为 5
break;
}
}
```
其中,<package_name> 和 <UID> 分别为应用程序的包名和 UID。
3. 修改应用程序的 standbyBucket 值
在获取到应用程序的 UsageStatsEntry 对象后,可以使用以下代码将其 standbyBucket 值设置为 5:
```java
usageStatsEntry.standbyBucket = STANDBY_BUCKET_EXEMPTED;
```
需要注意的是,以上代码需要在系统级别或具有系统权限的应用程序中运行,普通应用程序无法修改其他应用程序的 standbyBucket 值。
dumpsys deviceidle whitelist 输出 的 格式
dumpsys deviceidle whitelist 命令的输出格式如下:
```
System whitelist (size=1)
com.android.phone (10143)
User whitelist (size=1)
user
com.android.cts.verifier (10134)
```
其中,“System whitelist”和“User whitelist”分别表示系统白名单和用户白名单,括号内的数字为应用程序的 UID。如果一个应用程序同时在系统白名单和用户白名单中都存在,则只会在系统白名单中显示。如果一个应用程序没有被添加到任何一个白名单中,则不会在该命令的输出中显示。
在上述例子中,“com.android.phone”是一个系统应用程序,其 UID 为 10143,已被添加到系统白名单中;“com.android.cts.verifier”是一个用户应用程序,其 UID 为 10134,已被添加到用户白名单中。