Estou criando um aplicativo de controle / responsabilidade parental para android. Consiste em um serviço de monitoramento executado em segundo plano e iniciado quando o telefone é inicializado.
Infelizmente, descobri que quando o Android é iniciado no "Modo de segurança", os serviços não são iniciados automaticamente e, por isso, meu aplicativo apresenta uma falha grave.
Enquanto no modo de segurança, a Web e outros aplicativos podem ser iniciados sem o meu serviço de monitoramento em execução.
Eu pensei que, se não for possível monitorar a atividade do aplicativo enquanto estiver no modo de segurança, talvez eu possa pelo menos fazer com que meu aplicativo detecte se o telefone estava anteriormente no modo de segurança. Talvez isso pudesse alertar o pai ou o parceiro de responsabilidade?
O Android mantém algum registro disso? Ou qualquer log de inicialização em geral? Estou muito aberto a sugestões e alternativas.
Respostas:
Eu acho que você se surpreendeu, em suma, nada que você possa fazer!
Dê uma olhada nesta fonte que explica o motivo, especificamente nesta seção:
Partição do sistema e modo de segurança
O Keywords está livre de software de terceiros
Editar:
Quando o Android é inicializado, ele mantém um cache do
logcat
, em um buffer temporário reservado encontrado em/dev/log
. Esse buffer é reciclado quando atinge o limite, obviamente, quanto maior o limite, mais lento o Android fica com o spam contínuo no buffer de logcat, portanto, mantido no mínimo - iirc, é cerca de 64K:Fonte:
system/core/logcat/logcat.cpp
Não pergunte quantas linhas podem ser diferentes para cada aplicativo. Não é só isso, o logcat desaparece após a reinicialização!
fonte
/dev/null
reinicialização como "negócios como sempre" ... apenas dizendo .. :) E obrigado pelo voto negativo!Não é a melhor resposta, mas talvez as informações sejam úteis.
O único método que eu conheço que contém um log produzido pelo sistema após a reinicialização
/proc/last_kmsg
.Se o kernel mantém ou não esse arquivo de log após uma reinicialização, depende das configurações fornecidas durante a compilação do kernel.
Minha experiência mostrou que alguns dispositivos de estoque (HTC) têm esse log ativado e outros não. Eu não vi um padrão consistente.
fonte
adb shell cp /sys/fs/pstore/console-ramoops /data/media/0/console-ramoops.`date "+%Y_%m_%d_%H_%M_%S"`.log
trabalha com TWRP em OP3 com LineageOS baseados em 8 Android