Android抓取系统logcat以及selinux对其影响

Android日志抓取全攻略:logcat与kernel log时间戳同步与自动化脚本 在Android应用开发与系统调试中,日志分析是定位问题的核心技术手段。日志系统通过记录程序运行时的状态、事件和错误信息,帮助开发者理解代码执行流程和系统行为。其核心原理在于操作系统和应用框架提供的日志缓冲区与收集机制,如Android的Logger驱动和Linux内核的printk。掌握高效的日志抓取技术,对于提升调试效率、快速复现和解决复杂问题具有重要价值,尤其在性能优化、功耗分析和系统稳定性测试等场景中。本文聚焦于Android平台两大核心日志源——logcat与kernel log,针对其时间戳不同 阅读详情

Android kk 之前,要读system/bin/logcat 只需要READ_LOG的权限就可以了。

Android kk 之后 ,  Google正式有限制的启用SELinux来增强安全防患。但是kk版本之后Google只是有限制的启用SELinux,即只针对netd, installd, zygote, vold以及他们直接fork出的child process 使用enforcing mode(强制模式,会对访问进行拒绝) , 但不包括zygote fork的普通app。

Android L   之后 , Google全面开启SELinux,所有的权限都使用enforcing mode。


另外为了限制user版本root使用权限,针对 su 有做特殊的处理(Android KK 之后就已经对 user版本的root有了严重的限制)。


这几天在做Android抓取系统log的APK,用Runntime获取su的process去execute一个logcat命令 的时候报了avc:dined的错误。

后来发现就是selinux的限制引起的。

于是就想通过添加系统服务的方式,启动系统服务区执行一个shell然后在通过shell去执行logcat。

然后就报错被告知我的系统服务被selinux告知需要一个domain.现在正通过添加selinux的domain和规则来尝试。

如果成功将在下个博客中添加 系统服务的添加,以及selinux相关的东西。




已搞定。详见下一篇博客。


2026安卓谷歌服务兼容性修复指南:GMS认证与模块化适配 谷歌移动服务(GMS)是Android生态中实现账号登录、应用分发与位置服务的核心基础设施。其运行依赖设备认证状态、SELinux策略、可信执行环境(TEE)及模块化组件协同。随着Android 14+系统升级与SafetyNet硬件校验强制推行,GMS不再仅要求‘能安装’,更强调‘被信任’——未通过Google官方认证的设备(如华为Mate 60 Pro、小米国内版)将触发ERROR_CODE_CERTIFICATION_FAILED或账户锁定等典型故障。本文聚焦GMS兼容性根因,解析Device Cer 阅读详情

相关推荐

Android SELinux安全机制详解:从MAC模型到策略定制与调试实战

