最近研究EBPF在Android上的使用, 参考Android S下的eBPF, 很快实现了EBPF的demo跑起来.
但是关于BCC的运行, 却费劲不少, 下面分享下.
首先, 需要有ROOT的小米12, 然后按照eBPF on Android之bcc环境准备——eadb简版, 在小米12里安装好debian环境.
1. 下载debianfs-arm64-full.tar.gz
,当前最新版是v0.1.6
2. 在手机里, 用adb命令创建/data/eadb目录, 并把debianfs-arm64-full.tar.gz push到/data/eadb/目录下
3. 将debianfs-arm64-full.tar.gz重命名为deb.tar.gz
4. PC上下载eadb项目,进入assets
目录,把assets下的所有
脚本push到手机
5. 然后在手机里的/data/eadb目录下, 执行./device-unpack 进行解压.
6. 最后, 在/data/eadb/里运行./run debian后, 就进入debian环境了, 前缀变成了root@localhost
安装好debian环境后, 我们就准备在debian里安装BCC了
1. 先为debian系统安装编译依赖
# Before you begin
apt-get update
# According to https://packages.debian.org/source/sid/bpfcc,
# BCC build dependencies:
sudo apt-get install arping bison clang-format cmake dh-python \
dpkg-dev pkg-kde-tools ethtool flex inetutils-ping iperf \
libbpf-dev libclang-dev libclang-cpp-dev libedit-dev libelf-dev \
libfl-dev libzip-dev linux-libc-dev llvm-dev libluajit-5.1-dev \
luajit python3-netaddr python3-pyroute2 python3-distutils python3
2. 再下载和编译BCC源码
git clone https://github.com/iovisor/bcc.git
mkdir bcc/build; cd bcc/build
cmake ..
make
sudo make install
3. 最后, 进入/usr/share/bcc/tools下, 就可以使用BCC的tools了
我发现, 直接apt-get install bpfcc-tools
, python-bpfcc
, libbpfcc
and libbpfcc-dev
.这些, 貌似没效果, 只有下载编译BCC源码才能生效.