【AndroidFramework】【EMMC拷机】混合拷机时盒子待机

问题结论

暂时确定为误按键,不是故障。问题关闭。后续完全保证无按键(物理隔离)情况下如果出现待机,请反馈。

问题描述

【EMMC拷机】混合拷机时盒子待机---新版本引入

EMMC:东芝THGBMFG6C1LBAIL 容量为8GB

【故障描述】

1,拷机10台,全部杀了遥控器,拷机播放13H后发现一台出现问题

2,混合拷机时盒子待机

分析详细

grep确认事件现场

确认日志产生机制

确认盒子待机按钮

确认自动待机接口

确认测试部“杀遥控器”方法

grep确认事件现场

拿到日志有53份,每份102400k,先放在服务器上,grep一下,结果如下:

[email protected]:~/temp/182.16.90.24_2019-06-17-17-17-58$ grep 'sleep' * -nir

Log_2019-06-17-17-17-58_53.log:467677:2019-06-17 21:00:29.344 I/PowerManagerService( 3246): Going to sleep due to power button (uid 1000)...

Log_2019-06-17-17-17-58_53.log:467683:2019-06-17 21:00:29.344 I/PowerManagerService( 3246): Sleeping (uid 1000)...

Log_2019-06-17-17-17-58_53.log:481099:2019-06-17 21:00:32.464 I/TV_Client.TagTv( 4374): [4585][playermgr.cpp (L7160)][StopallTVplay]:---[0]---iPlayerID[0];joinchannel is NOT running!exit Sleep!

[email protected]:~/temp/182.16.90.24_2019-06-17-17-17-58$ grep 'screen off' * -nir

Log_2019-06-17-17-17-58_53.log:467687:2019-06-17 21:00:29.344 I/DisplayPowerController( 3246): Blocking screen off

Log_2019-06-17-17-17-58_53.log:467689:2019-06-17 21:00:29.344 I/DisplayPowerController( 3246): Unblocked screen off after 1 ms

Log_2019-06-17-17-17-58_53.log:468063:2019-06-17 21:00:29.547 D/PowerManagerService-JNI( 3246): Excessive delay in setInteractive(false) while turning screen off

结果显示,待机只发生在最后一份日志,并且显示为power button,结果基本明晰。接下来,

1.确认框架代码,什么情况下会出现该打印(遥控器按到了?其他未知原因调用到了?)

2.是不是碰到盒子上‘待机按钮’引起的

3.是不是什么apk调用了自动待机的接口?

确认日志产生机制

代码路径/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java

/frameworks/base/services/core/java/com/android/server/power$ cat PowerManagerService.java |grep -nir 'Going to sleep due to'

