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

Commit eabdb615 authored by Elis Elliott's avatar Elis Elliott Committed by Android (Google) Code Review
Browse files

Merge "Add bugreport mode for debugging onboarding." into main

parents 652493db 8e401ad1
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -141,6 +141,7 @@ binder::Status DumpstateService::startBugreport(int32_t calling_uid,
        bugreport_mode != Dumpstate::BugreportMode::BUGREPORT_WEAR &&
        bugreport_mode != Dumpstate::BugreportMode::BUGREPORT_WEAR &&
        bugreport_mode != Dumpstate::BugreportMode::BUGREPORT_TELEPHONY &&
        bugreport_mode != Dumpstate::BugreportMode::BUGREPORT_TELEPHONY &&
        bugreport_mode != Dumpstate::BugreportMode::BUGREPORT_WIFI &&
        bugreport_mode != Dumpstate::BugreportMode::BUGREPORT_WIFI &&
        bugreport_mode != Dumpstate::BugreportMode::BUGREPORT_ONBOARDING &&
        bugreport_mode != Dumpstate::BugreportMode::BUGREPORT_DEFAULT) {
        bugreport_mode != Dumpstate::BugreportMode::BUGREPORT_DEFAULT) {
        MYLOGE("Invalid input: bad bugreport mode: %d", bugreport_mode);
        MYLOGE("Invalid input: bad bugreport mode: %d", bugreport_mode);
        signalErrorAndExit(listener, IDumpstateListener::BUGREPORT_ERROR_INVALID_INPUT);
        signalErrorAndExit(listener, IDumpstateListener::BUGREPORT_ERROR_INVALID_INPUT);
+3 −0
Original line number Original line Diff line number Diff line
@@ -49,6 +49,9 @@ interface IDumpstate {
    // Default mode.
    // Default mode.
    const int BUGREPORT_MODE_DEFAULT = 6;
    const int BUGREPORT_MODE_DEFAULT = 6;


    // Bugreport taken for onboarding related flows.
    const int BUGREPORT_MODE_ONBOARDING = 7;

    // Use pre-dumped data.
    // Use pre-dumped data.
    const int BUGREPORT_FLAG_USE_PREDUMPED_UI_DATA = 0x1;
    const int BUGREPORT_FLAG_USE_PREDUMPED_UI_DATA = 0x1;


+15 −0
Original line number Original line Diff line number Diff line
@@ -2176,6 +2176,11 @@ static void DumpstateWifiOnly() {
    printf("========================================================\n");
    printf("========================================================\n");
}
}


// Collects a lightweight dumpstate to be used for debugging onboarding related flows.
static void DumpstateOnboardingOnly() {
    ds.AddDir(LOGPERSIST_DATA_DIR, false);
}

Dumpstate::RunStatus Dumpstate::DumpTraces(const char** path) {
Dumpstate::RunStatus Dumpstate::DumpTraces(const char** path) {
    const std::string temp_file_pattern = ds.bugreport_internal_dir_ + "/dumptrace_XXXXXX";
    const std::string temp_file_pattern = ds.bugreport_internal_dir_ + "/dumptrace_XXXXXX";
    const size_t buf_size = temp_file_pattern.length() + 1;
    const size_t buf_size = temp_file_pattern.length() + 1;
@@ -2308,6 +2313,7 @@ static dumpstate_hal_hidl::DumpstateMode GetDumpstateHalModeHidl(
            return dumpstate_hal_hidl::DumpstateMode::CONNECTIVITY;
            return dumpstate_hal_hidl::DumpstateMode::CONNECTIVITY;
        case Dumpstate::BugreportMode::BUGREPORT_WIFI:
        case Dumpstate::BugreportMode::BUGREPORT_WIFI:
            return dumpstate_hal_hidl::DumpstateMode::WIFI;
            return dumpstate_hal_hidl::DumpstateMode::WIFI;
        case Dumpstate::BugreportMode::BUGREPORT_ONBOARDING:
        case Dumpstate::BugreportMode::BUGREPORT_DEFAULT:
        case Dumpstate::BugreportMode::BUGREPORT_DEFAULT:
            return dumpstate_hal_hidl::DumpstateMode::DEFAULT;
            return dumpstate_hal_hidl::DumpstateMode::DEFAULT;
    }
    }
@@ -2329,6 +2335,7 @@ static dumpstate_hal_aidl::IDumpstateDevice::DumpstateMode GetDumpstateHalModeAi
            return dumpstate_hal_aidl::IDumpstateDevice::DumpstateMode::CONNECTIVITY;
            return dumpstate_hal_aidl::IDumpstateDevice::DumpstateMode::CONNECTIVITY;
        case Dumpstate::BugreportMode::BUGREPORT_WIFI:
        case Dumpstate::BugreportMode::BUGREPORT_WIFI:
            return dumpstate_hal_aidl::IDumpstateDevice::DumpstateMode::WIFI;
            return dumpstate_hal_aidl::IDumpstateDevice::DumpstateMode::WIFI;
        case Dumpstate::BugreportMode::BUGREPORT_ONBOARDING:
        case Dumpstate::BugreportMode::BUGREPORT_DEFAULT:
        case Dumpstate::BugreportMode::BUGREPORT_DEFAULT:
            return dumpstate_hal_aidl::IDumpstateDevice::DumpstateMode::DEFAULT;
            return dumpstate_hal_aidl::IDumpstateDevice::DumpstateMode::DEFAULT;
    }
    }
