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

Commit 46f751df authored by Nandana Dutt's avatar Nandana Dutt Committed by Automerger Merge Worker
Browse files

Merge "Handle cancelBugreport" into rvc-dev am: 5f8d2338 am: 9432620e

Change-Id: Icd55a078c3aff92a1880ca1e85c1aa51a13f6613
parents b727f1be 9432620e
Loading
Loading
Loading
Loading
+3 −4
Original line number Original line Diff line number Diff line
@@ -148,14 +148,13 @@ binder::Status DumpstateService::startBugreport(int32_t calling_uid,
}
}


binder::Status DumpstateService::cancelBugreport() {
binder::Status DumpstateService::cancelBugreport() {
    // This is a no-op since the cancellation is done from java side via setting sys properties.
    std::lock_guard<std::mutex> lock(lock_);
    // See BugreportManagerServiceImpl.
    ds_->Cancel();
    // TODO(b/111441001): maybe make native and java sides use different binder interface
    // to avoid these annoyances.
    return binder::Status::ok();
    return binder::Status::ok();
}
}


status_t DumpstateService::dump(int fd, const Vector<String16>&) {
status_t DumpstateService::dump(int fd, const Vector<String16>&) {
    std::lock_guard<std::mutex> lock(lock_);
    if (ds_ == nullptr) {
    if (ds_ == nullptr) {
        dprintf(fd, "Bugreport not in progress yet");
        dprintf(fd, "Bugreport not in progress yet");
        return NO_ERROR;
        return NO_ERROR;
+16 −3
Original line number Original line Diff line number Diff line
@@ -239,6 +239,9 @@ static bool CopyFileToFd(const std::string& input_file, int out_fd) {
}
}


static bool UnlinkAndLogOnError(const std::string& file) {
static bool UnlinkAndLogOnError(const std::string& file) {
    if (file.empty()) {
        return false;
    }
    if (unlink(file.c_str())) {
    if (unlink(file.c_str())) {
        MYLOGE("Failed to unlink file (%s): %s\n", file.c_str(), strerror(errno));
        MYLOGE("Failed to unlink file (%s): %s\n", file.c_str(), strerror(errno));
        return false;
        return false;
@@ -246,7 +249,6 @@ static bool UnlinkAndLogOnError(const std::string& file) {
    return true;
    return true;
}
}



int64_t GetModuleMetadataVersion() {
int64_t GetModuleMetadataVersion() {
    auto binder = defaultServiceManager()->getService(android::String16("package_native"));
    auto binder = defaultServiceManager()->getService(android::String16("package_native"));
    if (binder == nullptr) {
    if (binder == nullptr) {
@@ -2419,6 +2421,17 @@ Dumpstate::RunStatus Dumpstate::Run(int32_t calling_uid, const std::string& call
    return status;
    return status;
}
}


void Dumpstate::Cancel() {
    CleanupTmpFiles();
    android::os::UnlinkAndLogOnError(log_path_);
    for (int i = 0; i < NUM_OF_DUMPS; i++) {
        android::os::UnlinkAndLogOnError(ds.bugreport_internal_dir_ + "/" +
                                         kDumpstateBoardFiles[i]);
    }
    tombstone_data_.clear();
    anr_data_.clear();
}

/*
/*
 * Dumps relevant information to a bugreport based on the given options.
 * Dumps relevant information to a bugreport based on the given options.
 *
 *
@@ -2755,7 +2768,7 @@ bool Dumpstate::CalledByApi() const {
    return ds.options_->bugreport_fd.get() != -1 ? true : false;
    return ds.options_->bugreport_fd.get() != -1 ? true : false;
}
}


void Dumpstate::CleanupFiles() {
void Dumpstate::CleanupTmpFiles() {
    android::os::UnlinkAndLogOnError(tmp_path_);
    android::os::UnlinkAndLogOnError(tmp_path_);
    android::os::UnlinkAndLogOnError(screenshot_path_);
    android::os::UnlinkAndLogOnError(screenshot_path_);
    android::os::UnlinkAndLogOnError(path_);
    android::os::UnlinkAndLogOnError(path_);
@@ -2763,7 +2776,7 @@ void Dumpstate::CleanupFiles() {


Dumpstate::RunStatus Dumpstate::HandleUserConsentDenied() {
Dumpstate::RunStatus Dumpstate::HandleUserConsentDenied() {
    MYLOGD("User denied consent; deleting files and returning\n");
    MYLOGD("User denied consent; deleting files and returning\n");
    CleanupFiles();
    CleanupTmpFiles();
    return USER_CONSENT_DENIED;
    return USER_CONSENT_DENIED;
}
}


+4 −1
Original line number Original line Diff line number Diff line
@@ -334,6 +334,9 @@ class Dumpstate {


    RunStatus ParseCommandlineAndRun(int argc, char* argv[]);
    RunStatus ParseCommandlineAndRun(int argc, char* argv[]);


    /* Deletes in-progress files */
    void Cancel();

    /* Sets runtime options. */
    /* Sets runtime options. */
    void SetOptions(std::unique_ptr<DumpOptions> options);
    void SetOptions(std::unique_ptr<DumpOptions> options);


@@ -502,7 +505,7 @@ class Dumpstate {


    // Removes the in progress files output files (tmp file, zip/txt file, screenshot),
    // Removes the in progress files output files (tmp file, zip/txt file, screenshot),
    // but leaves the log file alone.
    // but leaves the log file alone.
    void CleanupFiles();
    void CleanupTmpFiles();


    RunStatus HandleUserConsentDenied();
    RunStatus HandleUserConsentDenied();