Android11 默认开机后台记录logcat日志

这篇具有很好参考价值的文章主要介绍了Android11 默认开机后台记录logcat日志。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

软件平台:Android11

硬件平台:QCS6125

    需求:android启动后,默认后台记录logcat日志,并且设置每个文件大小为2M,最多记录30个文件,并且放置的data目录需要开放给app侧读取权限。

改动如下:

diff --git a/logcat/logcatd.rc b/logcat/logcatd.rc
index e19554a55..2fcdd2181 100755
--- a/logcat/logcatd.rc
+++ b/logcat/logcatd.rc
@@ -39,7 +39,7 @@ on property:logd.logpersistd.enable=true && property:logd.logpersistd=clear
     setprop persist.logd.logpersistd ""
     stop logcatd
     # logd for clear of only our files in /data/misc/logd
-    exec - logd log -- /system/bin/logcat -c -f /data/misc/logd/logcat -n ${logd.logpersistd.size:-256}
+    exec - logd log -- /system/bin/logcat -c -f /data/misc/logd/logcat -n ${logd.logpersistd.size:-30}
     setprop logd.logpersistd ""
 
 # stop logcatd service
@@ -52,7 +52,7 @@ on property:logd.logpersistd.enable=false
     stop logcatd
 
 # logcatd service
-service logcatd /system/bin/logcatd -L -b ${logd.logpersistd.buffer:-all} -v threadtime -v usec -v printable -D -f /data/misc/logd/logcat -r ${logd.logpersistd.rotate_kbytes:-2048} -n ${logd.logpersistd.size:-256} --id=${ro.build.id}
+service logcatd /system/bin/logcatd -L -b ${logd.logpersistd.buffer:-all} -v threadtime -v usec -v printable -D -f /data/misc/logd/logcat -r ${logd.logpersistd.rotate_kbytes:-2048} -n ${logd.logpersistd.size:-30} --id=${ro.build.id}
     class late_start
     #disabled
     # logd for write to /data/misc/logd, log group for read from log daemon
diff --git a/logcat/logpersist b/logcat/logpersist
index 05b46f047..f37a0b83d 100755
--- a/logcat/logpersist
+++ b/logcat/logpersist
@@ -21,7 +21,7 @@ log_uid=logd
 log_tag_property=persist.log.tag
 data=/data/misc/logd/logcat
 service=logcatd
-size_default=256
+size_default=30
 buffer_default=all
 args="${@}"

device目录添加app侧读取的selinux权限:

diff --git a/generic/vendor/common/system_app.te b/generic/vendor/common/system_app.te
index 9f74df79..50fdccc6 100755
--- a/generic/vendor/common/system_app.te
+++ b/generic/vendor/common/system_app.te
@@ -63,3 +63,7 @@ allow system_app vendor_sysfs_devicetree_soc:dir { search };
 allow system_app ctl_dumpstate_prop:property_service set;
 allow system_app dumpstate_socket:sock_file write;
 allow system_app dumpstate:unix_stream_socket { connectto read getattr write setattr lock append getopt setopt shutdown listen accept };
+allow system_app misc_logd_file:dir { open read getattr setattr search };
+allow system_app misc_logd_file:file r_file_perms;
+allow system_app tombstone_data_file:dir r_dir_perms;
+allow system_app tombstone_data_file:file r_file_perms;

system目录相关添加:

