# 抓包/调试权限常见问题

## ohos.permission.kernel.NET_RAW权限使用说明

**约束与限制：**

* 仅支持在PC/2in1设备上申请使用。
* 在PC/2in1设备上，二进制程序可以申请ohos.permission.kernel.NET_RAW权限进行网络抓包，使用时需要sudo提权使权限生效。

**使用说明：**

以[tcpdump工具](https://gitcode.host/OpenHarmonyToolkitsPlaza/tcpdump)为例，使用[二进制签名工具](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/binary-sign-tool)签名时在module.json文件中配置ohos.permission.kernel.NET_RAW权限。

```json
{
    "requestPermissions": [
        {
            "name": "ohos.permission.kernel.NET_RAW"
        }
    ]
}
```

在hishell终端中使用sudo提权执行携带ohos.permission.kernel.NET_RAW权限的tcpdump，认证成功后可以进行下述操作：

* 支持通过PF_PACKET协议族创建PACKET类型套接字，在数据链路层直接捕获原始网络帧。
* 支持通过NETLINK_ROUTE和NETLINK_GENERIC类型的netlink套接字与内核通信，可以查询和管理网络接口。

```shell
# 示例
sudo ./tcpdump
```

## ohos.permission.kernel.DEBUGGER权限使用说明

**约束与限制：**

* 仅支持在PC/2in1设备上申请使用。

* 仅允许调试同UID进程。

* 在PC/2in1设备上，二进制程序或应用申请ohos.permission.kernel.DEBUGGER权限后，可作为调试方，调试与其具有相同UID的以下内容：

  1. 自签名的二进制程序。
  2. 调试证书签名的应用/二进制程序。
  3. 由发布证书签名且具备 ohos.permission.kernel.ALLOW_DEBUG 权限的应用/二进制程序。

**使用说明：**

以[lldb高性能调试器](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/debug-lldb)为例，使用[二进制签名工具](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/binary-sign-tool)签名时在module.json文件中配置ohos.permission.kernel.DEBUGGER权限。

```json
{
    "requestPermissions": [
        {
            "name": "ohos.permission.kernel.DEBUGGER"
        }
    ]
}
```

在hishell终端中，使用携带ohos.permission.kernel.DEBUGGER权限的lldb工具，以ATTACH模式附加到调试证书签名的debug_bin进行调试。

```shell
# 示例：
# 确认UID一致
UID            PID  PPID C STIME TTY          TIME CMD
20020109     50262 32365 0 17:29:41 ?     00:00:00 lldb
20020109     52219 50262 0 17:31:15 ?     00:00:00 lldb-server
20020109     57631 13564 0 17:31:15 ?     00:00:00 debug_bin

# 附加到目标进程
(lldb) process attach --name debug_bin
```

## ohos.permission.kernel.ALLOW_DEBUG使用说明

**约束与限制：**

* 仅支持在PC/2in1设备上申请使用。

* 在PC/2in1设备上，二进制程序或应用申请ohos.permission.kernel.ALLOW_DEBUG权限后，可作为被调试方，支持被同UID且具备ohos.permission.kernel.DEBUGGER权限的二进制程序或应用调试。

  此外，Deveco Studio在使用真机设备调试时，如果PC/2in1设备上的应用使用了release签名并且配置了ohos.permission.kernel.ALLOW_DEBUG权限，也支持被attach调试。

**使用说明：**

以DevEco Studio真机设备调试PC应用为例，在应用的module.json5文件中配置ohos.permission.kernel.ALLOW_DEBUG权限。

```json5
{
    "requestPermissions": [
        {
            "name": "ohos.permission.kernel.ALLOW_DEBUG"
        }
    ]
}
```

在DecEco Studio调试器的进程列表中可以查看到携带ohos.permission.kernel.ALLOW_DEBUG权限的发布应用进程，选择目标进程后即可进行附加并调试，具体可参考[应用调试](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-debug-app)。