在Linux系统安全领域,强制访问控制(MAC)是一种核心安全模型,它通过系统全局策略对进程和资源的访问进行强制约束,与传统的自主访问控制(DAC)形成互补,共同构建纵深防御体系。SELinux作为MAC在Linux内核的主流实现,其技术价值在于将安全边界从用户级别细化到进程和对象级别,即使root进程也必须遵守策略规则,从而极大限制漏洞或恶意代码的影响范围。在Android系统中,SELinux自5.0版本起全面启用强制模式,成为系统安全的基石,广泛应用于系统服务、硬件抽象层(HAL)及设备制造商(OEM

weixin_33768481的博客 401

android 6.0 logcat机制(二)logcat从logd中获取log保存到文件中

一、设置保存log文件的路径 在手机刚开机的时候,会有类似如下命令执行 /system/bin/logcat -r 5120 -v threadtime -v usec -v printable -n 5 -f /data/local/log/logcat.log  /system/bin/logcat -r 5120 -v threadtime -v usec -v printabl

kc58236582的博客 1万+

Android SELinux权限实战:从avc报错到NeverAllow编译的完整解决方案

在Android系统开发中,强制访问控制(MAC)是构建系统安全架构的核心机制,它通过安全上下文和策略规则,为进程、文件等对象定义了精细的操作权限边界,从而在传统的自主访问控制(DAC)基础上,提供了更严格的安全保障。其技术价值在于贯彻最小权限原则,有效遏制恶意软件或漏洞的横向移动与权限提升,是确保移动设备与物联网终端安全性的基石。典型的应用场景包括系统服务调用、硬件资源访问(如传感器、特定设备节点)以及跨进程通信(Binder IPC)等。当开发者进行深度定制或系统级功能开发时,常会遇到SELinux权限

dfdfadsf3443的博客 419

android 动态log控制,Android日志系统Logcat源代码简要分析

在前面两篇文章Android日志系统驱动程序Logger源代码分析和Android应用程序框架层和系统运行库层日志系统源代码中,介绍了Android内核空间层、系统运行库层和应用程序框架层日志系统相关的源代码,其中,后一篇文章着重介绍了日志的写入操作。为了描述完整性,这篇文章着重介绍日志的读取操作,这就是我们在开发Android应用程序时,经常要用到日志查看工具Logcat了。Logcat工具内置...

weixin_39586526的博客 667

Android SELinux安全机制详解:从强制访问控制到实战策略配置

强制访问控制是操作系统安全领域的核心概念,它通过系统级策略强制执行访问规则,与传统的自主访问控制形成互补,构建纵深防御体系。其原理基于类型强制机制,为每个进程和资源分配安全上下文标签,依据预定义策略裁决所有访问请求。在Android系统中,SELinux实现了这一技术价值,从Android 5.0开始成为默认强制安全策略,彻底改变了“root即上帝”的脆弱局面。它遵循最小权限原则,即使进程获得高权限仍受策略约束,显著缩小攻击面。应用场景涵盖系统服务开发、ROM定制、驱动集成及安全研究。本文聚焦Android

weixin_34331102的博客 367

安卓12 Frida Hook实战:避坑指南与反检测对抗

动态代码插桩技术是移动安全分析和应用逆向工程中的核心手段,它允许在运行时修改程序行为、监控函数调用及数据流。其原理通常基于进程注入和API Hook,通过拦截目标函数调用并执行自定义代码来实现动态分析。这项技术的核心价值在于无需修改原始应用,即可实现深度行为观测、漏洞挖掘和安全测试。在安卓应用安全评估、恶意软件分析和游戏外挂检测等场景中尤为关键。本文聚焦于Frida这一主流动态插桩框架,针对安卓12系统环境下的实战挑战,深入剖析了环境配置、类加载器处理、方法Hook重载等常见问题,并提供了对抗应用反调试机制

adr5970的博客 433

Android log日志系统分析-logcat源码解析

Android为我们提供了一个十分方便的命令行工具来读日志。Logcat 是一个命令行工具,用于转储系统消息日志,其中包括设备引发错误时的堆叠追踪以及从您的应用。 借用别人的一张图,显示 logd的框架 在Android 开机时候 hu Logcat工具源代码位于system/core/logcat目录下,编译后生成的可执行文件位于out/target/product/generic/syste...

lb5761311的专栏 6709

Android源码编译排错实战:从环境配置到SELinux策略的完整指南

在软件开发领域,构建系统是连接源代码与可执行产物的核心桥梁,其原理在于将代码、资源与配置按照特定规则转化为目标文件。对于Android系统开发而言,AOSP的构建系统经历了从Make到Soong的演进,技术价值在于提供了更严格、可扩展的模块化构建能力,能有效管理大型代码库的依赖与变体。然而,在实际工程实践中,开发者常面临环境配置、依赖解析、SELinux策略冲突等高频问题,导致编译失败。本文聚焦Android源码编译过程中的典型错误,系统梳理了从基础环境搭建、Soong/Blueprint构建系统配置,到S

weixin_30682415的博客 331

[Android]通过logcat抓取开机log的方法

开机logcat启动 2018-4-9如何让系统开机后就自动抓取log呢在rc中启动logcatservice  get_log /system/bin/logcat -f/data/local/tmp/log.txt    class main    oneshot 尝试在系统启动的时候,由init进程fork出logcat进程,通过logcat -f /data/local/tmp/log.t...

aaajj的专栏 9276

RK3588安卓开机自启动:从广播到init.rc的嵌入式实战方案

在嵌入式系统开发中,开机自启动是实现设备专用化与无人值守运行的核心机制。其原理在于系统初始化后自动加载指定应用或服务,确保关键业务逻辑的持续执行。这一技术对于智能终端、工业控制等场景具有重要价值,能显著提升设备的可靠性与用户体验。在RK3588这类高性能AIoT平台上,实现稳定自启动常需权衡系统权限与启动时机。常见方案包括利用标准安卓广播、将应用预置为系统应用,或通过底层init.rc脚本直接启动。其中,涉及SELinux策略配置与系统签名等关键环节,是保障方案稳定性的基础。本文聚焦RK3588平台,深入探

anheku1562的博客 471

Android logcat缓冲区优化:从Unexpected EOF到高性能日志采集

本文深入探讨了Android logcat缓冲区优化策略,从解决Unexpected EOF错误到高性能日志采集的全面方案。通过分析缓冲区爆仓原因,提供临时扩容、持久化配置及内核级修改等多层次解决方案,并分享智能过滤、多缓冲区并行处理等高级调优技巧,帮助开发者实现稳定高效的日志采集系统。

weixin_30314813的博客 148

android+read_logs这权限有什么用,READ_LOGS是正常或危险的Android权限吗?

Is READ_LOGS a normal or dangerous Android permission?都不是.从Android 7.1开始,它是签名|开发.这基本上意味着作为固件构建的一部分签名或安装在特权分区上的应用程序可以保留权限,但没有其他任何内容可以.the Android Documentation website does not specify the protection l...

weixin_30970539的博客 5139

Android RescueParty机制解析:系统崩溃自救与数据保护

在移动操作系统领域,系统稳定性与数据保护是核心挑战。Android系统通过引入一套名为RescueParty的自我修复机制,从系统层面解决了设备因连续崩溃可能导致的“变砖”风险。其工作原理基于对系统服务器和关键应用崩溃的实时监控,当崩溃次数在特定时间窗口内达到预设阈值时,会触发渐进式救援流程。该机制的技术价值在于,它能在无需用户干预的情况下,自动尝试从重启进程、清除缓存到最终引导恢复出厂设置等逐级修复手段,极大地提升了设备的可用性和用户数据的安全性。这一设计尤其适用于系统OTA更新失败、核心应用缺陷或缓存损

weixin_30340617的博客 502

android SELinux权限适配

添加权限(sepolicy 1),然后编译,刷机,重新验证。这时候又遇到(sepolicy 2)的权限策略,又需要进行添加权限的设置。如果程序需要多个权限,就需要反复进行设置权限。对于将selinux设置为permission mode,分二种方法:1,执行setenforce 0命令即可。2,修改init代码,在初始化的时候设置为permission mode,不同版本方式不一样。遇到neverallow问题需要自定义权限域,如下是添加到vendor_sysfs_usb_supply权限域中。

龚礼鹏的博客 1533

Android抓log小工具(apk)

好东西要分享 安卓手机端抓log工具 先运行该工具,然后home键使其后台执行,就可以去运行其他应用抓log了 也可以等到崩溃时再运行该工具去查看崩溃信息

别再只跑recon-all了!FreeSurfer实战:从T1图像到freeview可视化的完整避坑指南

本文详细解析FreeSurfer从T1图像处理到freeview可视化的全流程,包括环境配置、recon-all深度解析、高级可视化技巧及性能优化策略。特别针对常见错误提供解决方案,帮助用户高效完成MRI数据分析,避免常见陷阱。

weixin_33404102的博客 353

Android 7系统日志(七)实战调试与常见问题分析

Android 日志系统实战调试指南 本文基于前六篇原理分析,提供真实工程问题的解决方案速查与典型案例。 核心问题速查表:涵盖8类常见日志问题(如logcat无输出、日志丢失、时间错乱等),提供可能原因、排查命令与对应原理章节。 典型案例分析: 日志突然消失:通过logcat -g检查缓冲区状态,-S定位日志滥用者,调整缓冲区大小或优化高频日志代码。 chatty消息泛滥:因循环日志触发合并机制,建议采用采样率控制或使用VERBOSE级别。 开机日志丢失:因logd启动晚于内核日志,需通过dmesg或pst

AfinalStone的专栏 286

如何在高版本的ubuntu系统里安装gcc4.1.2

1、下载安装包,一共五个http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.1/,根据计算机系统位数   进行下载,64位下载amd64结尾的。开头分别是cpp-4.1_4.1.2、g++-4.1_4.1.2、gcc-4.1-base_4.1.2、gcc-     4.1_4.1.2、libstdc++6-4.1 2、使用sudo d

lsr_fighting的博客 1933

Android SELinux安全机制深度解析:从核心概念到策略开发实战

在Linux系统安全领域,强制访问控制(MAC)是构建纵深防御体系的关键技术,它通过为系统资源与进程赋予安全标签,并基于预设策略进行访问控制,实现了比传统自主访问控制(DAC)更细粒度的安全管控。SELinux作为Linux内核最主流的MAC实现,其核心价值在于通过白名单机制与最小权限原则,有效遏制权限提升攻击与恶意软件扩散。在移动操作系统场景中,Android自5.0版本起全面启用SELinux,将其深度整合至应用沙箱、Binder IPC与系统服务框架,形成了独特的安全上下文模型与策略架构。本文聚焦于A

abcyan1235的博客 322

保姆级教程:断网环境下用Flexnet服务器搞定SolidWorks 2021安装与破解(附错误5解决方案)

本文提供SolidWorks 2021在断网环境下的企业级部署指南,详细解析Flexnet服务器本地化工作原理,并给出安装与破解的实战方案,特别针对常见的'错误5'问题提供多维度解决方案。适用于需要内网隔离或移动办公的工业设计场景,确保数据安全与授权合规。

weixin_28683391的博客 302

在MacBook上直接跑Windows Server 2022:一个开发者的真实踩坑与配置全记录

本文详细记录了在MacBook上原生运行Windows Server 2022的完整流程与优化技巧。通过Boot Camp实现非虚拟机安装,开发者可以充分利用Mac硬件性能,搭建高效的本地开发环境,特别适合需要测试跨平台应用和服务器功能的场景。文章涵盖驱动处理、分区策略、Docker配置等关键步骤,为技术极客提供实用指南。

weixin_42620913的博客 247

Android 11 adb remount失效:动态分区与SELinux策略的深度解析与解决方案

在Android系统开发与深度定制中,文件系统挂载与权限管理是核心基础技术。传统上,开发者通过adb remount命令可轻松挂载系统分区为读写模式,进行文件修改。其原理涉及Linux的mount系统调用与权限提升机制,对于系统调试、应用预置与功能集成具有重要价值。然而,随着Android系统安全架构的演进,尤其是从Android 10/11版本开始,动态分区与强化的SELinux安全策略构成了新的技术壁垒。动态分区通过super分区整合只读分区,并引入dm-verity验证机制,从物理层锁定只读属性。同时

weixin_30294295的博客 650

7.3 空间矢量调制(SVM)整数算法

本文提出了一种基于整数运算的空间矢量调制(SVM)优化实现方案,适用于计算资源有限的Cortex-M0平台。针对传统SVM算法中复杂的三角函数和浮点运算问题,重点优化了扇区判断和占空比计算两个关键环节。在扇区判断方面,采用基于电压分量符号和相对大小的三变量法,避免了角度计算;在占空比计算方面,通过几何关系将作用时间表示为电压分量的线性组合,并采用定点数实现。方案还详细讨论了系数定点化、死区补偿等实现细节,在保证精度的同时显著降低了计算复杂度。实验结果表明,优化后的整数算法在M0平台上仅需50-80个周期即可

技术工作者 946
上一篇: Error:null value in entry: incrementalFolder=null
下一篇: 以Android L读取系统所有logcat并写入文件为例分析Android 以添加系统进程的方式申请selinux的权限执行shell脚本,以及avc:dined应该怎么申请权限
androideveloper
博客等级 码龄12年 21粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值