@@ -15,7 +15,7 @@ using namespace std::string_view_literals;
1515using namespace std ::chrono_literals;
1616
1717constexpr size_t kMaxLogSize = 4 * 1024 * 1024 ;
18- constexpr long kLogBufferSize = 64 * 1024 ;
18+ constexpr long kLogBufferSize = 128 * 1024 ;
1919
2020namespace {
2121constexpr std::array<char , ANDROID_LOG_SILENT + 1 > kLogChar = {
@@ -225,10 +225,10 @@ void Logcat::ProcessBuffer(struct log_msg *buf) {
225225 modules_print_count_ += PrintLogLine (entry, modules_file_.get ());
226226 shortcut = true ;
227227 }
228- if (verbose_ &&
229- (shortcut || buf-> id () == log_id::LOG_ID_CRASH || entry. pid == my_pid_ ||
230- tag == " Dobby " sv || tag == " Magisk " sv || tag == " LSPlant " sv || tag == " LSPlt " sv ||
231- tag. starts_with ( " LSPosed " sv) || tag.starts_with (" zygisk" sv))) [[unlikely]] {
228+ if (verbose_ && (shortcut || buf-> id () == log_id::LOG_ID_CRASH || entry. pid == my_pid_ ||
229+ tag == " Dobby " sv || tag == " Magisk " sv || tag == " LSPlant " sv ||
230+ tag == " LSPlt " sv || tag. starts_with ( " LSPosed " sv) || tag == " SELinux " sv ||
231+ tag.starts_with (" zygisk" sv))) [[unlikely]] {
232232 verbose_print_count_ += PrintLogLine (entry, verbose_file_.get ());
233233 }
234234 if (entry.pid == my_pid_ && tag == " LSPosedLogcat" sv) [[unlikely]] {
@@ -250,8 +250,9 @@ void Logcat::ProcessBuffer(struct log_msg *buf) {
250250 enable_watchdog = false ;
251251 enable_watchdog.notify_one ();
252252 std::system (" resetprop -p --delete persist.logd.size" );
253- std::system (" resetprop -p --delete persist.logd.size.main" );
254253 std::system (" resetprop -p --delete persist.logd.size.crash" );
254+ std::system (" resetprop -p --delete persist.logd.size.main" );
255+ std::system (" resetprop -p --delete persist.logd.size.system" );
255256
256257 // Terminate the watchdog thread by exiting __system_property_wait firs firstt
257258 std::system (" setprop persist.log.tag V" );
@@ -263,28 +264,33 @@ void Logcat::ProcessBuffer(struct log_msg *buf) {
263264void Logcat::StartLogWatchDog () {
264265 constexpr static auto kLogdSizeProp = " persist.logd.size" sv;
265266 constexpr static auto kLogdTagProp = " persist.log.tag" sv;
266- constexpr static auto kLogdMainSizeProp = " persist.logd.size.main" sv;
267267 constexpr static auto kLogdCrashSizeProp = " persist.logd.size.crash" sv;
268+ constexpr static auto kLogdMainSizeProp = " persist.logd.size.main" sv;
269+ constexpr static auto kLogdSystemSizeProp = " persist.logd.size.system" sv;
268270 constexpr static long kErr = -1 ;
269271 std::thread watchdog ([this ] {
270272 Log (" [LogWatchDog started]\n " );
271273 while (true ) {
272274 enable_watchdog.wait (false ); // Blocking current thread until enable_watchdog is true;
273275 auto logd_size = GetByteProp (kLogdSizeProp );
274276 auto logd_tag = GetStrProp (kLogdTagProp );
275- auto logd_main_size = GetByteProp (kLogdMainSizeProp );
276277 auto logd_crash_size = GetByteProp (kLogdCrashSizeProp );
278+ auto logd_main_size = GetByteProp (kLogdMainSizeProp );
279+ auto logd_system_size = GetByteProp (kLogdSystemSizeProp );
277280 Log (" [LogWatchDog running] log.tag: " + logd_tag +
278- " ; logd.[default, main, crash].size: [" + std::to_string (logd_size) + " ," +
279- std::to_string (logd_main_size) + " ," + std::to_string (logd_crash_size) + " ]\n " );
281+ " ; logd.[default, crash, main, system].size: [" + std::to_string (logd_size) + " ," +
282+ std::to_string (logd_crash_size) + " ," + std::to_string (logd_main_size) + " ," +
283+ std::to_string (logd_system_size) + " ]\n " );
280284 if (!logd_tag.empty () ||
281- !((logd_main_size == kErr && logd_crash_size == kErr && logd_size != kErr &&
282- logd_size >= kLogBufferSize ) ||
283- (logd_main_size != kErr && logd_main_size >= kLogBufferSize &&
284- logd_crash_size != kErr && logd_crash_size >= kLogBufferSize ))) {
285+ !((logd_crash_size == kErr && logd_main_size == kErr && logd_system_size == kErr &&
286+ logd_size != kErr && logd_size >= kLogBufferSize ) ||
287+ (logd_crash_size != kErr && logd_crash_size >= kLogBufferSize &&
288+ logd_main_size != kErr && logd_main_size >= kLogBufferSize &&
289+ logd_system_size != kErr && logd_system_size >= kLogBufferSize ))) {
285290 SetIntProp (kLogdSizeProp , std::max (kLogBufferSize , logd_size));
286- SetIntProp (kLogdMainSizeProp , std::max (kLogBufferSize , logd_main_size));
287291 SetIntProp (kLogdCrashSizeProp , std::max (kLogBufferSize , logd_crash_size));
292+ SetIntProp (kLogdMainSizeProp , std::max (kLogBufferSize , logd_main_size));
293+ SetIntProp (kLogdSystemSizeProp , std::max (kLogBufferSize , logd_system_size));
288294 SetStrProp (kLogdTagProp , " " );
289295 SetStrProp (" ctl.start" , " logd-reinit" );
290296 }
0 commit comments