3.1 Android eBPF代码仓解读

这篇具有很好参考价值的文章主要介绍了3.1 Android eBPF代码仓解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面

前面已经介绍,Android从9.0版本开始支持eBPF,并且主要用于网络及CPU性能的监控上。它包含一个eBPF加载器和库。加载器在Andoroid init启动/system/etc/bpf/下的所有eBPF程序,ebpf程序在完成加载后,内核ebpf程序进行verify和attach,顺利的话,最终,ebpf程序会被hook或插入到指定的内核函数中,这样就可以完成对内核活动的监控。

本章,我们继续探索eBPF在Android上的应用。首先我们来看,ebpf的代码仓分布。

一,bpfloader

  • android/system/bpf
  • android/system/bpf/bpfloader

这个bpf代码仓基本上是ebpf加载器在android上的唯一实现。系统编译时生成bpfloader可执行程序,系统镜像打包后的路径为/system/bin/bpfloader。

它包含bpfloader.rc文件和bpfloader主程序。而rc我们就比价熟悉了,它是很多native服务的初始化及运行入口,那么bpfloader.rc自然而然也是bpfloader程序运行的入口。

bpfloader负载在系统初始化时,会创建相关的目录,并加载/system/etc/bpf目录下的所有eBPF程序。android 12默认支持的eBPF程序包括clatd.o,gpu_mem.o,netd.o,time_in_state.o等。

  • android/system/bpf/libbpf_android

系统编译时生成libbpf_android.so,系统镜像打包后的路径为/lib64/libbpf_android.so。其主要的作为bpfloader可执行程序的共享库,文章来源地址https://www.toymoban.com/news/detail-705675.html

到了这里,关于3.1 Android eBPF代码仓解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Caretta 利用 eBPF 实现 Kubernetes 应用网络拓扑

    Caretta 利用 eBPF 实现 Kubernetes 应用网络拓扑

    Caretta 是一种轻量级的独立工具,快速展示集群中运行的服务可视化网络图。 Caretta 利用 eBPF 有效地展示 K8s 集群中的服务网络交互图,并利用 Grafana 查询和可视化收集的数据。科学家们早就知道,海龟和许多动物一样,通过感应磁场中看不见的线在海上航行,类似于水手使用

    2024年02月10日
    浏览(10)
  • eBPF(Linux内核安全方案)教程1简介

    eBPF(Linux内核安全方案)教程1简介

    eBPF(extended Berkeley Packet Filter)是一种革命性的内核技术,它允许开发人员编写可动态加载到内核中的自定义代码,从而改变内核的运行方式。(如果你对内核还不太了解,不用担心,本章很快就会讲到)。 这使得新一代高性能网络、可观察性和安全工具成为可能。而且,正如

    2024年02月08日
    浏览(11)
  • DeeTune:基于 eBPF 的百度网络框架设计与应用

    DeeTune:基于 eBPF 的百度网络框架设计与应用

    作者 | 百度APP云原生技术研发组 导读 随着云计算的技术的不断迭代演进,百度内部服务逐渐搬迁到云环境中,部署成本和效率取得明显收益,但一些可观测能力的短板和缺失逐渐显露,传统的方式往往通过植入代码进行修改来实现,但在业务形态和技术栈多样性的背景下,

    2024年02月09日
    浏览(11)
  • eBPF技术:开启下一代系统观测与网络安全的可能性

    eBPF技术:开启下一代系统观测与网络安全的可能性

    导言:在当今数字化时代,系统观测和网络安全成为了企业和组织中至关重要的领域。而eBPF(extended Berkeley Packet Filter)技术作为一种创新的工具和框架,正在迅速崭露头角。本文将深入探讨eBPF技术的原理、优势和应用领域,以展示其在开启下一代系统观测与网络安全中的潜

    2024年04月25日
    浏览(14)
  • eBPF 开发实践:使用 eBPF 隐藏进程或文件信息

    eBPF(扩展的伯克利数据包过滤器)是 Linux 内核中的一个强大功能,可以在无需更改内核源代码或重启内核的情况下,运行、加载和更新用户定义的代码。这种功能让 eBPF 在网络和系统性能分析、数据包过滤、安全策略等方面有了广泛的应用。 在本篇教程中,我们将展示如何

    2024年02月07日
    浏览(7)
  • 【Learning eBPF-2】eBPF 的“Hello world”

    【Learning eBPF-2】eBPF 的“Hello world”

    前一章讲了 eBPF 为什么这么吊,不理解没关系,现在开始,我们通过一个 “Hello world” 例子,来真正入门一下。 BCC Python 框架是上手 eBPF 的最友好方式。来看。 下面的程序是一段 BCC 框架的 Hello World 程序。 这段程序包含了两部分: 运行在内核态的 eBPF 程序本身( hello() );

    2024年04月08日
    浏览(7)
  • 【eBPF-01】初见:基于 BCC 框架的第一个 eBPF 程序

    【eBPF-01】初见:基于 BCC 框架的第一个 eBPF 程序

    闲言少叙,本文记录了如何零基础通过 BCC 框架,入门 eBPF 程序的开发,并实现几个简易的程序。 有关 eBPF 的介绍,网络上的资料有很多,本文暂且先不深入讨论,后面会再出一篇文章详细分析其原理和功能。 我们目前只需要知道, eBPF 实际上是一种过滤器,这种过滤器 几

    2024年02月04日
    浏览(10)
  • eBPF 入门开发实践教程十:在 eBPF 中使用 hardirqs 或 softirqs 捕获中断事件

    eBPF (Extended Berkeley Packet Filter) 是 Linux 内核上的一个强大的网络和性能分析工具。它允许开发者在内核运行时动态加载、更新和运行用户定义的代码。 本文是 eBPF 入门开发实践教程的第十篇,在 eBPF 中使用 hardirqs 或 softirqs 捕获中断事件。 hardirqs 和 softirqs 是 Linux 内核中两种不

    2024年02月07日
    浏览(12)
  • [RSA议题分析] eBPF Warfare - Detecting Kernel & eBPF Rootkits with Tracee

    [RSA议题分析] eBPF Warfare - Detecting Kernel & eBPF Rootkits with Tracee

    eBPF在恶意活动检测方面仍是未知领域。随着威胁的不断出现,我们需要采取主动。参与者将了解到不同类型的rootkits,它们的攻击流程,它们的运作方式以及如何检测它们。最后,他们将学习如何使用Tracee,这是一个利用eBPF来检测这些威胁并在攻击者面前获得优势的开源工具

    2024年02月07日
    浏览(7)
  • ebpf学习

    学习ebpf相关知识 参考资料: awesome-ebpf 最开始接触到的是经典bpf,即cbpf,可以通过生成的字节码给raw socket设定过滤器,这过程中了解到了ebpf,被他的强大所吸引,过去我就对内核观测方面缺少了解,而现有的一些手段显的有点麻烦,不是那么易用,我当时就感觉ebpf可能可以

    2024年01月23日
    浏览(6)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包