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

Commit c95189d4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Updated the fuzzer to use native service"

parents 790a455d 2b106685
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
@@ -60,15 +60,51 @@ cc_fuzz {
    static_libs: [
        "libstagefright_rtsp",
        "libbase",
        "libstagefright_nuplayer",
        "libplayerservice_datasource",
        "libstagefright_timedtext",
        "libaudioprocessing_base",
    ],
    shared_libs: [
        "android.hardware.media.omx@1.0",
        "av-types-aidl-cpp",
        "media_permission-aidl-cpp",
        "libaudioclient_aidl_conversion",
        "libactivitymanager_aidl",
        "libandroid_net",
        "libaudioclient",
        "libcamera_client",
        "libcodec2_client",
        "libcrypto",
        "libdatasource",
        "libdrmframework",
        "libgui",
        "libhidlbase",
        "liblog",
        "libmedia_codeclist",
        "libmedia_omx",
        "libmediadrm",
        "libmediametrics",
        "libmediautils",
        "libmemunreachable",
        "libnetd_client",
        "libpowermanager",
        "libstagefright_httplive",
        "packagemanager_aidl-cpp",
        "libfakeservicemanager",
        "libvibrator",
        "libnbaio",
        "libnblog",
        "libpowermanager",
        "libaudioprocessing",
        "libaudioflinger",
        "libresourcemanagerservice",
        "libmediametricsservice",
        "mediametricsservice-aidl-cpp",
    ],
    header_libs: [
        "libaudiohal_headers",
        "libaudioflinger_headers",
    ],
}

+20 −0
Original line number Diff line number Diff line
@@ -18,6 +18,10 @@
#include <media/stagefright/foundation/AString.h>
#include "fuzzer/FuzzedDataProvider.h"

#include <AudioFlinger.h>
#include <MediaPlayerService.h>
#include <ResourceManagerService.h>
#include <ServiceManager.h>
#include <StagefrightRecorder.h>
#include <camera/Camera.h>
#include <camera/android/hardware/ICamera.h>
@@ -25,6 +29,7 @@
#include <gui/Surface.h>
#include <gui/SurfaceComposerClient.h>
#include <media/stagefright/PersistentSurface.h>
#include <mediametricsservice/MediaMetricsService.h>
#include <thread>

using namespace std;
@@ -305,6 +310,21 @@ void MediaRecorderClientFuzzer::process() {
    mStfRecorder->reset();
}

extern "C" int LLVMFuzzerInitialize(int /* *argc */, char /* ***argv */) {
    /**
     * Initializing a FakeServiceManager and adding the instances
     * of all the required services
     */
    sp<IServiceManager> fakeServiceManager = new ServiceManager();
    setDefaultServiceManager(fakeServiceManager);
    MediaPlayerService::instantiate();
    AudioFlinger::instantiate();
    ResourceManagerService::instantiate();
    fakeServiceManager->addService(String16(MediaMetricsService::kServiceName),
                                    new MediaMetricsService());
    return 0;
}

extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
    MediaRecorderClientFuzzer mrcFuzzer(data, size);
    mrcFuzzer.process();