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

Commit 1f3d886c authored by Abhijeet Kaur's avatar Abhijeet Kaur
Browse files

Remove screenshot_fd as optional param

Binder does not allow invalid fd to be passed in function calls, so
remove "optional" in IDumpstate.aidl

Also, remove TODO to make screenshot fd optional, as the binder call
requires valid screenshot fd.

Also, we do not need valid screenshot fd for lite bugreports
(wifi/telephony/interactive etc). Although the Binder makes sure that
valid fds are passed, this is just an additional check on top of that.

Bug: 128981582
Test: * adb shell mkdir /data/nativetest64
      * mmm -j frameworks/native/cmds/dumpstate/ &&
        adb push ${OUT}/data/nativetest64/dumpstate_test* /data/nativetest64 &&
	adb shell /data/nativetest64/dumpstate_test/dumpstate_test &&
	printf "\n\n#### ALL TESTS PASSED ####\n"
Change-Id: Idf6093832fea0f11f12ff2bc0fd1dcec6fd502df
parent 0a75a6ae
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -151,15 +151,15 @@ binder::Status DumpstateService::startBugreport(int32_t calling_uid,
        signalErrorAndExit(listener, IDumpstateListener::BUGREPORT_ERROR_INVALID_INPUT);
    }

    if (bugreport_fd.get() == -1 || screenshot_fd.get() == -1) {
        // TODO(b/111441001): screenshot fd should be optional
    std::unique_ptr<Dumpstate::DumpOptions> options = std::make_unique<Dumpstate::DumpOptions>();
    options->Initialize(static_cast<Dumpstate::BugreportMode>(bugreport_mode), bugreport_fd,
                        screenshot_fd);

    if (bugreport_fd.get() == -1 || (options->do_fb && screenshot_fd.get() == -1)) {
        MYLOGE("Invalid filedescriptor");
        signalErrorAndExit(listener, IDumpstateListener::BUGREPORT_ERROR_INVALID_INPUT);
    }

    std::unique_ptr<Dumpstate::DumpOptions> options = std::make_unique<Dumpstate::DumpOptions>();
    options->Initialize(static_cast<Dumpstate::BugreportMode>(bugreport_mode), bugreport_fd,
                        screenshot_fd);

    ds_ = &(Dumpstate::GetInstance());
    ds_->SetOptions(std::move(options));
+1 −1
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ interface IDumpstate {
     * @param callingUid UID of the original application that requested the report.
     * @param callingPackage package of the original application that requested the report.
     * @param bugreportFd the file to which the zipped bugreport should be written
     * @param screenshotFd the file to which screenshot should be written; optional
     * @param screenshotFd the file to which screenshot should be written
     * @param bugreportMode the mode that specifies other run time options; must be one of above
     * @param listener callback for updates; optional
     */