)]}'
{
  "log": [
    {
      "commit": "1dc77abf87d303a8f4aa35148c57f7ab20832222",
      "tree": "61f4aae7377072ad2a1f24e62043b86a6f49954c",
      "parents": [
        "496b9b43c987a2d769d0c178ee1d88cd92da84d9"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon May 10 17:44:05 2021 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed May 19 14:31:13 2021 +0000"
      },
      "message": "Disable most ART source modules when ART prebuilts are enabled.\n\nAfter libdexfile_external was merged into libdexfile, libdexfile is an\nAPEX stub when prebuilts are enabled, and that cannot be used to build\nlibart and all the other internal modules that depend on it.\n\nThis CL:\n\n- Changes art_defaults to disable native modules when building from\n  prebuilts. Some other modules that depends on them, like the\n  art-script sh_binary, also get disabled.\n- Consolidates the makefile sections that are disabled when building\n  from prebuilts so that only a small bit is still enabled then.\n- Temporarily removes the prebuilt for libctstiagent and activates its\n  source even when prebuilts are used, to work around sdk_version\n  problem (b/187288515).\n- Removes explicit \"enabled: true\" in a couple of places that would\n  override the inherited flag that lets us disable them in builds from\n  prebuilts.\n- Makes some Soong defaults available to libcore.\n\nTest: m checkbuild\nTest: art/build/build-art-module.sh --skip-apex\n      packages/modules/ArtPrebuilt/update-art-module-prebuilts.py \\\n        --local-dist out/dist/ --skip-apex\n      m SOONG_CONFIG_art_module_source_build\u003dfalse droid\n      m SOONG_CONFIG_art_module_source_build\u003dfalse checkbuild\nChange-Id: Ief60b933cd6273fc8b85fe7637b99ba1b78505f6\n"
    },
    {
      "commit": "9150de6901996679c0ea6b34e74c8ddcc718d309",
      "tree": "496386b00b2a1b0b3bfbc36b09cf8083e3922f9b",
      "parents": [
        "8da26145fba859a5aba047f6280568565ffb8bfc"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 26 03:22:24 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 02 07:18:14 2021 +0000"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to art\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  adbconnection/Android.bp\n  benchmark/Android.bp\n  build/Android.bp\n  build/Android.cpplint.mk\n  build/Android.gtest.mk\n  build/apex/Android.bp\n  build/boot/Android.bp\n  build/sdk/Android.bp\n  cmdline/Android.bp\n  compiler/Android.bp\n  dalvikvm/Android.bp\n  dex2oat/Android.bp\n  dexdump/Android.bp\n  dexlayout/Android.bp\n  dexlist/Android.bp\n  dexoptanalyzer/Android.bp\n  disassembler/Android.bp\n  dt_fd_forward/export/Android.bp\n  imgdiag/Android.bp\n  libartbase/Android.bp\n  libartpalette/Android.bp\n  libartservice/Android.bp\n  libartservice/tests/Android.bp\n  libarttools/Android.bp\n  libdexfile/Android.bp\n  libelffile/Android.bp\n  libnativebridge/Android.bp\n  libnativebridge/tests/Android.bp\n  libnativeloader/Android.bp\n  libnativeloader/test/Android.bp\n  libnativeloader/test/Android.mk\n  libprofile/Android.bp\n  oatdump/Android.bp\n  odrefresh/Android.bp\n  perfetto_hprof/Android.bp\n  profman/Android.bp\n  runtime/Android.bp\n  simulator/Android.bp\n  test/001-HelloWorld/Android.bp\n  test/001-Main/Android.bp\n  test/002-sleep/Android.bp\n  test/004-InterfaceTest/Android.bp\n  test/004-SignalTest/Android.bp\n  test/004-UnsafeTest/Android.bp\n  test/004-checker-UnsafeTest18/Android.bp\n  test/006-args/Android.bp\n  test/007-count10/Android.bp\n  test/009-instanceof/Android.bp\n  test/010-instance/Android.bp\n  test/011-array-copy/Android.bp\n  test/012-math/Android.bp\n  test/013-math2/Android.bp\n  test/014-math3/Android.bp\n  test/015-switch/Android.bp\n  test/016-intern/Android.bp\n  test/017-float/Android.bp\n  test/018-stack-overflow/Android.bp\n  test/019-wrong-array-type/Android.bp\n  test/020-string/Android.bp\n  test/021-string2/Android.bp\n  test/022-interface/Android.bp\n  test/025-access-controller/Android.bp\n  test/026-access/Android.bp\n  test/027-arithmetic/Android.bp\n  test/028-array-write/Android.bp\n  test/029-assert/Android.bp\n  test/030-bad-finalizer/Android.bp\n  test/033-class-init-deadlock/Android.bp\n  test/034-call-null/Android.bp\n  test/035-enum/Android.bp\n  test/036-finalizer/Android.bp\n  test/037-inherit/Android.bp\n  test/038-inner-null/Android.bp\n  test/039-join-main/Android.bp\n  test/040-miranda/Android.bp\n  test/041-narrowing/Android.bp\n  test/043-privates/Android.bp\n  test/044-proxy/Android.bp\n  test/045-reflect-array/Android.bp\n  test/046-reflect/Android.bp\n  test/047-returns/Android.bp\n  test/048-reflect-v8/Android.bp\n  test/049-show-object/Android.bp\n  test/050-sync-test/Android.bp\n  test/051-thread/Android.bp\n  test/052-verifier-fun/Android.bp\n  test/053-wait-some/Android.bp\n  test/054-uncaught/Android.bp\n  test/055-enum-performance/Android.bp\n  test/058-enum-order/Android.bp\n  test/059-finalizer-throw/Android.bp\n  test/061-out-of-memory/Android.bp\n  test/062-character-encodings/Android.bp\n  test/063-process-manager/Android.bp\n  test/067-preemptive-unpark/Android.bp\n  test/070-nio-buffer/Android.bp\n  test/072-precise-gc/Android.bp\n  test/072-reachability-fence/Android.bp\n  test/074-gc-thrash/Android.bp\n  test/076-boolean-put/Android.bp\n  test/078-polymorphic-virtual/Android.bp\n  test/079-phantom/Android.bp\n  test/080-oom-fragmentation/Android.bp\n  test/080-oom-throw-with-finalizer/Android.bp\n  test/080-oom-throw/Android.bp\n  test/081-hot-exceptions/Android.bp\n  test/082-inline-execute/Android.bp\n  test/083-compiler-regressions/Android.bp\n  test/084-class-init/Android.bp\n  test/086-null-super/Android.bp\n  test/087-gc-after-link/Android.bp\n  test/090-loop-formation/Android.bp\n  test/092-locale/Android.bp\n  test/093-serialization/Android.bp\n  test/094-pattern/Android.bp\n  test/095-switch-MAX_INT/Android.bp\n  test/096-array-copy-concurrent-gc/Android.bp\n  test/098-ddmc/Android.bp\n  test/099-vmdebug/Android.bp\n  test/100-reflect2/Android.bp\n  test/1004-checker-volatile-ref-load/Android.bp\n  test/101-fibonacci/Android.bp\n  test/102-concurrent-gc/Android.bp\n  test/103-string-append/Android.bp\n  test/104-growth-limit/Android.bp\n  test/105-invoke/Android.bp\n  test/106-exceptions2/Android.bp\n  test/107-int-math2/Android.bp\n  test/108-check-cast/Android.bp\n  test/109-suspend-check/Android.bp\n  test/110-field-access/Android.bp\n  test/112-double-math/Android.bp\n  test/114-ParallelGC/Android.bp\n  test/115-native-bridge/Android.bp\n  test/116-nodex2oat/Android.bp\n  test/120-hashcode/Android.bp\n  test/121-simple-suspend-check/Android.bp\n  test/122-npe/Android.bp\n  test/123-compiler-regressions-mt/Android.bp\n  test/123-inline-execute2/Android.bp\n  test/125-gc-and-classloading/Android.bp\n  test/128-reg-spill-on-implicit-nullcheck/Android.bp\n  test/129-ThreadGetId/Android.bp\n  test/132-daemon-locks-shutdown/Android.bp\n  test/133-static-invoke-super/Android.bp\n  test/1336-short-finalizer-timeout/Android.bp\n  test/1337-gc-coverage/Android.bp\n  test/1339-dead-reference-safe/Android.bp\n  test/136-daemon-jni-shutdown/Android.bp\n  test/139-register-natives/Android.bp\n  test/140-dce-regression/Android.bp\n  test/140-field-packing/Android.bp\n  test/143-string-value/Android.bp\n  test/144-static-field-sigquit/Android.bp\n  test/148-multithread-gc-annotations/Android.bp\n  test/149-suspend-all-stress/Android.bp\n  test/150-loadlibrary/Android.bp\n  test/151-OpenFileLimit/Android.bp\n  test/152-dead-large-object/Android.bp\n  test/153-reference-stress/Android.bp\n  test/154-gc-loop/Android.bp\n  test/156-register-dex-file-multi-loader/Android.bp\n  test/158-app-image-class-table/Android.bp\n  test/159-app-image-fields/Android.bp\n  test/163-app-image-methods/Android.bp\n  test/165-lock-owner-proxy/Android.bp\n  test/168-vmstack-annotated/Android.bp\n  test/169-threadgroup-jni/Android.bp\n  test/170-interface-init/Android.bp\n  test/172-app-image-twice/Android.bp\n  test/174-escaping-instance-of-bad-class/Android.bp\n  test/175-alloc-big-bignums/Android.bp\n  test/176-app-image-string/Android.bp\n  test/177-visibly-initialized-deadlock/Android.bp\n  test/178-app-image-native-method/Android.bp\n  test/179-nonvirtual-jni/Android.bp\n  test/1900-track-alloc/Android.bp\n  test/1901-get-bytecodes/Android.bp\n  test/1902-suspend/Android.bp\n  test/1903-suspend-self/Android.bp\n  test/1904-double-suspend/Android.bp\n  test/1905-suspend-native/Android.bp\n  test/1906-suspend-list-me-first/Android.bp\n  test/1907-suspend-list-self-twice/Android.bp\n  test/1908-suspend-native-resume-self/Android.bp\n  test/1909-per-agent-tls/Android.bp\n  test/1910-transform-with-default/Android.bp\n  test/1911-get-local-var-table/Android.bp\n  test/1912-get-set-local-primitive/Android.bp\n  test/1913-get-set-local-objects/Android.bp\n  test/1914-get-local-instance/Android.bp\n  test/1915-get-set-local-current-thread/Android.bp\n  test/1916-get-set-current-frame/Android.bp\n  test/1917-get-stack-frame/Android.bp\n  test/1919-vminit-thread-start-timing/Android.bp\n  test/1920-suspend-native-monitor/Android.bp\n  test/1921-suspend-native-recursive-monitor/Android.bp\n  test/1922-owned-monitors-info/Android.bp\n  test/1923-frame-pop/Android.bp\n  test/1924-frame-pop-toggle/Android.bp\n  test/1925-self-frame-pop/Android.bp\n  test/1926-missed-frame-pop/Android.bp\n  test/1927-exception-event/Android.bp\n  test/1928-exception-event-exception/Android.bp\n  test/1930-monitor-info/Android.bp\n  test/1931-monitor-events/Android.bp\n  test/1932-monitor-events-misc/Android.bp\n  test/1933-monitor-current-contended/Android.bp\n  test/1934-jvmti-signal-thread/Android.bp\n  test/1935-get-set-current-frame-jit/Android.bp\n  test/1936-thread-end-events/Android.bp\n  test/1937-transform-soft-fail/Android.bp\n  test/1938-transform-abstract-single-impl/Android.bp\n  test/1939-proxy-frames/Android.bp\n  test/1941-dispose-stress/Android.bp\n  test/1942-suspend-raw-monitor-exit/Android.bp\n  test/1943-suspend-raw-monitor-wait/Android.bp\n  test/1945-proxy-method-arguments/Android.bp\n  test/1947-breakpoint-redefine-deopt/Android.bp\n  test/1949-short-dex-file/Android.bp\n  test/1951-monitor-enter-no-suspend/Android.bp\n  test/1953-pop-frame/Android.bp\n  test/1954-pop-frame-jit/Android.bp\n  test/1955-pop-frame-jit-called/Android.bp\n  test/1956-pop-frame-jit-calling/Android.bp\n  test/1957-error-ext/Android.bp\n  test/1958-transform-try-jit/Android.bp\n  test/1959-redefine-object-instrument/Android.bp\n  test/1960-checker-bounds-codegen/Android.bp\n  test/1960-obsolete-jit-multithread-native/Android.bp\n  test/1961-checker-loop-vectorizer/Android.bp\n  test/1961-obsolete-jit-multithread/Android.bp\n  test/1962-multi-thread-events/Android.bp\n  test/1963-add-to-dex-classloader-in-memory/Android.bp\n  test/1967-get-set-local-bad-slot/Android.bp\n  test/1968-force-early-return/Android.bp\n  test/1969-force-early-return-void/Android.bp\n  test/1970-force-early-return-long/Android.bp\n  test/1971-multi-force-early-return/Android.bp\n  test/1972-jni-id-swap-indices/Android.bp\n  test/1973-jni-id-swap-pointer/Android.bp\n  test/1974-resize-array/Android.bp\n  test/1975-hello-structural-transformation/Android.bp\n  test/1976-hello-structural-static-methods/Android.bp\n  test/1977-hello-structural-obsolescence/Android.bp\n  test/1978-regular-obsolete-then-structural-obsolescence/Android.bp\n  test/1979-threaded-structural-transformation/Android.bp\n  test/1980-obsolete-object-cleared/Android.bp\n  test/1982-no-virtuals-structural-redefinition/Android.bp\n  test/1984-structural-redefine-field-trace/Android.bp\n  test/1985-structural-redefine-stack-scope/Android.bp\n  test/1986-structural-redefine-multi-thread-stack-scope/Android.bp\n  test/1987-structural-redefine-recursive-stack-scope/Android.bp\n  test/1988-multi-structural-redefine/Android.bp\n  test/1989-transform-bad-monitor/Android.bp\n  test/1990-structural-bad-verify/Android.bp\n  test/1991-hello-structural-retransform/Android.bp\n  test/1992-retransform-no-such-field/Android.bp\n  test/1993-fallback-non-structural/Android.bp\n  test/1994-final-virtual-structural/Android.bp\n  test/1995-final-virtual-structural-multithread/Android.bp\n  test/1996-final-override-virtual-structural/Android.bp\n  test/1997-structural-shadow-method/Android.bp\n  test/1998-structural-shadow-field/Android.bp\n  test/1999-virtual-structural/Android.bp\n  test/2003-double-virtual-structural/Android.bp\n  test/2004-double-virtual-structural-abstract/Android.bp\n  test/2005-pause-all-redefine-multithreaded/Android.bp\n  test/2008-redefine-then-old-reflect-field/Android.bp\n  test/201-built-in-except-detail-messages/Android.bp\n  test/2011-stack-walk-concurrent-instrument/Android.bp\n  test/2019-constantcalculationsinking/Android.bp\n  test/202-thread-oome/Android.bp\n  test/2020-InvokeVirtual-Inlining/Android.bp\n  test/2021-InvokeStatic-Inlining/Android.bp\n  test/2022-Invariantloops/Android.bp\n  test/2023-InvariantLoops_typecast/Android.bp\n  test/2024-InvariantNegativeLoop/Android.bp\n  test/2025-ChangedArrayValue/Android.bp\n  test/2026-DifferentMemoryLSCouples/Android.bp\n  test/2027-TwiceTheSameMemoryCouple/Android.bp\n  test/2028-MultiBackward/Android.bp\n  test/2029-contended-monitors/Android.bp\n  test/203-multi-checkpoint/Android.bp\n  test/2030-long-running-child/Android.bp\n  test/2031-zygote-compiled-frame-deopt/Android.bp\n  test/2033-shutdown-mechanics/Android.bp\n  test/2036-jni-filechannel/Android.bp\n  test/2037-thread-name-inherit/Android.bp\n  test/2231-checker-heap-poisoning/Android.bp\n  test/2232-write-metrics-to-log/Android.bp\n  test/300-package-override/Android.bp\n  test/301-abstract-protected/Android.bp\n  test/302-float-conversion/Android.bp\n  test/304-method-tracing/Android.bp\n  test/305-other-fault-handler/Android.bp\n  test/401-optimizing-compiler/Android.bp\n  test/402-optimizing-control-flow/Android.bp\n  test/403-optimizing-long/Android.bp\n  test/404-optimizing-allocator/Android.bp\n  test/405-optimizing-long-allocator/Android.bp\n  test/406-fields/Android.bp\n  test/407-arrays/Android.bp\n  test/408-move-bug/Android.bp\n  test/409-materialized-condition/Android.bp\n  test/410-floats/Android.bp\n  test/411-checker-hdiv-hrem-const/Android.bp\n  test/411-checker-hdiv-hrem-pow2/Android.bp\n  test/411-checker-instruct-simplifier-hrem/Android.bp\n  test/411-optimizing-arith/Android.bp\n  test/413-regalloc-regression/Android.bp\n  test/414-static-fields/Android.bp\n  test/418-const-string/Android.bp\n  test/419-long-parameter/Android.bp\n  test/420-const-class/Android.bp\n  test/421-exceptions/Android.bp\n  test/421-large-frame/Android.bp\n  test/422-instanceof/Android.bp\n  test/422-type-conversion/Android.bp\n  test/423-invoke-interface/Android.bp\n  test/424-checkcast/Android.bp\n  test/426-monitor/Android.bp\n  test/427-bitwise/Android.bp\n  test/427-bounds/Android.bp\n  test/429-ssa-builder/Android.bp\n  test/430-live-register-slow-path/Android.bp\n  test/433-gvn/Android.bp\n  test/434-shifter-operand/Android.bp\n  test/435-try-finally-without-catch/Android.bp\n  test/436-rem-float/Android.bp\n  test/436-shift-constant/Android.bp\n  test/437-inline/Android.bp\n  test/438-volatile/Android.bp\n  test/439-npe/Android.bp\n  test/439-swap-double/Android.bp\n  test/440-stmp/Android.bp\n  test/441-checker-inliner/Android.bp\n  test/443-not-bool-inline/Android.bp\n  test/444-checker-nce/Android.bp\n  test/445-checker-licm/Android.bp\n  test/446-checker-inliner2/Android.bp\n  test/447-checker-inliner3/Android.bp\n  test/449-checker-bce-rem/Android.bp\n  test/449-checker-bce/Android.bp\n  test/450-checker-types/Android.bp\n  test/451-regression-add-float/Android.bp\n  test/451-spill-splot/Android.bp\n  test/454-get-vreg/Android.bp\n  test/455-checker-gvn/Android.bp\n  test/456-baseline-array-set/Android.bp\n  test/458-long-to-fpu/Android.bp\n  test/461-get-reference-vreg/Android.bp\n  test/464-checker-inline-sharpen-calls/Android.bp\n  test/465-checker-clinit-gvn/Android.bp\n  test/466-get-live-vreg/Android.bp\n  test/469-condition-materialization/Android.bp\n  test/470-huge-method/Android.bp\n  test/471-deopt-environment/Android.bp\n  test/472-type-propagation/Android.bp\n  test/473-checker-inliner-constants/Android.bp\n  test/473-remove-dead-block/Android.bp\n  test/474-checker-boolean-input/Android.bp\n  test/474-fp-sub-neg/Android.bp\n  test/475-simplify-mul-zero/Android.bp\n  test/476-checker-ctor-fence-redun-elim/Android.bp\n  test/476-checker-ctor-memory-barrier/Android.bp\n  test/476-clinit-inline-static-invoke/Android.bp\n  test/477-checker-bound-type/Android.bp\n  test/477-long-2-float-convers-precision/Android.bp\n  test/478-checker-clinit-check-pruning/Android.bp\n  test/478-checker-inline-noreturn/Android.bp\n  test/478-checker-inliner-nested-loop/Android.bp\n  test/479-regression-implicit-null-check/Android.bp\n  test/480-checker-dead-blocks/Android.bp\n  test/481-regression-phi-cond/Android.bp\n  test/482-checker-loop-back-edge-use/Android.bp\n  test/483-dce-block/Android.bp\n  test/485-checker-dce-switch/Android.bp\n  test/486-checker-must-do-null-check/Android.bp\n  test/487-checker-inline-calls/Android.bp\n  test/488-checker-inline-recursive-calls/Android.bp\n  test/489-current-method-regression/Android.bp\n  test/490-checker-inline/Android.bp\n  test/491-current-method/Android.bp\n  test/492-checker-inline-invoke-interface/Android.bp\n  test/493-checker-inline-invoke-interface/Android.bp\n  test/494-checker-instanceof-tests/Android.bp\n  test/495-checker-checkcast-tests/Android.bp\n  test/496-checker-inlining-class-loader/Android.bp\n  test/497-inlining-and-class-loader/Android.bp\n  test/499-bce-phi-array-length/Android.bp\n  test/500-instanceof/Android.bp\n  test/505-simplifier-type-propagation/Android.bp\n  test/507-boolean-test/Android.bp\n  test/507-referrer/Android.bp\n  test/508-checker-disassembly/Android.bp\n  test/508-referrer-method/Android.bp\n  test/513-array-deopt/Android.bp\n  test/514-shifts/Android.bp\n  test/519-bound-load-class/Android.bp\n  test/521-checker-array-set-null/Android.bp\n  test/521-regression-integer-field-set/Android.bp\n  test/524-boolean-simplifier-regression/Android.bp\n  test/525-checker-arrays-fields1/Android.bp\n  test/525-checker-arrays-fields2/Android.bp\n  test/526-checker-caller-callee-regs/Android.bp\n  test/526-long-regalloc/Android.bp\n  test/527-checker-array-access-simd/Android.bp\n  test/527-checker-array-access-split/Android.bp\n  test/528-long-hint/Android.bp\n  test/529-long-split/Android.bp\n  test/530-checker-loops1/Android.bp\n  test/530-checker-loops2/Android.bp\n  test/530-checker-loops3/Android.bp\n  test/530-checker-loops4/Android.bp\n  test/530-checker-loops5/Android.bp\n  test/530-checker-lse-ctor-fences/Android.bp\n  test/530-checker-lse-simd/Android.bp\n  test/530-checker-lse/Android.bp\n  test/530-checker-lse2/Android.bp\n  test/530-instanceof-checkcast/Android.bp\n  test/530-regression-lse/Android.bp\n  test/532-checker-nonnull-arrayset/Android.bp\n  test/534-checker-bce-deoptimization/Android.bp\n  test/535-deopt-and-inlining/Android.bp\n  test/536-checker-intrinsic-optimization/Android.bp\n  test/537-checker-arraycopy/Android.bp\n  test/537-checker-jump-over-jump/Android.bp\n  test/538-checker-embed-constants/Android.bp\n  test/540-checker-rtp-bug/Android.bp\n  test/542-bitfield-rotates/Android.bp\n  test/542-inline-trycatch/Android.bp\n  test/542-unresolved-access-check/Android.bp\n  test/545-tracing-and-jit/Android.bp\n  test/548-checker-inlining-and-dce/Android.bp\n  test/549-checker-types-merge/Android.bp\n  test/550-checker-multiply-accumulate/Android.bp\n  test/550-new-instance-clinit/Android.bp\n  test/551-checker-clinit/Android.bp\n  test/551-checker-shifter-operand/Android.bp\n  test/551-implicit-null-checks/Android.bp\n  test/552-checker-sharpening/Android.bp\n  test/552-checker-x86-avx2-bit-manipulation/Android.bp\n  test/554-checker-rtp-checkcast/Android.bp\n  test/555-UnsafeGetLong-regression/Android.bp\n  test/557-checker-instruct-simplifier-ror/Android.bp\n  test/558-switch/Android.bp\n  test/559-bce-ssa/Android.bp\n  test/559-checker-rtp-ifnotnull/Android.bp\n  test/560-packed-switch/Android.bp\n  test/561-divrem/Android.bp\n  test/561-shared-slowpaths/Android.bp\n  test/562-bce-preheader/Android.bp\n  test/562-checker-no-intermediate/Android.bp\n  test/563-checker-invoke-super/Android.bp\n  test/564-checker-bitcount/Android.bp\n  test/564-checker-inline-loop/Android.bp\n  test/564-checker-negbitwise/Android.bp\n  test/565-checker-condition-liveness/Android.bp\n  test/566-checker-codegen-select/Android.bp\n  test/566-polymorphic-inlining/Android.bp\n  test/567-checker-builder-intrinsics/Android.bp\n  test/568-checker-onebit/Android.bp\n  test/570-checker-select/Android.bp\n  test/572-checker-array-get-regression/Android.bp\n  test/573-checker-checkcast-regression/Android.bp\n  test/576-polymorphic-inlining/Android.bp\n  test/577-checker-fp2int/Android.bp\n  test/578-bce-visit/Android.bp\n  test/578-polymorphic-inlining/Android.bp\n  test/579-inline-infinite/Android.bp\n  test/580-checker-round/Android.bp\n  test/580-crc32/Android.bp\n  test/581-rtp/Android.bp\n  test/582-checker-bce-length/Android.bp\n  test/583-checker-zero/Android.bp\n  test/584-checker-div-bool/Android.bp\n  test/589-super-imt/Android.bp\n  test/590-checker-arr-set-null-regression/Android.bp\n  test/591-checker-regression-dead-loop/Android.bp\n  test/593-checker-long-2-float-regression/Android.bp\n  test/594-checker-array-alias/Android.bp\n  test/594-load-string-regression/Android.bp\n  test/595-profile-saving/Android.bp\n  test/597-deopt-busy-loop/Android.bp\n  test/597-deopt-invoke-stub/Android.bp\n  test/597-deopt-new-string/Android.bp\n  test/602-deoptimizeable/Android.bp\n  test/603-checker-instanceof/Android.bp\n  test/604-hot-static-interface/Android.bp\n  test/605-new-string-from-bytes/Android.bp\n  test/607-daemon-stress/Android.bp\n  test/609-checker-inline-interface/Android.bp\n  test/609-checker-x86-bounds-check/Android.bp\n  test/610-arraycopy/Android.bp\n  test/611-checker-simplify-if/Android.bp\n  test/614-checker-dump-constant-location/Android.bp\n  test/615-checker-arm64-store-zero/Android.bp\n  test/616-cha-abstract/Android.bp\n  test/616-cha-interface/Android.bp\n  test/616-cha-miranda/Android.bp\n  test/616-cha-native/Android.bp\n  test/616-cha-regression-proxy-method/Android.bp\n  test/616-cha/Android.bp\n  test/617-clinit-oome/Android.bp\n  test/618-checker-induction/Android.bp\n  test/619-checker-current-method/Android.bp\n  test/620-checker-bce-intrinsics/Android.bp\n  test/622-checker-bce-regressions/Android.bp\n  test/623-checker-loop-regressions/Android.bp\n  test/625-checker-licm-regressions/Android.bp\n  test/626-set-resolved-string/Android.bp\n  test/627-checker-unroll/Android.bp\n  test/628-vdex/Android.bp\n  test/629-vdex-speed/Android.bp\n  test/631-checker-get-class/Android.bp\n  test/632-checker-char-at-bounds/Android.bp\n  test/635-checker-arm64-volatile-load-cc/Android.bp\n  test/636-arm64-veneer-pool/Android.bp\n  test/637-checker-throw-inline/Android.bp\n  test/638-checker-inline-cache-intrinsic/Android.bp\n  test/639-checker-code-sinking/Android.bp\n  test/640-checker-boolean-simd/Android.bp\n  test/640-checker-integer-valueof/Android.bp\n  test/640-checker-simd/Android.bp\n  test/641-checker-arraycopy/Android.bp\n  test/641-iterations/Android.bp\n  test/642-fp-callees/Android.bp\n  test/643-checker-bogus-ic/Android.bp\n  test/645-checker-abs-simd/Android.bp\n  test/646-checker-arraycopy-large-cst-pos/Android.bp\n  test/646-checker-long-const-to-int/Android.bp\n  test/646-checker-simd-hadd/Android.bp\n  test/647-jni-get-field-id/Android.bp\n  test/650-checker-inline-access-thunks/Android.bp\n  test/652-deopt-intrinsic/Android.bp\n  test/654-checker-periodic/Android.bp\n  test/655-checker-simd-arm-opt/Android.bp\n  test/655-jit-clinit/Android.bp\n  test/656-checker-simd-opt/Android.bp\n  test/656-loop-deopt/Android.bp\n  test/657-branches/Android.bp\n  test/658-fp-read-barrier/Android.bp\n  test/660-checker-sad/Android.bp\n  test/660-checker-simd-sad/Android.bp\n  test/660-clinit/Android.bp\n  test/661-checker-simd-reduc/Android.bp\n  test/661-oat-writer-layout/Android.bp\n  test/662-regression-alias/Android.bp\n  test/664-aget-verifier/Android.bp\n  test/665-checker-simd-zero/Android.bp\n  test/666-dex-cache-itf/Android.bp\n  test/667-checker-simd-alignment/Android.bp\n  test/667-jit-jni-stub/Android.bp\n  test/667-out-of-bounds/Android.bp\n  test/669-checker-break/Android.bp\n  test/671-npe-field-opts/Android.bp\n  test/672-checker-throw-method/Android.bp\n  test/673-checker-throw-vmethod/Android.bp\n  test/674-HelloWorld-Dm/Android.bp\n  test/674-hotness-compiled/Android.bp\n  test/676-proxy-jit-at-first-use/Android.bp\n  test/677-fsi2/Android.bp\n  test/679-locks/Android.bp\n  test/680-checker-deopt-dex-pc-0/Android.bp\n  test/680-sink-regression/Android.bp\n  test/684-checker-simd-dotprod/Android.bp\n  test/684-select-condition/Android.bp\n  test/685-deoptimizeable/Android.bp\n  test/687-deopt/Android.bp\n  test/689-multi-catch/Android.bp\n  test/689-zygote-jit-deopt/Android.bp\n  test/693-vdex-inmem-loader-evict/Android.bp\n  test/694-clinit-jit/Android.bp\n  test/695-simplify-throws/Android.bp\n  test/696-loop/Android.bp\n  test/697-checker-string-append/Android.bp\n  test/698-selects/Android.bp\n  test/700-LoadArgRegs/Android.bp\n  test/703-floating-point-div/Android.bp\n  test/704-multiply-accumulate/Android.bp\n  test/705-register-conflict/Android.bp\n  test/707-checker-invalid-profile/Android.bp\n  test/708-jit-cache-churn/Android.bp\n  test/711-checker-type-conversion/Android.bp\n  test/717-integer-value-of/Android.bp\n  test/718-zipfile-finalizer/Android.bp\n  test/720-thread-priority/Android.bp\n  test/721-osr/Android.bp\n  test/726-array-store/Android.bp\n  test/728-imt-conflict-zygote/Android.bp\n  test/805-TooDeepClassInstanceOf/Android.bp\n  test/806-TooWideClassInstanceOf/Android.bp\n  test/812-recursive-default/Android.bp\n  test/813-fp-args/Android.bp\n  test/814-large-field-offsets/Android.bp\n  test/815-invokeinterface-default/Android.bp\n  test/818-clinit-nterp/Android.bp\n  test/900-hello-plugin/Android.bp\n  test/901-hello-ti-agent/Android.bp\n  test/902-hello-transformation/Android.bp\n  test/903-hello-tagging/Android.bp\n  test/904-object-allocation/Android.bp\n  test/905-object-free/Android.bp\n  test/906-iterate-heap/Android.bp\n  test/907-get-loaded-classes/Android.bp\n  test/908-gc-start-finish/Android.bp\n  test/910-methods/Android.bp\n  test/911-get-stack-trace/Android.bp\n  test/913-heaps/Android.bp\n  test/914-hello-obsolescence/Android.bp\n  test/915-obsolete-2/Android.bp\n  test/916-obsolete-jit/Android.bp\n  test/917-fields-transformation/Android.bp\n  test/918-fields/Android.bp\n  test/919-obsolete-fields/Android.bp\n  test/920-objects/Android.bp\n  test/921-hello-failure/Android.bp\n  test/922-properties/Android.bp\n  test/923-monitors/Android.bp\n  test/924-threads/Android.bp\n  test/925-threadgroups/Android.bp\n  test/926-multi-obsolescence/Android.bp\n  test/927-timers/Android.bp\n  test/928-jni-table/Android.bp\n  test/930-hello-retransform/Android.bp\n  test/931-agent-thread/Android.bp\n  test/932-transform-saves/Android.bp\n  test/933-misc-events/Android.bp\n  test/937-hello-retransform-package/Android.bp\n  test/939-hello-transformation-bcp/Android.bp\n  test/940-recursive-obsolete/Android.bp\n  test/941-recursive-obsolete-jit/Android.bp\n  test/942-private-recursive/Android.bp\n  test/943-private-recursive-jit/Android.bp\n  test/944-transform-classloaders/Android.bp\n  test/945-obsolete-native/Android.bp\n  test/946-obsolete-throw/Android.bp\n  test/947-reflect-method/Android.bp\n  test/949-in-memory-transform/Android.bp\n  test/950-redefine-intrinsic/Android.bp\n  test/951-threaded-obsolete/Android.bp\n  test/963-default-range-smali/Android.bp\n  test/982-ok-no-retransform/Android.bp\n  test/983-source-transform-verify/Android.bp\n  test/984-obsolete-invoke/Android.bp\n  test/985-re-obsolete/Android.bp\n  test/986-native-method-bind/Android.bp\n  test/987-agent-bind/Android.bp\n  test/988-method-trace/Android.bp\n  test/989-method-trace-throw/Android.bp\n  test/990-field-trace/Android.bp\n  test/991-field-trace-2/Android.bp\n  test/992-source-data/Android.bp\n  test/993-breakpoints/Android.bp\n  test/994-breakpoint-line/Android.bp\n  test/995-breakpoints-throw/Android.bp\n  test/996-breakpoint-obsolete/Android.bp\n  test/997-single-step/Android.bp\n  test/Android.bp\n  tools/Android.bp\n  tools/ahat/Android.bp\n  tools/ahat/Android.mk\n  tools/art_verifier/Android.bp\n  tools/cpp-define-generator/Android.bp\n  tools/dexanalyze/Android.bp\n  tools/dexfuzz/Android.bp\n  tools/dmtracedump/Android.bp\n  tools/hiddenapi/Android.bp\n  tools/jfuzz/Android.bp\n  tools/jvmti-agents/breakpoint-logger/Android.bp\n  tools/jvmti-agents/chain-agents/Android.bp\n  tools/jvmti-agents/dump-jvmti-state/Android.bp\n  tools/jvmti-agents/enable-vlog/Android.bp\n  tools/jvmti-agents/field-counts/Android.bp\n  tools/jvmti-agents/field-null-percent/Android.bp\n  tools/jvmti-agents/jit-load/Android.bp\n  tools/jvmti-agents/list-extensions/Android.bp\n  tools/jvmti-agents/simple-force-redefine/Android.bp\n  tools/jvmti-agents/simple-profile/Android.bp\n  tools/jvmti-agents/ti-alloc-sample/Android.bp\n  tools/jvmti-agents/ti-fast/Android.bp\n  tools/jvmti-agents/titrace/Android.bp\n  tools/jvmti-agents/wrapagentproperties/Android.bp\n  tools/signal_dumper/Android.bp\n  tools/tracefast-plugin/Android.bp\n  tools/veridex/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  sigchainlib/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-GPL-2.0\nto:\n  Android.bp\n  Android.mk\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-GPL-2.0\n    SPDX-license-identifier-GPL-with-classpath-exception\nto:\n  dt_fd_forward/Android.bp\n  openjdkjvmti/Android.bp\n\nAdded SPDX-license-identifier-GPL-2.0\n    SPDX-license-identifier-GPL-with-classpath-exception\nto:\n  openjdkjvm/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: If775045c12955fa6d72d40ccf2a09beef93d1699\nMerged-in: If775045c12955fa6d72d40ccf2a09beef93d1699\n"
    },
    {
      "commit": "7eb5a95d96175ab6bfca3e9b19673443651ac997",
      "tree": "90fb6783ddef72bdd574d99feceea945209aaa98",
      "parents": [
        "1060838894e34785139b5e3583fbc9edad7fa7f9"
      ],
      "author": {
        "name": "Hyangseok Chae",
        "email": "neo.chae@lge.com",
        "time": "Tue Jan 12 17:06:43 2021 +0900"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 15 16:02:14 2021 +0000"
      },
      "message": "Added extra safety in veridex\n\nWe need extra safeguard prevents segfaulting\non run away instructions.\n\nTest: veridex apk, GtsUnofficialApisUsageTestCases\nBug: 177480896\nChange-Id: I3779b5f4a675b7d3bf75461019ad2f8740d22a53\n"
    },
    {
      "commit": "f50ee05c4b3eaae80ef0a5637c1124988337ec90",
      "tree": "f76cccc21ad460a1d017cb934cdb44185337e008",
      "parents": [
        "6a6cca588df43a180534db0b49475a8a5ab4c35a"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Tue Aug 25 19:59:36 2020 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 25 12:12:31 2020 +0000"
      },
      "message": "replace \"whitelist\" with \"sdk\" in appcompat.sh\n\nThe default exclude-api-lists value contains whitelist, so replace it\nwith \u0027sdk\u0027\n\nBug: 162500436\nBug: 166205411\nTest: m \u0026\u0026 check appcompat result doesn\u0027t contain \u0027sdk\u0027 fields\nChange-Id: Ifaf576289e7e9ceb4ad8aa2cfe7555c5fcec57e5\n"
    },
    {
      "commit": "02db072528792ab5ebb4ab4757a739b4dbd5617d",
      "tree": "71d516be22c9e1b826ebcbd3a51a19c3192dd910",
      "parents": [
        "b53d3b6aa48c799c95fd6fc45579c41dfd25cea3"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Fri Aug 07 14:56:59 2020 +0100"
      },
      "committer": {
        "name": "Andrei-Valentin Onea",
        "email": "andreionea@google.com",
        "time": "Thu Aug 13 13:42:10 2020 +0000"
      },
      "message": "Rename api lists\n\nUse more inclusive terminology for hidden api lists: blocked(blocklist),\nunsupported, max-target-* and sdk (go/hiddenapi-list-renaming).\n\nBug: 162500436\nTest: build and check hiddenapi-flags.csv\n\nChange-Id: Id25fabe25450a8d1f4776c526b208716e2d06ff9\n"
    },
    {
      "commit": "05fe07c9a1e638fc25994da6487fea59de89f9b3",
      "tree": "7e5b79b67fb68cfc10b3f0bd03369874e8be9767",
      "parents": [
        "2ad3f8ebf88f46b8f8a04ce81ed3bc5fd0f314de"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Wed Feb 05 14:22:41 2020 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 05 10:29:26 2020 +0000"
      },
      "message": "Add warning comments on format\n\nThere is a test depending on veridex output format, so add comments on\nformat\n\nTest: N/A\nBug: 123662832\nChange-Id: Iaa1e598ad075a735086adc084eba952b878a6281\n"
    },
    {
      "commit": "39c399a9e85a8de74c6b47bc8cbc1e43b94ed54c",
      "tree": "a734a83f385e67a174a6576dfe0c8a266e7c9280",
      "parents": [
        "9bee62aa8ce05cd5f5154b8240e537b7c358530e"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Fri Sep 13 16:09:09 2019 +0100"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Tue Oct 08 15:09:57 2019 +0000"
      },
      "message": "Report any non-app signatures.\n\nBefore, veridex only reported signatures that were defined in the CSV file. This CL still preserves the same use case by default, but also allows reporting any other signatures as \"invalid\" if they are not defined in the --dex-files.\n\nTest: manual\nChange-Id: I10753d05bf9f418d2c8543be16cdfb335be9044c\n"
    },
    {
      "commit": "7acb8464b04ab196159adbf96358b81de3017fea",
      "tree": "b2acd4ad7cdf455a8c720349c59127c07ece2047",
      "parents": [
        "5a0b6726562948421fbbeb38d20ffd66ef688ff8"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Wed Sep 11 12:16:12 2019 +0100"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Wed Sep 25 19:10:02 2019 +0000"
      },
      "message": "Allow excluding API list values via command line arguments.\n\nThis replaces --only-report-sdk-uses as well. Note only ApiList::Value and not DomainApi are supported for now.\n\nTest: manual\nChange-Id: I7734eae1ebb0f922eb4652d29f1e1e4dce18cbec\n"
    },
    {
      "commit": "5012df2a3f16d62845182f225c92157e9bb64a27",
      "tree": "e7972617a05109993bde1ac4ada0fae48b53bdc8",
      "parents": [
        "a49b04f66e15a8f75fec831a01180625daa2c556"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Fri Sep 06 18:26:39 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 16 18:00:11 2019 +0000"
      },
      "message": "Do not initialize VeriClass java objects unless precise mode is enabled.\n\nThis allows running veridex in inprecise mode where --core-stubs do not have java.lang.* classes to resolve.\n\nTest: manual\nChange-Id: I8d9eb49c22437c9f4da0101777391658f18e9b8c\n"
    },
    {
      "commit": "e47933ab3091a002806a3718cc626d2f8d84b620",
      "tree": "831bc2de70109894250e7b51a6d962d235224344",
      "parents": [
        "411a6de63982d1e6ec16e11141725ff95cbdfab9"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 09 14:06:02 2019 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sun Aug 11 15:11:03 2019 +0000"
      },
      "message": "Replace more occurrences of `make` with `m` in ART.\n\nCalling `make` is no longer supported since\nhttps://android-review.googlesource.com/c/platform/build/+/1092954/.\n\nTest: n/a\nChange-Id: Ie2a0bcf7ea45b5ce82b471de31abb848a102c0ad\n"
    },
    {
      "commit": "50037df21707c34beda776263536276fd9fbbe20",
      "tree": "a3718646716f289841b365d98a982b0fde4466bc",
      "parents": [
        "bb5b4f35e7d4cfddb9aedb4f2ea35b017650cd58"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jul 10 14:10:08 2019 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jul 11 12:24:30 2019 +0100"
      },
      "message": "Install appcompat.sh for use by make rules\n\nThe make build for apps (including prebuilts) hard codes a reference to\nthe art/tools/veridex/appcompat.sh file which causes a build breakage\nwhen unbundling the runtime module, i.e. when the art repository is not\npresent in the local build tree.\n\nThis change installs the appcompat.sh into $(HOST_OUT)/bin/appcompat/\ninstead. That allows the unbundled build to provide a prebuilt that\ninstalls the script into the same location.\n\nBug: 134379140\nTest: m droid\nChange-Id: If1a4ea1f2798b6fb27b4feb76f878cba8939aabc\n"
    },
    {
      "commit": "0dc93b1ba94460b0ae126dd4db335261165c74b7",
      "tree": "78b3afa099dce52a1eb39d6a9788d610b14a1f6b",
      "parents": [
        "9b81ac36e161fd993eab17b43b93a96e8c63b5cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 15 10:30:22 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 17 20:40:21 2019 +0000"
      },
      "message": "ART: Run bpfmt over ART\u0027s blueprint files\n\nTest: mmma art\nChange-Id: Ic85df4770c12ec02836c877b243d4aec234aaada\n"
    },
    {
      "commit": "d76e1238fddfd6eed608d97929c333e921e4826f",
      "tree": "d5d081944ddd6786f1b9194aa1aac83c5244cc27",
      "parents": [
        "1fe5839d10114209a75d1716bd81c353e4096810"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 07 19:23:41 2019 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed May 08 09:03:53 2019 +0000"
      },
      "message": "veridex: Add cmd line flag to filter app classes by name\n\nVeridex can now skip analyzing classes which do not match a provided\nfilter. The filter is passed to veridex using \u0027--app-class-filter\u003d\u0027\ncommand line flag as a comma-separated list of class descriptor\nprefixes, e.g. \u0027Landroid/net/,Landroid/utils/\u0027 matches all classes in\nthe \u0027android.net\u0027 and \u0027android.utils\u0027 packages and their subpackages.\n\nTest: compiles, manually test against APKs\nChange-Id: I4db9c3625399ee313a1ba0aba7f3d9073570cc70\n"
    },
    {
      "commit": "3b23f7568077a10cb3dfd0bb7d1c5f4c035d65dc",
      "tree": "2799a6894adf524df055d47dab40d3d7047a9d12",
      "parents": [
        "77f17668f9d9dfe152deca165ddaac9aec4a7ce4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 05 12:35:41 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 05 13:24:36 2019 +0000"
      },
      "message": "Use the right directory for the csv file.\n\nAnd return an error if absent.\n\nTest: appcompat.sh\nChange-Id: I212df0f9eac323fa6b5e2cf272684a31bf14cdea\n"
    },
    {
      "commit": "4080b8febed8b82957274882a96b2a7d8625c32e",
      "tree": "c1788f345c17889e9c1b539ceb9ad094c0a12a1d",
      "parents": [
        "f421a903a85c4fd6bb729cb52f402042382ef017"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Apr 02 13:58:04 2019 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Apr 02 15:14:17 2019 +0000"
      },
      "message": "Veridex: Explicitly enable Darwin target\n\nFixes missing build target for out/host/darwin-x86/veridex.\n\nBug: 73344075\nBug: 129400556\nTest: ssh mac \u0026\u0026 . build/envsetup.sh \u0026\u0026 make -j12 PRODUCT-sdk-sdk dist sdk_repo\nTest: m out/host/darwin-x86/veridex\nChange-Id: I9cf3c5e6c4d1ddc6cf970444ec3c0ec335cfc0b5\n"
    },
    {
      "commit": "f2bfc6cf0a91d5bed0eace0214596e367547dbff",
      "tree": "3f4f8b01dd9827e384b7a9c402b6c6850526b1fe",
      "parents": [
        "0518af4e87d484b10e785aff9b030b688926cd7f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 28 15:40:08 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 28 15:40:08 2019 +0000"
      },
      "message": "Fix veridex reporting\n\nRecent changes \"broke\" veridex in the sense that it now reports\nuses of APIs which are both whitelist and core platform API (i.e.\nall whitelist). Numbers of greylist/blacklist uses were not affected.\n\nTest: run veridex on any APK\nChange-Id: I07769ab6882f7d44443889265127c2be7cf5b59b\n"
    },
    {
      "commit": "9788b6982c47059905ec62d9faf4978996d2b298",
      "tree": "0dcd2e04af3bbba7b5ae581f0a01d347a2d09a01",
      "parents": [
        "44bbff64196ee5d9ce16ad8543417a8a075d31aa"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 24 14:23:22 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 24 14:58:53 2019 +0000"
      },
      "message": "Fix braino in HiddenApi::IsInAnyList.\n\nBug: 123311905\nTest: m\nChange-Id: I00ac35a6359036b9a7d69dadf2c0e780a7e1ee17\n"
    },
    {
      "commit": "90faceb71e25748172ba6369209f8a2a66735394",
      "tree": "64707bbd718b29de9a19c01b12b0cc872685bb13",
      "parents": [
        "62a4bcf3fe11e6800f5d451b41003c135358ed6a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Dec 14 14:36:15 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 21 09:48:59 2019 +0000"
      },
      "message": "hiddenapi: Support \u0027core-platform-api\u0027 flag\n\nAdd support for parsing @CorePlatformApi stubs and encoding it in\nhiddenapi dex flags of the corresponding fields/methods.\n\n(1) The CL refactors hiddenapi::ApiList class to store a second value:\na bit vector of \"domain API\" flags. These are intended for encoding\nmembership in a set of API stubs only available to certain callers,\ne.g. @CorePlatformApi when platform code calls core platform or\n@TestApi for CTS tests.\n\n(2) Parse @CorePlatformApi stubs and set domain flags for its members.\n\n(3) Parse the flags at runtime and set kAccCorePlatformApi access flag\non the corresponding ArtField/ArtMethod objects.\n\nBug: 119068555\nTest: m appcompat\nTest: dexlayout -b \u003ccore-oj jar\u003e | grep \u0027CORE-PLATFORM-API\u0027\nChange-Id: Idbfa6d3af7459258a5a0b6da7c03c037a577eb75\n"
    },
    {
      "commit": "ad1aa6340567c0660506069d760ff41483eb3821",
      "tree": "dbceabc90859e9353a8683d8be02a702205be9c9",
      "parents": [
        "b8bca301eff0db87d37bc4ab898a4973d211019b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 10:30:54 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 03 09:19:10 2019 -0800"
      },
      "message": "ART: Move Signature to its own header\n\nReduce the dependencies on dex_file.h\n\nBug: 119869270\nTest: mmma art\nChange-Id: I1450fe2c3f4a7f5b535ed38cc19cb8a053228541\n"
    },
    {
      "commit": "3f1dcd39e134d994ac88dcc4f30ec8cabcd8decf",
      "tree": "365d20ad6b68ff1dbd4903764b63880324136e4d",
      "parents": [
        "0f0a4e40667c87fbd4ae5480eddbfd701bfabfa2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 28 09:39:56 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 10:32:25 2019 -0800"
      },
      "message": "ART: Move dex structs into own header\n\nSeparating out the structs from DexFile allows them to be forward-\ndeclared, which reduces the need to include the dex_file header.\n\nBug: 119869270\nTest: m\nChange-Id: I32dde5a632884bca7435cd584b4a81883de2e7b4\n"
    },
    {
      "commit": "104b6d8c8278e940518b00f9740bd3a013ae0593",
      "tree": "5173a944d5748f4e387e93ec7cf2cbead18d8512",
      "parents": [
        "777cb01e3cdebbb5a578d67b631c34c9e4a517da"
      ],
      "author": {
        "name": "Dario Freni",
        "email": "dariofreni@google.com",
        "time": "Wed Dec 19 13:43:23 2018 +0000"
      },
      "committer": {
        "name": "Dario Freni",
        "email": "dariofreni@google.com",
        "time": "Wed Dec 19 18:32:55 2018 +0000"
      },
      "message": "Honor ANDROID_LOG_TAGS when logging.\n\nBug: 121225084\nFixes: 121225084\nTest: mm\nChange-Id: Ic183d3d5b59a4aaaa99e74265f4fa9edd9af1d5e\n"
    },
    {
      "commit": "91690d37ad9d947e4e72b5622b9fbf6a9391274d",
      "tree": "729fac9e3c27017b8199bcd509c5f9bfd2de3473",
      "parents": [
        "f2970cd870948a6ee1c8ecd30c9c3147d05aa0be"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sun Nov 04 18:07:23 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 29 16:42:10 2018 +0000"
      },
      "message": "hiddenapi: Convert API lists to a flags CSV file\n\nAccess flags for hiddenapi have been managed as a series of test files,\none file per flag. This requries too many changes every time a flag is\nchanged or a new flag is introduced. Change `hiddenapi` and `veridex`\nto expect flags as a CSV file in the format:\n\n  \u003capi signature\u003e,\u003cflag1\u003e,...,\u003cflagN\u003e\n\nTest: m, phone boots\nTest: m test-art\nTest: m appcompat\nChange-Id: Iffa64b36ffc5524779d5f57c3c6f0c0e84bfc606\n"
    },
    {
      "commit": "dcfa89bfc06a6c211bbb64fa81313eaf6454ab67",
      "tree": "4aaf6da88861029e387525957bf68796cf95648c",
      "parents": [
        "fd667d4165aefe51010e4fe3bd81b820ed9884ef"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 31 11:04:10 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 22 12:49:26 2018 +0000"
      },
      "message": "Rename and reorganize hiddenapi::ApiList\n\nChange values of ApiList flags to make them easier to extend in the\nfuture and unify naming across all components. Light greylist is now\njust \"Greylist\", dark greylist becomes \"GreylistMaxO\".\n\nNote that the version code in \"GreylistMaxO\" must also include any\nmaintenance releases, i.e. entries on \"GreylistMaxO\" are accessible\nto apps with targetSdkVersion\u003c\u003d27 (O MR1).\n\nTest: m, phone boots\nTest: m test-art\nChange-Id: I9622e0646eb265008a8bb2652270876ae95dac84\n"
    },
    {
      "commit": "123333a65e8d2593232c20c6933b60fbb7737ddd",
      "tree": "0714a05eea12a18f0267875d02e4e5aa7c24227a",
      "parents": [
        "eead626e0567d11ed0402e9586a99ca4a1d023eb"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Oct 30 14:19:58 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Oct 30 16:03:04 2018 +0000"
      },
      "message": "Remove dependencies on libutils.\n\nThe libutils dependency of libziparchive was removed in aosp/796795.\n\nTest: art/test.py --host --64 --optimizing\nTest: env ART_TEST_NO_SYNC\u003dtrue make -j4 test-art-target-gtest\nTest: art/test/testrunner/testrunner.py -j4 --target --64 --optimizing\nTest: art/test/testrunner/run_build_test_target.py art-asan (build only)\nBug: 118374951\nChange-Id: I58cdf7a39558c87e48bdc1274d6c6ddd36301d8d\n"
    },
    {
      "commit": "eead626e0567d11ed0402e9586a99ca4a1d023eb",
      "tree": "57cf06ed51f580f44da42def5c47f1c47e22f4a0",
      "parents": [
        "b97c8af44dca6f0edbe80b13921bd47f9913c6fb",
        "65ed42a3d3a7bf1a42e759ed53c16b179f54813a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 30 12:33:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 12:33:27 2018 +0000"
      },
      "message": "Merge \"Revert \"Link compression libs statically into libartbase and use those everywhere.\"\""
    },
    {
      "commit": "65ed42a3d3a7bf1a42e759ed53c16b179f54813a",
      "tree": "77930ed648604f50fe6a46059f4cc659b443ddb7",
      "parents": [
        "8a94003e66f337fe84870ff68d3f6f234555cf06"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 30 12:33:04 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 30 12:33:04 2018 +0000"
      },
      "message": "Revert \"Link compression libs statically into libartbase and use those everywhere.\"\n\nThis reverts commit 8a94003e66f337fe84870ff68d3f6f234555cf06.\n\nReason for revert: Breaks asan and dex2oats.\n\nChange-Id: Idea760bbd2b25078ecd1ee5a39da94f6b74432a7\nbug: 118374951\n"
    },
    {
      "commit": "47cd272d15f41109b3dacb21cfa509d18a03e011",
      "tree": "f2693adde283631362b3acc2c573d7280632621f",
      "parents": [
        "6e32b0059b4c3073c601018da3ca315ad568525a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 23 12:50:02 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 30 11:04:29 2018 +0000"
      },
      "message": "Remove HiddenApiAccessFlags, move content to hiddenapi::\n\nHiddenapi code in runtime/ has all code in the hiddenapi:: namespace\ninstead of using a class as a wrapper. Refactor HiddenApiAccessFlags\nfor consistency. Also turn ApiList into `enum class` for stricter\ntype checks.\n\nTest: m test-art\nChange-Id: Ifb3c443ea43860476abd4fd3d4934cd14e2cdcc1\n"
    },
    {
      "commit": "8a94003e66f337fe84870ff68d3f6f234555cf06",
      "tree": "0271729b2571c969238786d21a45ce05120b96e0",
      "parents": [
        "ce2a00daa92670a4fc01ef59fdbc3769a846f69c"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Oct 24 15:02:55 2018 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Oct 29 21:20:43 2018 +0000"
      },
      "message": "Link compression libs statically into libartbase and use those everywhere.\n\nAll targets using these compression libs already use libartbase. This grows\nlibartbase VM size by 314K on 64 bit, but only these targets pack on the\nextra the bloat of liblz4 (84K) and liblzma (174K): dexanalyze, dexdump2,\ndexlayout(d), dexlist. libbacktrace and libunwindstack gain liblz4 only.\n\nOn the other hand this gets rid of static instances in several shared libs.\n\nTest: mmma art\nTest: art/test.py --host --64 --optimizing\nTest: env ART_TEST_NO_SYNC\u003dtrue make -j4 test-art-target-gtest\nTest: art/test/testrunner/testrunner.py -j4 --target --64 --optimizing\nBug: 118374951\nChange-Id: Ida103546d2d16ef892d09e9ca3a0ae5e3b42a541\n"
    },
    {
      "commit": "584771b5a85843700289ffcd36a46f3b187ca349",
      "tree": "a88996e445a1a2aee66e15ee58b977891ddf9618",
      "parents": [
        "6bc39b1e080d574a0ed0c4dabe4d0895dd40456c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 18 13:22:23 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 19 12:14:10 2018 -0700"
      },
      "message": "ART: Fix tidy bugprone-macro-parentheses\n\nAdd parens where necessary, add NOLINT for the cases where it\u0027s wrong.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: If56ce51c078e9adf26b9469a01c95a857aac66a4\n"
    },
    {
      "commit": "9b031f7e4834b263ae531409a9f6c82cfdc89477",
      "tree": "4b5fdfc3ecc12b5b7e32959bec0c26595b87d2ab",
      "parents": [
        "c71f38bdf7dca39a070ba25d436edcd758551f42"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 04 11:03:34 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 09 14:38:45 2018 -0700"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles smaller subdirectories.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I81c8f3396b9922684b68e9f3d8fccefe364f1279\n"
    },
    {
      "commit": "370f041b01f84b9beb996bf0ce46c41a6cf841d4",
      "tree": "ec28ff9ff062ba5488574e2d92a3667e96e84dca",
      "parents": [
        "2c3d9a443abdfd491b187e7c7660895f8bafb529"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 02 12:11:11 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 03 10:27:19 2018 -0700"
      },
      "message": "ART: Give veridex ART defaults\n\nTo enable tidy checks and other ART standards. Remove unnecessary\ndefaulted copy constructor to avoid deprecation error for the\ncopy assignment. Fix tidy errors.\n\nBug: 32619234\nTest: mmma art/tools/veridex\nChange-Id: I8bb6b55dc86476402d2e955029e20c494c30ba45\n"
    },
    {
      "commit": "c7a6c4718a76c2f33450325f0406f674f193af29",
      "tree": "526211906934e44a3f0ba2da0ec1a7839be9495e",
      "parents": [
        "91be58aaa16ecf36642d9c274d48885c84f09f9d"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Sep 28 13:33:47 2018 +0100"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Sep 28 14:49:46 2018 +0100"
      },
      "message": "Suppress dupe output references in veridex.\n\nSuffix duplicates with \"(\u003cN\u003e occurences)\" instead, to avoid\nsubstantial spam in some cases.\n\nTest: appcompat.sh --dex-file\u003d/tmp/test.apk\nTest: Output:\n      #47: Linking dark greylist Lorg/ccil/cowan/tagsoup/Schema;-\u003eelementType(Ljava/lang/String;III)V use(s):\n             Lorg/ccil/cowan/tagsoup/HTMLSchema;-\u003e\u003cinit\u003e()V (108 occurrences)\n             Lorg/ccil/cowan/tagsoup/Parser;-\u003egi([CII)V\n\n      #48: Linking dark greylist Lorg/ccil/cowan/tagsoup/Schema;-\u003eentity(Ljava/lang/String;I)V use(s):\n             Lorg/ccil/cowan/tagsoup/HTMLSchema;-\u003e\u003cinit\u003e()V (2140 occurrences)\n\nChange-Id: I0895c3cb3b98d3e5826f7b63f41c39f399a92f72\n"
    },
    {
      "commit": "5762ea01b63a3aab57f339a99c8f126dc3bd7b5e",
      "tree": "56166dc90585b432157780bd39d406f41930a3e0",
      "parents": [
        "5d7015cd64085068b1685d44339b4b705ef3f065"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Sep 23 13:49:49 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 24 11:27:23 2018 +0100"
      },
      "message": "Remove superfluous \u0027{\u0027.\n\nbug: 116353081\nTest: m\nChange-Id: I20061e7056daf3056c055a5fdb38327f5b00dfd6\n"
    },
    {
      "commit": "216917a72d27205d2208260128b1540b9929c33e",
      "tree": "554ebd2e6b70c5d6a757a81e4c43e3a48831a9ae",
      "parents": [
        "3659f02632059f3ca9c0fe07cfb783bcdd23f59d"
      ],
      "author": {
        "name": "Dario Freni",
        "email": "dariofreni@google.com",
        "time": "Thu Sep 20 17:08:11 2018 +0100"
      },
      "committer": {
        "name": "Dario Freni",
        "email": "dariofreni@google.com",
        "time": "Thu Sep 20 17:15:42 2018 +0100"
      },
      "message": "Use consistent style when checking env vars.\n\nTest: no\nChange-Id: Ic68161bcde2d6b7895e2b86af322d14513dcc81d\n"
    },
    {
      "commit": "a525de7e6cfba5cd145d9bdf92f9ff199def76c9",
      "tree": "8f3fe51733ebb844b9744070cb605434c0d6d9d7",
      "parents": [
        "d2ceeccc5c9dea12527057dd218f9cbca862e376"
      ],
      "author": {
        "name": "Dario Freni",
        "email": "dariofreni@google.com",
        "time": "Wed Sep 19 23:16:46 2018 +0100"
      },
      "committer": {
        "name": "Dario Freni",
        "email": "dariofreni@google.com",
        "time": "Wed Sep 19 23:18:23 2018 +0100"
      },
      "message": "Accept an optional PACKAGING env parameter.\n\nThe parameter will indicate which directory contains intermediate\npackages. For the ASAN builds, for example, this directory differs from\nthe default one.\n\nBug: 116020783\nTest: m (on an affected ASAN build)\nChange-Id: Ife35b6cf1f13c7db7e723f1b322a1f21d0231d72\n"
    },
    {
      "commit": "b81c15ff8bf20b232fd2fc3a4aedf1ba219eaf6c",
      "tree": "ef671562ab8b3af6b95155ddbc5a1660e26c2ec9",
      "parents": [
        "4eaaa6a2095f9a02e436bf7d01a4906706e042b7",
        "a0609e018a0c803963b9ba2f383149578a549016"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Sep 19 14:34:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 19 14:34:37 2018 +0000"
      },
      "message": "Merge \"Provide an error message for missing dex-file arg.\""
    },
    {
      "commit": "a0609e018a0c803963b9ba2f383149578a549016",
      "tree": "932f084359157b5e02b3a5a4c880224b11de6b4d",
      "parents": [
        "f035463650ada4a2bc07a38ca23dd96758e3db92"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Sep 19 00:00:49 2018 +0100"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Sep 19 13:58:43 2018 +0100"
      },
      "message": "Provide an error message for missing dex-file arg.\n\nWithout this, veridex segfaults if the user fat-fingers the\n--dex-file argument (for example by omitting the equals sign).\n\nTest: appcompat.sh (with and without --dex-file\u003d)\nChange-Id: Ie4637c667a16864774a0bdd92a772b1b96c5ea99\n"
    },
    {
      "commit": "9ed3a164819d8f1899eba04c203c13f1785290e7",
      "tree": "7147d18baf1e0b4a54ec765f886b694c880baa3c",
      "parents": [
        "f035463650ada4a2bc07a38ca23dd96758e3db92"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Sep 19 00:08:21 2018 +0100"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Sep 19 00:08:21 2018 +0100"
      },
      "message": "Make veridex not output whitelisted uses by default.\n\nMake the user choose whether to dump SDK or non-SDK uses instead\nof dumping both.\n\nBug: 112978171\nTest: appcompat.sh (with and without --only-report-sdk-uses)\nChange-Id: Ic712be188d661080d60c7269d3852aee52c62efc\n"
    },
    {
      "commit": "3817a462c89327dca181c9eab655a0ce6f049a9f",
      "tree": "92c2e2ee93d9aef79eb5a852a5c7b9c9658b7a8a",
      "parents": [
        "c7d2a83cce07c8d0eb0a4373214b2ed6140a6819"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Sep 17 15:00:36 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Sep 17 15:44:39 2018 -0700"
      },
      "message": "Fix problems with veridex packaging\n\nUsing global variables means that some other makefile could have changed\nthese values between the time they were set here and when they were\nevaluated. Use target-specific variables to fix this.\n\nUse `soong_zip` instead of `zip` to get reproducible outputs.\n\nhide is no longer necessary\n\nTest: m out/host/linux-x86/obj/PACKAGING/veridex_intermediates/veridex.zip\nChange-Id: I66527c92dcaeb229add892eb0b1e30773b780131\n"
    },
    {
      "commit": "6c2cfb525fd0ec0d2da56407dfbadaba711f03b9",
      "tree": "e56745efbec75138eefea7b2ba0caf99ee913afc",
      "parents": [
        "7dca45b9677c16a54347cdc0d08bfa2bdd94b464"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 13 14:16:24 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 14 08:40:22 2018 +0100"
      },
      "message": "Add a --whitelist and --only-report-sdk-uses to veridex.\n\nIn order to list SDK uses.\n\nbug: 112978171\nTest: manual\nChange-Id: Ic2b36d6e8a3e07d3ec7001ed24888bd390219a85\n"
    },
    {
      "commit": "1580ab274b5241d879a86f349722fef5b0be1c56",
      "tree": "d6a9a965f46cd046f6c114020ccab497e3878e88",
      "parents": [
        "4613c8a3a549213240f3ffc46514b600d872938e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 05 17:20:39 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 05 17:20:39 2018 -0700"
      },
      "message": "ART: Fix tidy warnings in veridex\n\nFix performance-implicit-conversion-in-loop warning.\n\nBug: 32619234\nTest: mmma art/tools/veridex\nChange-Id: I26acf8307f72d0d231596b3ea2348278323a1605\n"
    },
    {
      "commit": "bbc6e7edb5fca4a61ac53dd9bce79cb4f0bb3403",
      "tree": "0fbce767bc383358cf4cd65aafc74140e1850982",
      "parents": [
        "19379b58bd433da91230e4fe6cd96e7416d16adc"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 24 16:58:47 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 28 11:06:07 2018 +0100"
      },
      "message": "Use \u0027final\u0027 and \u0027override\u0027 specifiers directly in ART.\n\nRemove all uses of macros \u0027FINAL\u0027 and \u0027OVERRIDE\u0027 and replace them with\n\u0027final\u0027 and \u0027override\u0027 specifiers. Remove all definitions of these\nmacros as well, which were located in these files:\n- libartbase/base/macros.h\n- test/913-heaps/heaps.cc\n- test/ti-agent/ti_macros.h\n\nART is now using C++14; the \u0027final\u0027 and \u0027override\u0027 specifiers have\nbeen introduced in C++11.\n\nTest: mmma art\nChange-Id: I256c7758155a71a2940ef2574925a44076feeebf\n"
    },
    {
      "commit": "8f75f7bdc9e72204ed4712670fd04e88f60e7f13",
      "tree": "69fb1725aa7f565713e6ab34633f3de72d515261",
      "parents": [
        "34be5e212b18f03a6cd3ec3b11cd05df49a4d32a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 06 23:38:48 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 07 08:38:47 2018 -0700"
      },
      "message": "Move veridex to ClassAccessor\n\nBug: 79758018\nTest: test-art-host\n\nChange-Id: I38bfc8ca1050698a60807ae77eadeb04a5809579\n"
    },
    {
      "commit": "e166facea335b9adcff7717d6d30150a41718668",
      "tree": "fee3bff71f8820141c6f58b9e733677c9c0e906e",
      "parents": [
        "6743f1ebd4a1a266896541acb5c4dde1f78e708f"
      ],
      "author": {
        "name": "Dario Freni",
        "email": "dariofreni@google.com",
        "time": "Mon Jul 16 11:08:03 2018 +0100"
      },
      "committer": {
        "name": "Dario Freni",
        "email": "dariofreni@google.com",
        "time": "Thu Jul 19 16:12:13 2018 +0100"
      },
      "message": "Add a public error code to DexFileLoader::OpenAll.\n\nSome of the APKs in the build system don\u0027t contain any dex file (e.g.\nthey are only there to test that PackageManager can install them).\nUsers of this library (e.g. veridex) can now verify the error condition\nto determine whether they should just skip the file or propagate the\nerror.\n\nTest: m test-art-host-gtest; ran veridex on an APK without classes.dex\nBug: 110073830\nBug: 78924201\nChange-Id: I65b6a5aa8abb404a77b90352dd066fb0dff36955\n"
    },
    {
      "commit": "35d5b8a2c5d2fce03be59aa003c3bf3c1b481be0",
      "tree": "7665f6d1527be61af13c8ef53f10833dd4200cfd",
      "parents": [
        "b28683f43231e65860ecf91c96a8c0234542c019"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 03 09:18:32 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 03 09:18:32 2018 +0100"
      },
      "message": "ART: Do not use std::\u003ccontainer\u003e::at().\n\nThese functions are specified as throwing std::out_of_range\nand we do not use exceptions.\n\nTest: m\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I67c365ed6d779c101a18b9f386c751c48ca76e16\n"
    },
    {
      "commit": "1b930cafa1c7e8f74f20d72ff1d0ff0c0fb6a875",
      "tree": "908a6b3f883ad83783510b9a76f43f23b63fe399",
      "parents": [
        "dc53f1616d656a757fb26039f387b7ee44ff2f1d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jun 06 14:46:43 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jun 06 14:46:43 2018 -0700"
      },
      "message": "Follow rename from removing desugar support\n\nWe always use d8 now, follow the rename of\ntransform-classes-d8.jar-to-dex to\ntransform-classes.jar-to-dex.\n\nTest: m out/host/linux-x86/obj/PACKAGING/veridex_intermediates/veridex.zip\nChange-Id: I84a36db0f7d04030f6f56929fccfa685519d51a7\n"
    },
    {
      "commit": "0f22ea560a4f282bf29ae59f291e4e9835b71dfa",
      "tree": "deef60c8d8b83a211e01432bcaa52ce96af70de0",
      "parents": [
        "1539a11150ca9c28fec353b38508267c41d7814b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 31 15:51:21 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 01 12:59:36 2018 +0100"
      },
      "message": "Add system and oahl stubs to veridex.zip\n\nTest: m dist\nChange-Id: I354d2f90c42c0cfa7e7d67052c68b455e12fdd5c\n"
    },
    {
      "commit": "8fb6784a56a9df03d115ef47c62ca55b433d00cc",
      "tree": "486286e3c00f6cc6dcf048fb7db4e7058ac43b7d",
      "parents": [
        "b7e784694ba9c2399492d69710bede711a3b552d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 23 11:22:30 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 30 13:04:17 2018 +0100"
      },
      "message": "Add sdk destinations for appcompat.sh related files.\n\nbug: 79936439\n\nTest: m\nChange-Id: I9a41a8f2c5b0bd253e38f955204dc3f91956cc28\n"
    },
    {
      "commit": "1f010164bea4714e9f653c52e8948c5d5305040b",
      "tree": "e69b2c3f4d2645d4097655f8914325945fe5dbbd",
      "parents": [
        "a7d37cf735f05cfc3a3585a5c44eb65d8a279874"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue May 15 08:59:32 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed May 16 13:01:34 2018 -0700"
      },
      "message": "Move ArtDexFileLoader to libdexfile\n\nAdds a dependency from libdexfile on libartbase, but allows the use of\nMemMap loaders, etc.\n\nBug: 78652467\nTest: make -j 40 checkbuild\nChange-Id: I15cf33893ca9192050762f8350a3cc1e39f88dc5\n"
    },
    {
      "commit": "66166d566ef09982c23d95d185bf8276dee96676",
      "tree": "7bb960fbbe1acc84b8cdaa3cb3b3592168c0fae1",
      "parents": [
        "9d7905fffb9eca8f4fa6f3f3d7d3deb9718e3005"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 09 18:19:29 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 11 13:26:43 2018 +0100"
      },
      "message": "[veridex] Add a --target-sdk-version to avoid false positives.\n\n1) Recognize Build.VERSION.SDK_INT in flow analysis\n2) Recognize simple if patterns.\n\nbug: 79404565\nbug: 77513322\nTest: m\n\n(cherry picked from commit 2a843c81e61128d2c1723c064786f8b7193c62f5)\n\nChange-Id: I0327f2468ce620ed4dc218bda5a3fc16f285cb7b\n"
    },
    {
      "commit": "e2b4195e3a562eb60a38c2beeba8ba97c689aeed",
      "tree": "aaddec99a0a95d735f302ee56ee48e0cb0c167be",
      "parents": [
        "4931fc2734dd3173a98fe02631837e54ec950762"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 25 09:09:28 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 03 17:48:50 2018 +0100"
      },
      "message": "[veridex] Reflection detection improvements.\n\n- Handle invoke range instructions.\n- Implement parameter substitution.\n\nbug: 77513322\nTest: m\n\n(cherry picked from commit 5de2ff26d448629082ffe3058a0a76fc38362daa)\n\nChange-Id: Ib7bb1b3ff9b28f0ecfc8b338ef4cf08e5c9b159f\n"
    },
    {
      "commit": "756fddf396712b2e583b345a348d3911860d7151",
      "tree": "c1c196f7939047a92bf25b5d653d078f81927683",
      "parents": [
        "89b06a15b530acf78727700075d8b457e1cc4eb0"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Apr 27 14:07:21 2018 +0100"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Apr 27 16:37:20 2018 +0100"
      },
      "message": "Update art references to prebuilts.\n\nThese stubs have been copied to a new location (see ref\u0027d bug). Make\nart use the new ones, so that the old ones can be deleted\n\nBug: 77525052\nTest: m out/target/common/obj/PACKAGING/core_dex_intermediates/classes.dex\nTest: m out/target/common/obj/PACKAGING/oahl_dex_intermediates/classes.dex\nChange-Id: Iba754278415be8c8db3350223ef45e448edd0f8e\n"
    },
    {
      "commit": "909b1277e450c1eebfe2db40f5a4a72652d32950",
      "tree": "13368253aa0696ade734fbe58e0cf57c0e3169ae",
      "parents": [
        "597c5247e42964e85aef89c03d990df3bab29de1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 23 13:43:31 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 23 17:56:33 2018 +0100"
      },
      "message": "[veridex] New veridex improvements.\n\n1) Take the type of the receiver on a getClass call.\n2) Dedupe reflection uses in precise hidden API finder.\n3) Don\u0027t do a cheap check that a method is resolved, in case the app\n   itself is defining a blacklisted API.\n\nbug: 77513322\nTest: m\n\n(cherry picked from commit 57b2a550a2215261569a33838a14978c7a9ccde2)\n\nChange-Id: Ia441a637386b2232cf9d7f71f6a612d476b37041\n"
    },
    {
      "commit": "4f6e523093e9ca3f1962068bcb38df406afed91f",
      "tree": "c111619ecdaa1207938af75459c194fa5b7bb8d5",
      "parents": [
        "80d8db3ef859c7d10b88e0c0ebdb03a0fa1d049f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 18 12:54:04 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 19 09:37:23 2018 +0100"
      },
      "message": "[veridex] Reflective usage detection improvements.\n\n- Convert a string name to the internal name\n- Recognize ClassLoader.loadClass.\n- Do a dummy merge in VeriFlow by just overwriting registers.\n\nbug: 77513322\nTest: m\n\n(cherry picked from commit 295cba006e5212c06fde5ec956c81c507b2974e6)\n\nChange-Id: I888ff742197f4aec9aee68a03daca84f165e4114\n"
    },
    {
      "commit": "2ebff0539394b1936d3c364bec4b1ffd85cd630e",
      "tree": "ca32ca72b714b7abcdd4af7ec8f14e478fdb696b",
      "parents": [
        "c14f54b6d328eb23763391f98dfd776a720c4f54"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 04 22:32:03 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 06 17:02:50 2018 +0100"
      },
      "message": "[veridex] Add a flow analysis pass to detect precise reflection usages.\n\nbug: 77513322\nTest: m\n\n(cherry picked from commit 242758af3cf6eae389f43d3804acaabaa4ba93da)\n\nChange-Id: Ifd9bed0819541ea88fc5363b5c7c2726972456ed\n"
    },
    {
      "commit": "bce495e2a48822149c15e1b04e337babce0bd18e",
      "tree": "2f109ba3086041bbf25bf56b473233b070df28cf",
      "parents": [
        "7da5cea7288cd2dc412b1ea3568a800baeab778e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 03 12:45:41 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 04 13:48:06 2018 +0100"
      },
      "message": "[veridex] Detect more reflection uses.\n\n1) Look at all types referenced by a dex file.\n2) Add field names (without type) in the hidden lists.\n\nbug: 64382372\nbug: 77513322\nTest: m\n\n(cherry picked from commit 76fee048fcd9cfcb76578882ff7cc1779dbf5df2)\n\nChange-Id: Icaca46c15dd478e50053f43da914adb6d0bcf0e2\n"
    },
    {
      "commit": "11ed0275c48ad9a6301d914d3344a27467fcaf0c",
      "tree": "ad3995e2cc5ba7c1ac269e10712cd979a00de6f5",
      "parents": [
        "dd43fe71d956ca16aecf3a12d12a02dde72cfe82"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 28 18:18:48 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 29 13:59:43 2018 +0100"
      },
      "message": "[veridex] Detect reflection uses.\n\nAdd HiddenApiFinder to walk over the code item of\napp dex files, and find static linking uses and potential\nreflection uses.\n\nbug: 64382372\nTest: m\n\nChange-Id: I35f0b276703504f2e27a80007d410625ba7c9af3\n"
    },
    {
      "commit": "d1ef7178319074529af22cfff31a9a180e35655a",
      "tree": "35ee8cd77f8d29b9448ae74fedb68b4ffe81d5b3",
      "parents": [
        "b38988a227534ae17045dadedc24d2131d59b42d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 28 09:16:31 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 28 13:24:16 2018 +0000"
      },
      "message": "[veridex] Add an appcompat rule and appcompat.sh script.\n\nChange-Id: I73897ce7d274d6daf4225a40df0a39e9a6980744\n"
    },
    {
      "commit": "534a0a1807a4aa776b4bdfa894e566124b98979a",
      "tree": "a716c3b6d48d01015203cf1ca1350a91da70d636",
      "parents": [
        "2410a88a94b57247a1096562564c2f23528b3e46"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Mar 24 20:02:25 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Mar 24 20:09:03 2018 +0000"
      },
      "message": "[veridex] Log when linking against private APIs.\n\nChange-Id: Ib1f255f74ed8803fcf240c6d296f0b8813bb8554\n"
    },
    {
      "commit": "e826477ad8b5b7fa06c1ba5a86d4536bfbfc322b",
      "tree": "927bb46e37e8823785662c818b8c73646eaea96c",
      "parents": [
        "b87dcc1c0bcc819cf7b7109c6427cd98b84f6342"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 22 22:16:41 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Mar 24 13:27:09 2018 +0000"
      },
      "message": "[veridex] Resolve all type_id/method_id/field_id in app dex files.\n\nChange-Id: I6e28d70b6d3807944ccebc0f429c1b9b1d4b1eeb\n"
    },
    {
      "commit": "dd96ed35d00eb9ea6ad35a7a04d98078cfce7f0e",
      "tree": "cd834f58c3cebc4db9268ca7ae04dfa4838c6cbd",
      "parents": [
        "9ec1e24ebc683b15bb9c6db5554ac2ff9458adae"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 21 11:00:14 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 21 22:10:35 2018 +0000"
      },
      "message": "Add resolver to veridex.\n\nResolver runs over dex file and cache classes/methods/fields.\n\nChange-Id: I0574891cd72b5aa72f97784c6391912fa8ed8c1c\n"
    },
    {
      "commit": "51cba191cdd46cecad9e318bffae6aeb0d2e9123",
      "tree": "0ec894e8192e07f86ebdc737c79d275165bf7298",
      "parents": [
        "51038fc5f8be887ff86fe062e6a5af840e37726d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 19 11:11:18 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 20 16:53:23 2018 +0000"
      },
      "message": "Add veridex project.\n\nStarters for detecting app compat issues.\n\nChange-Id: I523c82bdae7f30506188c57bece34850bf922072\n"
    }
  ]
}
