Требования: Соберите системные журналы и включите экспорт в один клик.
1. Анализ спроса
Проанализируйте требования к функции экспорта журнала:
1) Такие журналы, как ANR, Tombstones и Dropbox можно увидеть из предыдущих статей, все из которых имеют фиксированные пути хранения, поэтому нам нужно получить их только по указанному пути при экспорте.
2) Журнал баг-репортов был представлен в предыдущей статье, поэтому здесь я не буду говорить больше.
3) журнал qnx использует slog2info на стороне QNX для сбора журналов, сохранения их в указанном каталоге и последующего совместного использования каталога. Android нужно только перейти в общий каталог, чтобы получить файл журнала.
4) журнал logcat находится в центре внимания нашей разработки, основные этапы разбиты на части:
- Начать/остановить сбор журнала
- Отслеживайте количество и размер файлов журналов и упаковывайте их в исторические журналы, когда они достигают заданного значения.
- Отслеживайте количество и размер исторических файлов журнала и очищайте старые данные при достижении заданного значения.
2. Соберите логкэт
Поскольку файл журнала хранится в папке data/vendor/, после версии Android M от Google SELinux принудительно ограничивает разрешения обычных процессов на доступ к каталогу данных. Другим процессам, кроме init system_server installd system_app, строго запрещено напрямую работать с каталогом /data. И нет возможности напрямую добавить разрешение на доступ к system_data_file, версия N более строгая, и system_app тоже будет заблокирован. Итак, здесь нам нужно зарядить