,不幸的是,我发现以“安全模式”启动android时,服务不会自动启动,并且因此,我的应用程序存在严重缺陷。
在安全模式下,可以在不运行我的监视服务的情况下启动Web和其他应用程序。
我认为如果无法在安全模式下监视应用程序活动,也许我至少可以让我的应用程序检测手机之前是否处于安全模式。然后它可能会警告父母或责任合伙人?
Android会对此保留任何日志吗?还是一般的任何启动日志?我非常乐意提出建议和替代方案。
#1 楼
我认为您已经陷入困境,总之,您无能为力!看看此源,解释了原因,特别是在本节中:
系统分区和安全模式/>系统分区包含Android的内核以及
操作系统库,应用程序运行时,应用程序
框架和应用程序。该分区设置为只读。当用户
将设备引导到安全模式时,只有核心Android应用程序可用。这样可以确保用户可以将手机启动到没有第三方软件的环境中。
关键字没有第三方软件的环境
编辑:
Android启动时,会在
logcat
中保留的临时缓冲区中保留/dev/log
的缓存。该缓冲区在达到阈值时会被回收,显然,阈值越大,Android越慢,而不断向垃圾猫缓冲区发送垃圾邮件,因此将其保持在最低水平-iirc,约64K:#define DEFAULT_LOG_ROTATE_SIZE_KBYTES 16
#define DEFAULT_MAX_ROTATED_LOGS 4
:system/core/logcat/logcat.cpp
不要问每个应用程序可以有多少行不同。不仅如此,logcat在重新启动后也会消失!
评论
您没有真正回答您只是重申了他所知道的问题,即他的应用无法在安全模式下进行监控的问题。添加有关安全模式日志或替代方法的信息,然后+1
–花生
2012年7月18日在20:21
@ Peanut,Android仍然会记录logcat,但只有核心服务,别无其他!别无选择!而且第三方应用程序无法识别已激活安全模式,因为下次退出安全模式(即正常重启)时,第三方应用程序“认为”没有发生任何事情,就像“没什么可看的...”向前走”
–t0mm13b
2012年7月18日在20:22
抱歉,我在看到您的评论之前先编辑了我的评论,但是正如我所说的,您并没有真正回答他的问题。因此,另一种选择是检查logcat是否在其应用未运行时运行?显然,这将需要该人在某个时候不在安全模式下启动它,但这至少是一个现实的解决方案。
–花生
2012年7月18日在20:25
重启后,logcat的内容...会刷新到/ dev / null,就像“照常营业” ...只是说.. :)谢谢你的不赞成!
–t0mm13b
2012年7月18日在20:28
啊,我没有意识到,^^我会投票,因为您在这里提供了他的问题的答案:)我想您应该将有关日志的内容添加到您的实际答案中。编辑:哦,直到您编辑答案,我才能真正投票:p
–花生
2012年7月18日在20:32
#2 楼
不是最好的答案,但是也许这些信息会有用。我知道的唯一方法是重新启动后包含系统生成的日志,方法是
/proc/last_kmsg
。内核是否在重新启动后保留此日志文件,取决于内核编译期间提供的设置。
我的经验表明,某些备用设备(HTC)启用了此日志记录,而另一些则没有。我没有看到一致的模式。
评论
谢谢!您从哪里了解此日志?您对我如何了解更多这些日志有任何建议吗?那里有参考吗?
–ferm10n
2012年8月10日上午11:53
万一有人像我一样徘徊,日志现在在/ sys / fs / pstore / console_ramoops中。它不是像dmesg那样的完整日志,但基本上只包含有关最后一次内核崩溃以及导致它的原因的信息。
–埃文·朗格卢瓦(Evan Langlois)
17年8月1日在11:41
adb shell cp / sys / fs / pstore / console-ramoops /data/media/0/console-ramoops.`date“ +%Y_%m_%d_%H_%M_%S” .log在OP3上与TWRP一起使用基于Android 8的LineageOS
– beppe9000
19年6月30日在17:38
评论
我非常希望没有办法。我认为这不应该关闭。开发人员并不是唯一对此感兴趣的人。
我同意@Richard。这不是专门的编码问题,而是有关Android工作方式的信息。