aboutsummaryrefslogblamecommitdiff
path: root/Android.bp
blob: bf37757d6fc40f3778d9b0500e8793f08a36d0e3 (plain) (tree)
1
2
3
4
5
6
7
8
9

                       




                       

           
                 







                                 
                                


                                                       

                        
             


                              
            
    



                    


















                        



                   


                
                       
                         





                   




                            












                          



                           
                            












                          




                            












                          



                            












                          

                       



                
                 






                          
                                              






                                                                                  

                      


         
                   





                       


    

                      
                         


























                                      




                   

                                          
    
 
 






                         
                      


    





                            

         
                                             
    
 

                              
    
 
 

                       

         
                                     

    


            
    
 
 


                         


                   
    
 






                        

    


                   
    
 


                


         
                                  
    
 


                              

    
 













































































































                                                                                  


                    
cc_defaults {
  name: "afl-defaults",

  local_include_dirs: [
    "include",
    "instrumentation",
  ],

  cflags: [
    "-flto=full",
    "-funroll-loops",
    "-Wno-pointer-sign",
    "-Wno-pointer-arith",
    "-Wno-sign-compare",
    "-Wno-unused-parameter",
    "-Wno-unused-function",
    "-Wno-format",
    "-Wno-user-defined-warnings",
    "-DAFL_LLVM_USE_TRACE_PC=1",
    "-DBIN_PATH=\"out/host/linux-x86/bin\"",
    "-DDOC_PATH=\"out/host/linux-x86/shared/doc/afl\"",
    "-D__USE_GNU",
    "-DDEBUG_BUILD",
    "-U_FORTIFY_SOURCE",
    "-ggdb3",
    "-g",
    "-O0",
    "-fno-omit-frame-pointer",
    "-fPIC",
  ],

  target: {
    android_arm64: {
      cflags: [
        "-D__ANDROID__",
      ],
    },
    android_arm: {
      cflags: [
        "-D__ANDROID__",
      ],
    },
    android_x86_64: {
      cflags: [
        "-D__ANDROID__",
      ],
    },
    android_x86: {
      cflags: [
        "-D__ANDROID__",
      ],
    },
  },
}

cc_binary {
  name: "afl-fuzz",
  sanitize: {
    never: true,
  },
  host_supported: true,
  compile_multilib: "64",

  defaults: [
    "afl-defaults",
  ],

  srcs: [
    "src/afl-fuzz*.c",
    "src/afl-common.c",
    "src/afl-sharedmem.c",
    "src/afl-forkserver.c",
    "src/afl-performance.c",
  ],
}

cc_binary {
  name: "afl-showmap",
  static_executable: true,
  host_supported: true,

  defaults: [
    "afl-defaults",
  ],

  srcs: [
    "src/afl-showmap.c",
    "src/afl-common.c",
    "src/afl-sharedmem.c",
    "src/afl-forkserver.c",
    "src/afl-performance.c",
  ],
}

cc_binary {
  name: "afl-tmin",
  static_executable: true,
  host_supported: true,

  defaults: [
    "afl-defaults",
  ],

  srcs: [
    "src/afl-tmin.c",
    "src/afl-common.c",
    "src/afl-sharedmem.c",
    "src/afl-forkserver.c",
    "src/afl-performance.c",
  ],
}

cc_binary {
  name: "afl-analyze",
  static_executable: true,
  host_supported: true,

  defaults: [
    "afl-defaults",
  ],

  srcs: [
    "src/afl-analyze.c",
    "src/afl-common.c",
    "src/afl-sharedmem.c",
    "src/afl-performance.c",
  ],
}

cc_binary {
  name: "afl-gotcpu",
  static_executable: true,
  host_supported: true,

  defaults: [
    "afl-defaults",
  ],

  srcs: [
    "src/afl-gotcpu.c",
    "src/afl-common.c",
  ],
}

cc_binary_host {
  name: "afl-cc",
  static_executable: true,

  defaults: [
    "afl-defaults",
  ],

  cflags: [
    "-DAFL_PATH=\"out/host/linux-x86/lib64\"",
    "-DAFL_CLANG_FLTO=\"-flto=full\"",
    "-DUSE_BINDIR=1",
    "-DLLVM_BINDIR=\"prebuilts/clang/host/linux-x86/clang-r383902b/bin\"",
    "-DLLVM_LIBDIR=\"prebuilts/clang/host/linux-x86/clang-r383902b/lib64\"",
    "-DCLANGPP_BIN=\"prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang++\"",
    "-DAFL_REAL_LD=\"prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld\"",
    "-DLLVM_LTO=1",
    "-DLLVM_MAJOR=11",
    "-DLLVM_MINOR=2",
  ],

  srcs: [
    "src/afl-cc.c",
    "src/afl-common.c",
  ],

  symlinks: [
    "afl-clang-fast",
    "afl-clang-fast++",
  ],
}

