1# Copyright (c) 2023 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14developer_only(`
15
16# If an lldb client is used for remotely debugging an application with a
17# OpenHarmony device, hdc is utilized to pull necessary binary and dso files
18# (e.g. /system/bin/appspawn and /lib/ld-musl-aarch64.so.1). If such files
19# cannot be pulled from the device, the lldb client was not able to resolve any
20# of dso files loaded by an application, therefore breakpoints cannot be set on
21# any of loaded dso.
22allow hdcd appspawn_exec:file { getattr read open };
23allow hdcd cjappspawn_exec:file { getattr read open };
24
25# Allow users using hdc to upload lldb-server to subdirectories under
26# /data/local/tmp/lldb-server/
27allow hdcd lldb_server_file:file { write create setattr read append open getattr
28    unlink };
29allow hdcd lldb_server_file:dir { add_name remove_name write create setattr
30    search getattr read open };
31# Before connecting to lldb-server, users have to create a network forwarding
32# by hdc fport to the Unix abstraact socket listened by lldb-server.
33allow hdcd lldb_server:unix_stream_socket { connectto };
34
35')
36