Чи андроїд веде журнал, коли він починається?


19

Я роблю програму батьківського контролю / підзвітності для Android. Він складається з служби моніторингу, яка працює у фоновому режимі і запускається при завантаженні телефону.

На жаль, я виявив, що при запуску андроїда в "безпечному режимі" служби не запускаються автоматично, і через це мій додаток має серйозний недолік.

Перебуваючи в безпечному режимі, Інтернет та інші додатки можна запустити без запуску моєї служби моніторингу.

Я подумав, що якщо неможливо відстежувати активність програми, перебуваючи в безпечному режимі, можливо, я міг би принаймні визначити свою програму, якщо телефон раніше був у безпечному режимі. Тоді це, можливо, може попередити батьків або партнера з підзвітності?

Чи зберігає Android будь-який журнал цього? Або будь-який журнал завантаження взагалі? Я дуже відкритий до пропозицій та альтернатив.


2
Я дуже сподіваюсь, що цього немає як зробити.
RR

4
Я думаю, що це не повинно бути закритим. Розробники - не єдині, хто може це зацікавити.
RR

Я згоден з @ Richard. Це не конкретно питання кодування, а про те, як працює Android.
але

Відповіді:


13

Я думаю, що ти зловив себе, словом, нічого не можеш зробити!

Погляньте на це джерело, яке пояснює, чому саме в цьому розділі:

Розділ системи та безпечний режим

Системний розділ містить ядро ​​Android, а також бібліотеки операційної системи, час роботи програми, рамки програми та програми. Цей розділ встановлено лише для читання. Коли користувач завантажує пристрій у безпечний режим, доступні лише основні програми Android. Це гарантує, що користувач може завантажувати свій телефон у середовищі, що не містять сторонніх програм.

Ключові слова не містять програмного забезпечення сторонніх виробників

Редагувати:

Коли Android завантажується, він зберігає кеш-пам'ять logcatу тимчасовому буфері, який зарезервований, знайдений у /dev/log. Цей буфер переробляється, коли він досягає порогу, очевидно, чим більший поріг, тим повільніше Android потрапляє з постійним спамом у буфер logcat, отже зведений до мінімуму - iirc, його близько 64K:

#define DEFAULT_LOG_ROTATE_SIZE_KBYTES 16
#define DEFAULT_MAX_ROTATED_LOGS 4

Джерело: system/core/logcat/logcat.cpp

Не запитуйте, скільки рядків може бути для кожної програми та її додатків. Не один, що логката зникає при перезавантаженні!


2
Ви насправді не відповіли на питання, що ви перезаписали те, що він знав, що його програма не може контролювати під час безпечного режиму. Додайте щось про журнали або альтернативи безпечного режиму, а потім +1
арахіс

1
@Peanut, Android все одно буде входити в систему logcat, але тільки основні сервіси, більше нічого! Альтернативи цьому немає! І немає можливості стороннім додаткам визнати, що був активований безпечний режим, тому що при наступному виході із безпечного режиму, тобто перезавантаженні нормально, додатки сторонніх сторін "думають", що нічого не сталося, як у "тут нічого не бачити ... рухатися вздовж "
t0mm13b

1
Вибачте, я редагував свій коментар перед тим, як побачити ваш коментар, але, як я вже сказав, ви насправді не відповіли на його запитання. Тож альтернативою було б перевірити, чи працює логкат, коли його додаток не був? Очевидно, що це вимагатиме від людини запуску не в безпечному режимі в якийсь момент, але, принаймні, це реалістичне рішення.
Арахіс

Вміст logcat ... видаляється /dev/nullпісля перезавантаження, як-от "бізнес, як завжди" ... просто кажу .. :) І дякую за нижчу заявку!
t0mm13b

Ах, я не знав про це ^^ Я буду голосувати, оскільки ви запропонуєте відповідь на його запитання тут :) Я думаю, ви повинні додати інформацію про журнали до своєї фактичної відповіді. редагувати: О, я не можу насправді подати заявку, поки ви не редагуєте відповідь: p
Арахіс

6

Не найкраща відповідь, але, можливо, інформація буде корисною.

Єдиний мені відомий метод, який містить журнал, який виробляється системою після перезавантаження /proc/last_kmsg.

Чи зберігає ядро ​​цей файл журналу після перезавантаження, залежить від налаштувань, наданих під час компіляції ядра.

Мій досвід показав, що деякі запасні пристрої (HTC) увімкнули цей журнал, а інші - ні. Я не бачив послідовного зразка.


Дякую! Де ви дізналися про цей журнал? Чи є у вас якісь пропозиції щодо того, як я можу дізнатися більше про ці журнали? Чи є десь посилання?
jws121295

Якщо хтось блукає так, як я, журнал зараз знаходиться в / sys / fs / pstore / console_ramoops. Це не повний журнал, як dmesg, але в основному просто має інформацію про останню паніку ядра та те, що призвело до цього.
Еван Ланглуа

adb shell cp /sys/fs/pstore/console-ramoops /data/media/0/console-ramoops.`date "+%Y_%m_%d_%H_%M_%S"`.logпрацює з TWRP на OP3 з Android на базі LineageOS на базі Android 8
beppe9000
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.