PowerManagerService.java:1407: Slog.i(TAG,"Going to sleep due to device administration policy "

PowerManagerService.java:1411: Slog.i(TAG,"Going to sleep due to screen timeout (uid " + uid +")...");

PowerManagerService.java:1414: Slog.i(TAG,"Going to sleep due to lid switch (uid " + uid +")...");

PowerManagerService.java:1417: Slog.i(TAG,"Going to sleep due to power button (uid " + uid +")...");

PowerManagerService.java:1420: Slog.i(TAG,"Going to sleep due to sleep button (uid " + uid +")...");

PowerManagerService.java:1423: Slog.i(TAG,"Going to sleep due to HDMI standby (uid " + uid +")...");

跳转到打印处,调用的方法,梳理逻辑。

// This method is called goToSleep for historical reasons but we actually start

// dozing before really going to sleep.

@SuppressWarnings("deprecation")

private boolean goToSleepNoUpdateLocked(long eventTime,int reason,int flags,int uid) {

if (DEBUG_SPEW) {

Slog.d(TAG,"goToSleepNoUpdateLocked: eventTime=" + eventTime

+ ",reason=" + reason + ",flags=" + flags + ",uid=" + uid);

}

if (eventTime < mLastWakeTime

|| mWakefulness == WAKEFULNESS_ASLEEP

|| mWakefulness == WAKEFULNESS_DOZING

|| !mBootCompleted || !mSystemReady) {

return false;

}

Trace.traceBegin(Trace.TRACE_TAG_POWER,"goToSleep");

try {

switch (reason) {

case PowerManager.GO_TO_SLEEP_REASON_DEVICE_ADMIN:

Slog.i(TAG,"Going to sleep due to device administration policy "

+ "(uid " + uid +")...");

break;

case PowerManager.GO_TO_SLEEP_REASON_TIMEOUT:

Slog.i(TAG,"Going to sleep due to screen timeout (uid " + uid +")...");

break;

case PowerManager.GO_TO_SLEEP_REASON_LID_SWITCH:

Slog.i(TAG,"Going to sleep due to lid switch (uid " + uid +")...");

break;

case PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON:

Slog.i(TAG,"Going to sleep due to power button (uid " + uid +")...");

break;

case PowerManager.GO_TO_SLEEP_REASON_SLEEP_BUTTON:

Slog.i(TAG,"Going to sleep due to sleep button (uid " + uid +")...");

break;

case PowerManager.GO_TO_SLEEP_REASON_HDMI:

Slog.i(TAG,"Going to sleep due to HDMI standby (uid " + uid +")...");

break;

case PowerManager.GO_TO_SLEEP_REASON_ACCESSIBILITY:

Slog.i(TAG,"Going to sleep by an accessibility service request (uid "

+ uid +")...");

break;

default:

Slog.i(TAG,"Going to sleep by application request (uid " + uid +")...");

reason = PowerManager.GO_TO_SLEEP_REASON_APPLICATION;

break;

}

mLastSleepTime = eventTime;

mSandmanSummoned = true;

setWakefulnessLocked(WAKEFULNESS_DOZING,reason);

// Report the number of wake locks that will be cleared by going to sleep.

int numWakeLocksCleared = 0;

final int numWakeLocks = mWakeLocks.size();

for (int i = 0; i < numWakeLocks; i++) {

final WakeLock wakeLock = mWakeLocks.get(i);

switch (wakeLock.mFlags & PowerManager.WAKE_LOCK_LEVEL_MASK) {

case PowerManager.FULL_WAKE_LOCK:

case PowerManager.SCREEN_BRIGHT_WAKE_LOCK:

case PowerManager.SCREEN_DIM_WAKE_LOCK:

numWakeLocksCleared += 1;

break;

}

}

EventLogTags.writePowerSleepRequested(numWakeLocksCleared);

// Skip dozing if requested.

if ((flags & PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE) != 0) {

reallyGoToSleepNoUpdateLocked(eventTime,uid);

}

} finally {

Trace.traceEnd(Trace.TRACE_TAG_POWER);

}

return true;

}

由以上代码可见,待机是由于power按键。不是由于某些应用程序调用。

确认盒子待机按钮

经按键盒子上的power键,是走的真待机重启流程,无以上打印。

确认自动待机接口

做实验:设置中修改自动待机,过段时间待机后看日志。

实验结论:自动待机调用的接口与power button不同,该问题不是由调用自动待机接口导致。

日志如下:

sdcard/111.log |grep -nir 'sleep' <

(standard input):451:01-01 03:20:50.225 D/SharedPreferencesLogger( 5198): Tried to log string preference MainSettings/sleepTime = 10800000

(standard input):492:01-01 03:21:00.542 V/SettingsProvider( 3120): Notifying for 0: content://settings/secure/sleep_timeout

(standard input):494:01-01 03:21:00.549 D/SharedPreferencesLogger( 5198): Tried to log string preference MainSettings/sleepTime = 1800000

(standard input):1434:01-01 03:51:00.538 I/PowerManagerService( 3120): Going to sleep due to screen timeout (uid 1000)...

(standard input):1437:01-01 03:51:00.540 I/PowerManagerService( 3120): Sleeping (uid 1000)...

(standard input):1713:01-01 04:05:03.885 I/PowerManagerService( 3120): Waking up from sleep (uid=1000 reason=android.policy:POWER)...

确认测试部“杀遥控器”方法 经试验,在ATV9上无法屏蔽遥控器按键

android拷机工具,【AndroidFramework】【EMMC拷机】混合拷机时盒子待机相关推荐

  1. 360手机刷机工具 360手机刷机 QiKU Download Assistant

    360手机刷机工具 QiKU Download Assistant 参考:360手机-360刷机360刷机包twrp.root 360刷机包360手机刷机:https://360iphoneos.gi ...

  2. 三星刷机工具Odin图文刷机教程

    解压完,双击安装包 选择语言,语言栏选择simplified Cinnese 国家选择c朱雀网络 www.zhuquewl.com ROM包下载hina 安装路径可选择其他驱动盘,或者直接安装亦可注意 ...

  3. android拷机工具,Android8.0平台Camera monkey拷机卡死异常解决方案

    android8.0平台camera monkey拷机卡死异常 最近在处理一个camera monkey拷机卡死的问题,卡死在停止录像的画面. monkey测试命令 monkey -p com.and ...

  4. android刷机工具推荐,刷机也能如此轻松 Android一键刷机工具

    对于许多Android用户来说,刷机乃是人生一大乐趣,但是许多刚接触Android手机不久的机友对于刷机还不够了解,既羡慕别人华丽流畅的手机系统,又害怕刷机失败而导致手机变"板砖" ...

  5. 小米5s+刷+android+8.0,【小米5S标准版 解账户锁线刷包】MIUI V8.0.10.0 刷机 工具+驱动+教程!紫火提供版...

    [小米5S标准全网 解账户锁线刷包]含刷机工具+驱动+教程!机客盟提供版,基于官方MIUI V8.0.10.0.MAGCNDH适用于2015711版纯净,稳定,流畅,省电版 刷机包里面包含 刷机工具 ...

  6. android刷机方法,介绍一种android的裸刷机方法(fastboot刷机实质)

    fastboot刷机的前提是你的开发板uboot良好并能正常启动进入fastboot模式,你的开发版的nand分区已存在.对于Android的uboot而言, 已经实现了fastboot命令,当你进入 ...

  7. 电脑刷机重装系统_一键刷机工具

    手机刷机一般来说可能会比较繁琐,一旦操作不当极有可能会使手机变砖头,而今天小编带来了一款操作极其简单的一键刷机工具百度云os,该工具是由百度官方基于Android 4.0研发的,并且采用了百度云计算核 ...

  8. AndroidStudio layout Inspector工具无法连接真机

    AndroidStudio layout Inspector工具无法连接真机 Ubuntu 遇见layout Inspector无法连接真机,无法选择进程问题. 现象:androidstudio中的t ...

  9. 【Android】Android Studio下安装部署虚拟真机

    关于 Android Studio 下如何部署虚拟真机 首先点击 Android Studio 顶部工具(Tools) 点击 Device Manager 打开真机页面 选择 Virtual 下的 C ...

最新文章

  1. 北大马剑竹 | 结构性和功能性基因组学的机器学习算法
  2. php 昨天开始时间_php日期处理显示:昨天、今天、本周、上一月等时间结点数据...
  3. 同步、异步;阻塞、非阻塞
  4. mysql存储过程入门_MySQL入门之存储过程
  5. Session一致性的解决方案
  6. CentOS7 DNS的添加
  7. (五):ionic 命令详解
  8. 《普林斯顿微积分读本》笔记-第4章求解多项式的极限问题
  9. python多行注释报错_解决python多行注释引发缩进错误的问题
  10. matlab 倒谱ceptrum,倒谱法求共振峰
  11. github Dns 污染
  12. php c端,蛋白测序(N端,C端测序)
  13. 分析谁是2020欧洲杯的最佳球员
  14. Linux进程(上)
  15. OData的初步认识
  16. windows局域网传输文件
  17. LA 4513 Stammering Aliens
  18. 很实用的一款数据恢复软件 easyrecovery 分享给大家
  19. 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问。
  20. Proe4.0折叠椅产品建模设计视频教程

热门文章

  1. 爱普生Epson Artisan 800 一体机驱动
  2. cppunit在vs2019上的配置和使用【Win10】【详细】
  3. JavaScript框架篇——zepto
  4. aspnet172海派电影视频点播分享影评网站
  5. 2023春季露营投影怎么选?轻薄投影极米Z6X Pro值得推荐
  6. python读取图片像素矩阵
  7. 什么是证书颁发机构?
  8. 阿里云ddns ipk包下载
  9. html如何查看字体样式,css2.0文档查阅及字体样式
  10. NB-loT中的Niubility技术