cc_library_static {
  name: "afl-llvm-rt",
  compile_multilib: "64",
  vendor_available: true,
  host_supported: true,
  recovery_available: true,
  sdk_version: "9",

  apex_available: [
    "com.android.adbd",
    "com.android.appsearch",
    "com.android.art",
    "com.android.bluetooth.updatable",
    "com.android.cellbroadcast",
    "com.android.conscrypt",
    "com.android.extservices",
    "com.android.cronet",
    "com.android.neuralnetworks",
    "com.android.media",
    "com.android.media.swcodec",
    "com.android.mediaprovider",
    "com.android.permission",
    "com.android.runtime",
    "com.android.resolv",
    "com.android.tethering",
    "com.android.wifi",
    "com.android.sdkext",
    "com.android.os.statsd",
    "//any",
  ],

  defaults: [
    "afl-defaults",
  ],

  srcs: [
    "instrumentation/afl-compiler-rt.o.c",
  ],
}

cc_library_headers {
  name: "libafl_headers",
  vendor_available: true,
  host_supported: true,

  export_include_dirs: [
    "include",
    "instrumentation",
  ],
}

cc_prebuilt_library_static {
  name: "libfrida-gum",
  compile_multilib: "64",
  strip: {
    none: true,
  },

  srcs: [
    "utils/afl_frida/android/libfrida-gum.a",
  ],

  export_include_dirs: [
    "utils/afl_frida/android",
  ],
}

cc_library_shared {
  name: "libtestinstr",

  srcs: [
    "utils/afl_frida/libtestinstr.c",
  ],

  cflags: [
    "-O0",
    "-fPIC",
  ],
}

cc_binary {
  name: "afl-frida",
  compile_multilib: "64",

  defaults: [
    "afl-defaults",
  ],

  cflags: [
    "-g",
    "-O0",
    "-Wno-format",
    "-Wno-pointer-sign",
    "-fpermissive",
    "-fPIC",
  ],

  static_libs: [
    "afl-llvm-rt",
    "libfrida-gum",
  ],

  shared_libs: [
    "libdl",
    "liblog",
  ],

  srcs: [
    "utils/afl_frida/afl-frida.c",
  ],

  local_include_dirs: [
    "utils/afl_frida",
    "utils/afl_frida/android",
  ],
}

cc_binary {
  name: "afl-fuzz-32",
  sanitize: {
    never: true,
  },
  host_supported: true,
  compile_multilib: "32",

  defaults: [
    "afl-defaults",
  ],

  srcs: [
    "src/afl-fuzz*.c",
    "src/afl-common.c",
    "src/afl-sharedmem.c",
    "src/afl-forkserver.c",
    "src/afl-performance.c",
  ],
}

cc_binary_host {
  name: "afl-cc-32",
  compile_multilib: "32",
  static_executable: true,

  defaults: [
    "afl-defaults",
  ],

  cflags: [
    "-DAFL_PATH=\"out/host/linux-x86/lib64\"",
    "-DAFL_CLANG_FLTO=\"-flto=full\"",
    "-DUSE_BINDIR=1",
    "-DLLVM_BINDIR=\"prebuilts/clang/host/linux-x86/clang-r383902b/bin\"",
    "-DLLVM_LIBDIR=\"prebuilts/clang/host/linux-x86/clang-r383902b/lib64\"",
    "-DCLANGPP_BIN=\"prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang++\"",
    "-DAFL_REAL_LD=\"prebuilts/clang/host/linux-x86/clang-r383902b/bin/ld.lld\"",
    "-DLLVM_LTO=1",
    "-DLLVM_MAJOR=11",
    "-DLLVM_MINOR=2",
  ],

  srcs: [
    "src/afl-cc.c",
    "src/afl-common.c",
  ],

  symlinks: [
    "afl-clang-fast-32",
    "afl-clang-fast++-32",
  ],
}

cc_library_static {
  name: "afl-llvm-rt-32",
  compile_multilib: "32",
  vendor_available: true,
  host_supported: true,
  recovery_available: true,
  sdk_version: "9",

  apex_available: [
    "com.android.adbd",
    "com.android.appsearch",
    "com.android.art",
    "com.android.bluetooth.updatable",
    "com.android.cellbroadcast",
    "com.android.conscrypt",
    "com.android.extservices",
    "com.android.cronet",
    "com.android.neuralnetworks",
    "com.android.media",
    "com.android.media.swcodec",
    "com.android.mediaprovider",
    "com.android.permission",
    "com.android.runtime",
    "com.android.resolv",
    "com.android.tethering",
    "com.android.wifi",
    "com.android.sdkext",
    "com.android.os.statsd",
    "//any",
  ],

  defaults: [
    "afl-defaults",
  ],

  srcs: [
    "instrumentation/afl-compiler-rt.o.c",
  ],
}

cc_prebuilt_library_static {
  name: "libfrida-gum-32",
  compile_multilib: "32",
  strip: {
    none: true,
  },

  srcs: [
    "utils/afl_frida/android/arm/libfrida-gum.a",
  ],

  export_include_dirs: [
    "utils/afl_frida/android/arm",
  ],
}

subdirs = [
  "custom_mutators",
]