Я делаю приложение родительского контроля / ответственности для Android. Он состоит из службы мониторинга, которая работает в фоновом режиме и запускается при загрузке телефона.
К сожалению, я обнаружил, что при запуске Android в «Безопасном режиме» службы не запускаются автоматически, и из-за этого у моего приложения есть серьезный недостаток.
В безопасном режиме Интернет и другие приложения могут быть запущены без запуска моей службы мониторинга.
Я подумал, что если невозможно отслеживать активность приложения в безопасном режиме, возможно, я мог бы, по крайней мере, заставить свое приложение определить, был ли телефон ранее в безопасном режиме. Тогда это может предупредить родителя или партнера по подотчетности?
Android ведет какой-либо журнал этого? Или вообще загрузочный журнал? Я очень открыт для предложений и альтернатив.
Ответы:
Я думаю, что вы поймали себя, короче говоря, вы ничего не можете сделать!
Посмотрите на этот источник, который объясняет почему, именно в этом разделе:
Системный раздел и безопасный режим
Ключевые слова свободны от стороннего программного обеспечения
Редактировать:
Когда Android загружается, он сохраняет кеш
logcat
во временном буфере, который зарезервирован в/dev/log
. Этот буфер перерабатывается, когда он достигает порогового значения, очевидно, чем больше пороговое значение, тем медленнее работает Android с непрерывным спамом в буфере logcat, следовательно, поддерживается на минимальном уровне - iirc, его около 64 КБ:Источник:
system/core/logcat/logcat.cpp
Не спрашивайте, сколько строк может быть для каждого приложения разным. Не только это, logcat исчезает при перезагрузке!
источник
/dev/null
при перезагрузке, как "обычное дело" ... просто говорю ... :) И спасибо за понижение!Не лучший ответ, но, возможно, информация будет полезной.
Единственный известный мне метод, который содержит журнал, созданный системой после перезагрузки
/proc/last_kmsg
.Сохраняет ли ядро этот файл журнала после перезагрузки, зависит от настроек, предоставленных во время компиляции ядра.
Мой опыт показал, что на некоторых стоковых устройствах (HTC) эта регистрация включена, а на других нет. Я не видел последовательной картины.
источник
adb shell cp /sys/fs/pstore/console-ramoops /data/media/0/console-ramoops.`date "+%Y_%m_%d_%H_%M_%S"`.log
работает с TWRP на OP3 с Android 8 на основе LineageOS