diff --git a/prebuilts/api/30.0/private/logpersist.te b/prebuilts/api/30.0/private/logpersist.te
index ac324df88..118afcf28 100644
--- a/prebuilts/api/30.0/private/logpersist.te
+++ b/prebuilts/api/30.0/private/logpersist.te
@@ -24,6 +24,6 @@ neverallow logpersist {
   userdebug_or_eng(`-misc_logd_file -coredump_file')
   with_native_coverage(`-method_trace_data_file')
 }:file { create write append };
-neverallow { domain -init -dumpstate -incidentd userdebug_or_eng(`-logpersist -logd') } misc_logd_file:file no_rw_file_perms;
-neverallow { domain -init userdebug_or_eng(`-logpersist -logd') } misc_logd_file:file no_w_file_perms;
-neverallow { domain -init userdebug_or_eng(`-logpersist -logd') } misc_logd_file:dir { add_name link relabelfrom remove_name rename reparent rmdir write };
+neverallow { domain -init -dumpstate -incidentd -system_app userdebug_or_eng(`-logpersist -logd') } misc_logd_file:file no_rw_file_perms;
+neverallow { domain -init -system_app userdebug_or_eng(`-logpersist -logd') } misc_logd_file:file no_w_file_perms;
+neverallow { domain -init -system_app userdebug_or_eng(`-logpersist -logd') } misc_logd_file:dir { add_name link relabelfrom remove_name rename reparent rmdir write };
diff --git a/private/logpersist.te b/private/logpersist.te
index ac324df88..118afcf28 100644
--- a/private/logpersist.te
+++ b/private/logpersist.te
@@ -24,6 +24,6 @@ neverallow logpersist {
   userdebug_or_eng(`-misc_logd_file -coredump_file')
   with_native_coverage(`-method_trace_data_file')
 }:file { create write append };
-neverallow { domain -init -dumpstate -incidentd userdebug_or_eng(`-logpersist -logd') } misc_logd_file:file no_rw_file_perms;
-neverallow { domain -init userdebug_or_eng(`-logpersist -logd') } misc_logd_file:file no_w_file_perms;
-neverallow { domain -init userdebug_or_eng(`-logpersist -logd') } misc_logd_file:dir { add_name link relabelfrom remove_name rename reparent rmdir write };
+neverallow { domain -init -dumpstate -incidentd -system_app userdebug_or_eng(`-logpersist -logd') } misc_logd_file:file no_rw_file_perms;
+neverallow { domain -init -system_app userdebug_or_eng(`-logpersist -logd') } misc_logd_file:file no_w_file_perms;
+neverallow { domain -init -system_app userdebug_or_eng(`-logpersist -logd') } misc_logd_file:dir { add_name link relabelfrom remove_name rename reparent rmdir write };

Mark一下,编译验证调试~文章来源地址https://www.toymoban.com/news/detail-551317.html

到了这里,关于Android11 默认开机后台记录logcat日志的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android --- logcat 打印日志、设置缓存大小、过滤等

    一、示例: Android log 通过系统属性 persist.log.tag 和 persist.log.tag.ABC  决定相关log的指定等级及以上才可以写入,ABC是指某个tag,TAG长度不能太长。 二、设置系统属性: 1.设置log日志缓存大小 2.使能所有log tag 输出,设置所有log V等级及以上才能输出 3.禁止所有log tag 的输出,设置

    2023年04月09日
    浏览(41)
  • Android Studio中Logcat日志不显示的解决办法

    Android Studio中Logcat日志不显示的解决办法 近期,一些开发者反映在使用Android Studio进行应用程序开发时,Logcat日志突然不显示的问题。这种情况可能会给调试和排错带来困扰。在本文中,我将为你提供一些解决该问题的方法。 以下是可能导致Logcat日志不显示的常见原因以及相

    2024年02月08日
    浏览(42)
  • Android Studio调试的时候Logcat不显示日志了

    使用Log输出日志的时候,Logcat窗口并没有显示日志。 去除所有的过滤条件之后,Logcat窗口仍然没有一条消息。 关闭Android Studio,重启Android Studio即可。 安卓获取当前设备的局域网IP地址 安卓监听端口接收消息 如果这个方法并不奏效,还有其他解决方案可以尝试。 日志级别决

    2024年02月12日
    浏览(43)
  • android studio logcat 无日志 No connect devices

    去sdk tools中找到 google use driver,下载,然后重启编译器 连接不上夜神模拟器可以去夜神对应的bin目录下,在目录框中输入cmd回车 输入nox_adb.exe connect 127.0.0.1:62001 然后就能找到设备了,如果还找不到,可能需要去更换adb版本; 2023年5月11日11:43:18 补充 用上面方法后续还是会发

    2024年02月13日
    浏览(42)
  • Android Studio - 新版 logcat 过滤使用记录

    由于 as 在每次升级都有很多问题,因此去年升级到  Dolphin  就一直未升级, Dolphin  版本就可以在设置中打开新版的 logcat 过滤功能,觉得不太习惯又关掉了。这次刚好 asfp 的下载重新学习下新版的功能。在此简单记录下。 我们可以在输入框输入 \\\"p\\\" 然后就会有提示 p 开头的

    2024年01月24日
    浏览(43)
  • Android 获取奔溃crash的日志(adb logcat或者dropbox)

    1.通过adb logcat 来获取 : 使用场景 :测试或者开发小伙伴 抓取。 先执行 adb logcat -c 清理缓存日志 接着,抓取当前时间段开始的日志: adb logcat -v time D:/crash.log 也可以抓取指定进程的日志: adb logcat -v time | find \\\"com.xxx\\\" D:/crash.log 其中 -v 和 time 是指log的v级别日志,也可用w 警告

    2024年02月08日
    浏览(54)
  • Android JNI配置CMakeLists.txt修改.cpp在logcat打印日志

    Android JNI配置CMakeLists.txt修改.cpp在logcat打印日志 C/C++代码里面常用的printf没法在Android 的logcat输出显示。需要特别配置C++才能显示在logcat里面。 (1)CMakeLists.txt定义: (2).cpp中: Android添加C++/CPP项目代码(2)_zhangphil的博客-CSDN博客 基于Windows平台,Android NDK(JNI)开发技术》

    2024年02月03日
    浏览(43)
  • 搭载基于RK3229的Android5.1修改开机默认桌面Launcher

    在..rk3229_5.1_boxframeworksbaseservicescorejavacomandroidserveram目录找到ActivityManagerService.java文件。在文件里找到startHomeActivityLocked函数里的setDefaultLauncher。 在setDefaultLauncher设置开机默认桌面launch的包名。我开发的固件,所要启动的包名如下:          String  packageName = SystemP

    2024年02月06日
    浏览(47)
  • Android11.0 修改系统默认显示大小

    系统设置中的显示大小调整的就是屏幕密度,调整的越小,屏幕显示的内容就越多。 在系统中都会有定义一个默认的屏幕密度 设置中显示大小相关内容 源码:/packages/apps/Settings/res/xml/display_settings.xml 源码:/packages/apps/Settings/src/com/android/settings/display/ScreenZoomSettings.java 密度缩

    2024年02月09日
    浏览(56)
  • Android 11.0 系统开机自启动第三方app

      在11.0的系统rom定制化开发中,由于有些第三方app,需要在接收到开机广播后,启动app,但是在10.0以后第三方app就接收不到开机广播了 只有系统app才可以接收到开机广播了,所以在app内通过接收开机广播自启动就没法实现了 这就需要在系统中添加监听开机完成广播的功能,

    2024年02月16日
    浏览(86)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包