通过包名查找应用的uid
➜ adb shell cat /data/system/packages.xml | grep com.xzh.hbls
<package name="com.xzh.hbls" codePath="/data/app/com.xzh.hbls-htP4fJSjJ2QQGmIifZ6xpA==" nativeLibraryPath="/data/app/com.xzh.hbls-htP4fJSjJ2QQGmIifZ6xpA==/lib" publicFlags="940064324" privateFlags="0" ft="177e2c42790" it="177e2c434ca" ut="177e2c434ca" version="80" userId="10106">关闭某个uid的上网权限
➜ adb shell iptables -I fw_OUTPUT -m owner --uid-owner 10106 -j DROP
➜ adb shell iptables -I fw_INPUT -m owner --uid-owner 10106 -j DROP
下面是一键的脚本,需要在root模式下运行。
需要禁网的包名
packages=com.baidu.homework
uid=$(cat /data/system/packages.xml|grep $packages|grep codePath|sed 's/.userId="([0-9])".*/\1/g')
iptables -I fw_OUTPUT -m owner --uid-owner $uid -j DROP
iptables -I fw_OUTPUT -m owner --uid-owner $uid -j DROP