@@ -2812,6 +2819,8 @@ static inline const char* ModeToString(Dumpstate::BugreportMode mode) {
            return "BUGREPORT_TELEPHONY";
            return "BUGREPORT_TELEPHONY";
        case Dumpstate::BugreportMode::BUGREPORT_WIFI:
        case Dumpstate::BugreportMode::BUGREPORT_WIFI:
            return "BUGREPORT_WIFI";
            return "BUGREPORT_WIFI";
        case Dumpstate::BugreportMode::BUGREPORT_ONBOARDING:
            return "BUGREPORT_ONBOARDING";
        case Dumpstate::BugreportMode::BUGREPORT_DEFAULT:
        case Dumpstate::BugreportMode::BUGREPORT_DEFAULT:
            return "BUGREPORT_DEFAULT";
            return "BUGREPORT_DEFAULT";
    }
    }
@@ -2857,6 +2866,10 @@ static void SetOptionsFromMode(Dumpstate::BugreportMode mode, Dumpstate::DumpOpt
            options->wifi_only = true;
            options->wifi_only = true;
            options->do_screenshot = false;
            options->do_screenshot = false;
            break;
            break;
        case Dumpstate::BugreportMode::BUGREPORT_ONBOARDING:
            options->onboarding_only = true;
            options->do_screenshot = false;
            break;
        case Dumpstate::BugreportMode::BUGREPORT_DEFAULT:
        case Dumpstate::BugreportMode::BUGREPORT_DEFAULT:
            break;
            break;
    }
    }
@@ -3276,6 +3289,8 @@ Dumpstate::RunStatus Dumpstate::RunInternal(int32_t calling_uid,
        DumpstateWifiOnly();
        DumpstateWifiOnly();
    } else if (options_->limited_only) {
    } else if (options_->limited_only) {
        DumpstateLimitedOnly();
        DumpstateLimitedOnly();
    } else if (options_->onboarding_only) {
        DumpstateOnboardingOnly();
    } else {
    } else {
        // Dump state for the default case. This also drops root.
        // Dump state for the default case. This also drops root.
        RunStatus s = DumpstateDefaultAfterCritical();
        RunStatus s = DumpstateDefaultAfterCritical();
+2 −0
Original line number Original line Diff line number Diff line
@@ -201,6 +201,7 @@ class Dumpstate {
        BUGREPORT_WEAR = android::os::IDumpstate::BUGREPORT_MODE_WEAR,
        BUGREPORT_WEAR = android::os::IDumpstate::BUGREPORT_MODE_WEAR,
        BUGREPORT_TELEPHONY = android::os::IDumpstate::BUGREPORT_MODE_TELEPHONY,
        BUGREPORT_TELEPHONY = android::os::IDumpstate::BUGREPORT_MODE_TELEPHONY,
        BUGREPORT_WIFI = android::os::IDumpstate::BUGREPORT_MODE_WIFI,
        BUGREPORT_WIFI = android::os::IDumpstate::BUGREPORT_MODE_WIFI,
        BUGREPORT_ONBOARDING = android::os::IDumpstate::BUGREPORT_MODE_ONBOARDING,
        BUGREPORT_DEFAULT = android::os::IDumpstate::BUGREPORT_MODE_DEFAULT
        BUGREPORT_DEFAULT = android::os::IDumpstate::BUGREPORT_MODE_DEFAULT
    };
    };


@@ -412,6 +413,7 @@ class Dumpstate {
        bool show_header_only = false;
        bool show_header_only = false;
        bool telephony_only = false;
        bool telephony_only = false;
        bool wifi_only = false;
        bool wifi_only = false;
        bool onboarding_only = false;
        // Trimmed-down version of dumpstate to only include whitelisted logs.
        // Trimmed-down version of dumpstate to only include whitelisted logs.
        bool limited_only = false;
        bool limited_only = false;
        // Whether progress updates should be published.
        // Whether progress updates should be published.