Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c436669 authored by Rubin Xu's avatar Rubin Xu Committed by android-build-merger
Browse files

Merge "ADB security logging" am: 8dfe21ea

am: e37103a3

* commit 'e37103a3':
  ADB security logging
parents 113f88e3 e37103a3
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@

#include <dirent.h>
#include <errno.h>
#include <log/log.h>
#include <selinux/android.h>
#include <stdio.h>
#include <stdlib.h>
@@ -34,6 +35,7 @@
#include "adb_io.h"
#include "adb_utils.h"
#include "private/android_filesystem_config.h"
#include "security_log_tags.h"

#include <android-base/stringprintf.h>
#include <android-base/strings.h>
@@ -146,6 +148,8 @@ static bool handle_send_file(int s, const char* path, uid_t uid,
    syncmsg msg;
    unsigned int timestamp = 0;

    __android_log_security_bswrite(SEC_TAG_ADB_SEND_FILE, path);

    int fd = adb_open_mode(path, O_WRONLY | O_CREAT | O_EXCL | O_CLOEXEC, mode);
    if (fd < 0 && errno == ENOENT) {
        if (!secure_mkdirs(adb_dirname(path))) {
@@ -314,6 +318,8 @@ static bool do_send(int s, const std::string& spec, std::vector<char>& buffer) {
}

static bool do_recv(int s, const char* path, std::vector<char>& buffer) {
    __android_log_security_bswrite(SEC_TAG_ADB_RECV_FILE, path);

    int fd = adb_open(path, O_RDONLY | O_CLOEXEC);
    if (fd < 0) {
        SendSyncFailErrno(s, "open failed");
+28 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2016 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#ifndef __SECURITY_LOG_TAGS_H
#define __SECURITY_LOG_TAGS_H

/* TODO: Automatically generate this file from the logtags file when build
 * infrastructure is in place.
 * Defined in frameworks/base/core/java/android/auditing/SecurityLog.logtags
 */
#define SEC_TAG_ADB_SHELL_INTERACTIVE 210001
#define SEC_TAG_ADB_SHELL_CMD         210002
#define SEC_TAG_ADB_RECV_FILE         210003
#define SEC_TAG_ADB_SEND_FILE         210004

#endif
+8 −0
Original line number Diff line number Diff line
@@ -95,11 +95,13 @@
#include <android-base/logging.h>
#include <android-base/stringprintf.h>
#include <paths.h>
#include <log/log.h>

#include "adb.h"
#include "adb_io.h"
#include "adb_trace.h"
#include "adb_utils.h"
#include "security_log_tags.h"

namespace {

@@ -240,6 +242,12 @@ bool Subprocess::ForkAndExec() {
    ScopedFd parent_error_sfd, child_error_sfd;
    char pts_name[PATH_MAX];

    if (command_.empty()) {
        __android_log_security_bswrite(SEC_TAG_ADB_SHELL_INTERACTIVE, "");
    } else {
        __android_log_security_bswrite(SEC_TAG_ADB_SHELL_CMD, command_.c_str());
    }

    // Create a socketpair for the fork() child to report any errors back to the parent. Since we
    // use threads, logging directly from the child might deadlock due to locks held in another
    // thread during the fork.