![在 systemd-nspawn 容器中使用 adb(android 调试桥)](https://linux22.com/image/184746/%E5%9C%A8%20systemd-nspawn%20%E5%AE%B9%E5%99%A8%E4%B8%AD%E4%BD%BF%E7%94%A8%20adb%EF%BC%88android%20%E8%B0%83%E8%AF%95%E6%A1%A5%EF%BC%89.png)
我想在 systemd-nspawn 容器中使用 adb。不幸的是我无法访问容器内的手机(通过 USB 连接)。
pi@debian-buster-64:~ $ export ADB_TRACE=usb
pi@debian-buster-64:~ $ adb devices
List of devices attached
* daemon not running; starting now at tcp:5037
* daemon started successfully
pi@debian-buster-64:~ $
这是容器设置 /etc/systemd/nspawn/debian-buster-64.nspawn:
[Exec]
PrivateUsers=no
Capability=CAP_NET_ADMIN
[Files]
Bind=/home
Bind=/run/user:/run/host-user/
BindReadOnly=/etc/resolv.conf
[Network]
Private=no
VirtualEthernet=no
以下是容器内部 lsusb 的输出:
pi@debian-buster-64:~ $ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 009: ID 045e:07b2 Microsoft Corp. 2.4GHz Transceiver v8.0 used by mouse Wireless Desktop 900
Bus 001 Device 010: ID 18d1:4ee7 Google Inc.
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
lsusb 的输出与主机上的输出相同,并且手机(Google Inc.)可见。
我想在容器内使用 adb,因为容器是 64 位(主机只有 32 位)。不幸的是,32 位上的 adb 有限制。使用 adb 进行访问可以在主机上运行(具有上述 32 位限制)。有什么想法如何让它在容器内工作吗?