From bb477f9a8dd8f56671c19e2f56200aa59001f20a Mon Sep 17 00:00:00 2001 From: CCCC-L <993641484@qq.com> Date: Fri, 19 Jul 2024 15:07:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E5=8F=91=E9=80=81Binder=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=9A=84=E6=97=B6=E6=9C=BA=E5=BE=80=E5=90=8E=E8=B0=83?= =?UTF-8?q?=E5=88=B0trace=5Fbinder=5Ftransaction=E5=89=8D=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 1 + drivers/android/binder.c | 24 +++++++++--------------- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7bbfb54ac..435d2c0fd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,6 +20,7 @@ jobs: - name: Checkout Repo uses: actions/checkout@v4 + - name: install gcc、clang run: | git clone https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_aarch64_aarch64-linux-android-4.9 toolchain/gcc/linux-x86/aarch64/aarch64-linux-android-4.9 diff --git a/drivers/android/binder.c b/drivers/android/binder.c index 273771765..2b04377b9 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -3360,13 +3360,6 @@ static void binder_transaction(struct binder_proc *proc, target_proc = target_thread->proc; target_proc->tmp_ref++; binder_inner_proc_unlock(target_thread->proc); -#ifdef CONFIG_RE_KERNEL - if (target_proc - && target_proc->tsk - && task_uid(target_proc->tsk).val <= MAX_SYSTEM_UID - && proc->pid != target_proc->pid) - rekernel_report(BINDER, REPLY, proc->pid, proc->tsk, target_proc->pid, target_proc->tsk, false); -#endif /* CONFIG_RE_KERNEL */ } else { if (tr->target.handle) { struct binder_ref *ref; @@ -3420,14 +3413,6 @@ static void binder_transaction(struct binder_proc *proc, } e->to_node = target_node->debug_id; -#ifdef CONFIG_RE_KERNEL - if (target_proc - && target_proc->tsk - && task_uid(target_proc->tsk).val > MIN_USERAPP_UID - && proc->pid != target_proc->pid) - rekernel_report(BINDER, TRANSACTION, proc->pid, proc->tsk, target_proc->pid, target_proc->tsk, !!(tr->flags & TF_ONE_WAY)); -#endif - #ifdef CONFIG_SAMSUNG_FREECESS freecess_sync_binder_report(proc, target_proc, tr); #endif @@ -3641,6 +3626,15 @@ static void binder_transaction(struct binder_proc *proc, t->buffer->debug_id = t->debug_id; t->buffer->transaction = t; t->buffer->target_node = target_node; +#ifdef CONFIG_RE_KERNEL + if (!reply) { + if (target_proc + && target_proc->tsk + && task_uid(target_proc->tsk).val > MIN_USERAPP_UID + && proc->pid != target_proc->pid) + rekernel_report(BINDER, TRANSACTION, proc->pid, proc->tsk, target_proc->pid, target_proc->tsk, !!(tr->flags & TF_ONE_WAY)); + } +#endif trace_binder_transaction_alloc_buf(t->buffer); if (binder_alloc_copy_user_to_buffer(