)]}'
{
  "log": [
    {
      "commit": "3815d34e5f941909ceee9e879e309991c3d2a1d0",
      "tree": "35344372ca85cf8916d88f1294d79e31f77a1fd6",
      "parents": [
        "6c8fb01159bf760c751e9fc3937512e4027d9699"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Aug 10 23:54:44 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Mon Aug 28 23:26:11 2023 +0000"
      },
      "message": "Use String8/16 c_str\n\nBug: 295394788\nTest: make checkbuild\nChange-Id: I538720d4de2dcc038b417048209782ff605b7e30\n"
    },
    {
      "commit": "de423b7a58080408b57d3e60deef309816fb4d7d",
      "tree": "6aa114d8b9b005df00e88a5f34831c23383ff1c3",
      "parents": [
        "6269d2eb7a2740fc18c95dbba70d6686f178fdad"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Mar 31 19:55:25 2021 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Mar 31 19:55:25 2021 -0700"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to frameworks/base\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  drm/java/Android.bp\n  graphics/java/Android.bp\n  identity/Android.bp\n  identity/java/Android.bp\n  keystore/java/Android.bp\n  location/java/Android.bp\n  location/tests/Android.bp\n  lowpan/java/Android.bp\n  media/mca/effect/java/Android.bp\n  media/mca/filterfw/java/Android.bp\n  media/mca/filterpacks/java/Android.bp\n  mime/java/Android.bp\n  mms/java/Android.bp\n  opengl/java/Android.bp\n  rs/java/Android.bp\n  sax/java/Android.bp\n  services/tests/servicestests/test-apps/PackageParsingTestManifests/Android.bp\n  telecomm/java/Android.bp\n  telephony/common/Android.bp\n  tests/FlickerTests/test-apps/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  telephony/java/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: I2ee0af9ce8f74de2172b359b41d2c52a8b8f7e6c\n"
    },
    {
      "commit": "9b2c4a650b4eec3b091f6621e4c9267e9e062da3",
      "tree": "b924cad763f3fd5348e8a4c36f1666fa7bf27e20",
      "parents": [
        "459d9506eea5087661f905e21632c099250eec65"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Mar 30 11:30:23 2021 +0100"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Mar 30 12:26:55 2021 +0100"
      },
      "message": "Move framework java filegroups into subdirectories\n\nAll the java code used to build the framework jar and run metalava\nwas previously defined in the toplevel Android.bp files. Move these\ninto the subdirs where the source actually lives.\n\nThis simplifies the rules themselves (no path and needless prefix) and\ndeclutters the top level Android.bp.\n\nTest: m\nChange-Id: I97086e309eacb879d16facb8497d9940fa5ddaf6\n"
    },
    {
      "commit": "051ef786ace7a5177874fd9c2f654f0c8f041cfe",
      "tree": "79d0887efa908b754e190fa34e5d2111f1ce310a",
      "parents": [
        "80bbdfd100a4143154dfe17f4258b74806d5b749"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 12 17:07:05 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Feb 16 04:09:57 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to frameworks/base\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  apct-tests/perftests/autofill/Android.bp\n  apct-tests/perftests/blobstore/Android.bp\n  apct-tests/perftests/core/Android.bp\n  apct-tests/perftests/core/apps/overlay/Android.bp\n  apct-tests/perftests/core/apps/reources_manager/Android.bp\n  apct-tests/perftests/core/jni/Android.bp\n  apct-tests/perftests/multiuser/Android.bp\n  apct-tests/perftests/multiuser/apps/dummyapp/Android.bp\n  apct-tests/perftests/packagemanager/Android.bp\n  apct-tests/perftests/packagemanager/apps/query-all/Android.bp\n  apct-tests/perftests/textclassifier/Android.bp\n  apct-tests/perftests/utils/Android.bp\n  apct-tests/perftests/windowmanager/Android.bp\n  apex/Android.bp\n  apex/blobstore/framework/Android.bp\n  apex/blobstore/service/Android.bp\n  apex/jobscheduler/framework/Android.bp\n  apex/jobscheduler/service/Android.bp\n  apex/media/Android.bp\n  apex/media/aidl/Android.bp\n  apex/media/framework/Android.bp\n  cmds/am/Android.bp\n  cmds/app_process/Android.bp\n  cmds/appops/Android.bp\n  cmds/appwidget/Android.bp\n  cmds/backup/Android.bp\n  cmds/bmgr/Android.bp\n  cmds/bootanimation/Android.bp\n  cmds/bu/Android.bp\n  cmds/content/Android.bp\n  cmds/dpm/Android.bp\n  cmds/hid/Android.bp\n  cmds/hid/jni/Android.bp\n  cmds/idmap2/Android.bp\n  cmds/ime/Android.bp\n  cmds/incident/Android.bp\n  cmds/incident_helper/Android.bp\n  cmds/incidentd/Android.bp\n  cmds/input/Android.bp\n  cmds/interrupter/Android.bp\n  cmds/locksettings/Android.bp\n  cmds/pm/Android.bp\n  cmds/requestsync/Android.bp\n  cmds/screencap/Android.bp\n  cmds/sm/Android.bp\n  cmds/svc/Android.bp\n  cmds/telecom/Android.bp\n  cmds/uiautomator/Android.bp\n  cmds/uiautomator/cmds/uiautomator/Android.bp\n  cmds/uiautomator/instrumentation/Android.bp\n  cmds/uiautomator/library/Android.bp\n  cmds/vr/Android.bp\n  cmds/wm/Android.bp\n  config/Android.bp\n  core/java/android/service/wallpaper/Android.bp\n  core/jni/Android.bp\n  core/sysprop/Android.bp\n  core/tests/BroadcastRadioTests/Android.bp\n  core/tests/ConnectivityManagerTest/Android.bp\n  core/tests/PackageInstallerSessions/Android.bp\n  core/tests/PlatformCompatFramework/Android.bp\n  core/tests/bandwidthtests/Android.bp\n  core/tests/benchmarks/Android.bp\n  core/tests/bluetoothtests/Android.bp\n  core/tests/bugreports/Android.bp\n  core/tests/coretests/Android.bp\n  core/tests/coretests/BinderDeathRecipientHelperApp/Android.bp\n  core/tests/coretests/BinderProxyCountingTestApp/Android.bp\n  core/tests/coretests/BinderProxyCountingTestService/Android.bp\n  core/tests/coretests/BstatsTestApp/Android.bp\n  core/tests/coretests/DisabledTestApp/Android.bp\n  core/tests/coretests/EnabledTestApp/Android.bp\n  core/tests/coretests/aidl/Android.bp\n  core/tests/coretests/apks/Android.bp\n  core/tests/coretests/apks/install/Android.bp\n  core/tests/coretests/apks/install_bad_dex/Android.bp\n  core/tests/coretests/apks/install_complete_package_info/Android.bp\n  core/tests/coretests/apks/install_decl_perm/Android.bp\n  core/tests/coretests/apks/install_jni_lib/Android.bp\n  core/tests/coretests/apks/install_jni_lib_open_from_apk/Android.bp\n  core/tests/coretests/apks/install_loc_auto/Android.bp\n  core/tests/coretests/apks/install_loc_internal/Android.bp\n  core/tests/coretests/apks/install_loc_sdcard/Android.bp\n  core/tests/coretests/apks/install_loc_unspecified/Android.bp\n  core/tests/coretests/apks/install_use_perm_good/Android.bp\n  core/tests/coretests/apks/install_uses_feature/Android.bp\n  core/tests/coretests/apks/install_verifier_bad/Android.bp\n  core/tests/coretests/apks/install_verifier_good/Android.bp\n  core/tests/coretests/apks/keyset/Android.bp\n  core/tests/coretests/apks/locales/Android.bp\n  core/tests/coretests/apks/overlay_config/Android.bp\n  core/tests/coretests/apks/version/Android.bp\n  core/tests/coretests/apks/version_nosys/Android.bp\n  core/tests/featureflagtests/Android.bp\n  core/tests/hdmitests/Android.bp\n  core/tests/hosttests/test-apps/AutoLocTestApp/Android.bp\n  core/tests/hosttests/test-apps/AutoLocVersionedTestApp_v1/Android.bp\n  core/tests/hosttests/test-apps/AutoLocVersionedTestApp_v2/Android.bp\n  core/tests/hosttests/test-apps/ExternalLocAllPermsTestApp/Android.bp\n  core/tests/hosttests/test-apps/ExternalLocPermsFLTestApp/Android.bp\n  core/tests/hosttests/test-apps/ExternalLocTestApp/Android.bp\n  core/tests/hosttests/test-apps/ExternalLocVersionedTestApp_v1/Android.bp\n  core/tests/hosttests/test-apps/ExternalLocVersionedTestApp_v2/Android.bp\n  core/tests/hosttests/test-apps/ExternalSharedPerms/Android.bp\n  core/tests/hosttests/test-apps/ExternalSharedPermsBT/Android.bp\n  core/tests/hosttests/test-apps/ExternalSharedPermsDiffKey/Android.bp\n  core/tests/hosttests/test-apps/ExternalSharedPermsFL/Android.bp\n  core/tests/hosttests/test-apps/InternalLocTestApp/Android.bp\n  core/tests/hosttests/test-apps/MultiDexLegacyTestServicesTests/Android.bp\n  core/tests/hosttests/test-apps/NoLocTestApp/Android.bp\n  core/tests/hosttests/test-apps/NoLocVersionedTestApp_v1/Android.bp\n  core/tests/hosttests/test-apps/NoLocVersionedTestApp_v2/Android.bp\n  core/tests/hosttests/test-apps/SharedUid/32/Android.bp\n  core/tests/hosttests/test-apps/SharedUid/32/jni/Android.bp\n  core/tests/hosttests/test-apps/SharedUid/64/Android.bp\n  core/tests/hosttests/test-apps/SharedUid/64/jni/Android.bp\n  core/tests/hosttests/test-apps/SharedUid/dual/Android.bp\n  core/tests/hosttests/test-apps/SharedUid/dual/jni/Android.bp\n  core/tests/hosttests/test-apps/SharedUid/java_only/Android.bp\n  core/tests/hosttests/test-apps/SimpleTestApp/Android.bp\n  core/tests/hosttests/test-apps/UpdateExtToIntLocTestApp_v1_ext/Android.bp\n  core/tests/hosttests/test-apps/UpdateExtToIntLocTestApp_v2_int/Android.bp\n  core/tests/hosttests/test-apps/UpdateExternalLocTestApp_v1_ext/Android.bp\n  core/tests/hosttests/test-apps/UpdateExternalLocTestApp_v2_none/Android.bp\n  core/tests/hosttests/test-apps/VersatileTestApp_Auto/Android.bp\n  core/tests/hosttests/test-apps/VersatileTestApp_External/Android.bp\n  core/tests/hosttests/test-apps/VersatileTestApp_Internal/Android.bp\n  core/tests/hosttests/test-apps/VersatileTestApp_None/Android.bp\n  core/tests/mockingcoretests/Android.bp\n  core/tests/notificationtests/Android.bp\n  core/tests/overlaytests/device/Android.bp\n  core/tests/overlaytests/device/test-apps/AppOverlayOne/Android.bp\n  core/tests/overlaytests/device/test-apps/AppOverlayTwo/Android.bp\n  core/tests/overlaytests/device/test-apps/FrameworkOverlay/Android.bp\n  core/tests/overlaytests/host/Android.bp\n  core/tests/overlaytests/remount/Android.bp\n  core/tests/overlaytests/remount/test-apps/Overlay/Android.bp\n  core/tests/overlaytests/remount/test-apps/SharedLibrary/Android.bp\n  core/tests/overlaytests/remount/test-apps/SharedLibraryOverlay/Android.bp\n  core/tests/overlaytests/remount/test-apps/Target/Android.bp\n  core/tests/packagemanagertests/Android.bp\n  core/tests/privacytests/Android.bp\n  core/tests/screenshothelpertests/Android.bp\n  core/tests/systemproperties/Android.bp\n  core/tests/utillib/Android.bp\n  core/tests/utiltests/Android.bp\n  core/tests/utiltests/jni/Android.bp\n  core/tests/uwbtests/Android.bp\n  core/xsd/Android.bp\n  core/xsd/vts/Android.bp\n  data/etc/Android.bp\n  data/etc/car/Android.bp\n  data/fonts/Android.bp\n  data/keyboards/Android.mk\n  drm/jni/Android.bp\n  errorprone/Android.bp\n  graphics/proto/Android.bp\n  keystore/Android.bp\n  keystore/tests/Android.bp\n  libs/WindowManager/Jetpack/Android.bp\n  libs/WindowManager/Shell/Android.bp\n  libs/WindowManager/Shell/tests/Android.bp\n  libs/androidfw/Android.bp\n  libs/androidfw/fuzz/resourcefile_fuzzer/Android.bp\n  libs/hostgraphics/Android.bp\n  libs/incident/Android.bp\n  libs/input/Android.bp\n  libs/input/tests/Android.bp\n  libs/protoutil/Android.bp\n  libs/services/Android.bp\n  libs/storage/Android.bp\n  libs/usb/tests/AccessoryChat/Android.bp\n  libs/usb/tests/AccessoryChat/accessorychat/Android.bp\n  location/lib/Android.bp\n  location/tests/Android.bp\n  location/tests/locationtests/Android.bp\n  lowpan/tests/Android.bp\n  media/Android.bp\n  media/java/Android.bp\n  media/java/android/media/tv/tunerresourcemanager/Android.bp\n  media/jni/Android.bp\n  media/jni/audioeffect/Android.bp\n  media/jni/soundpool/Android.bp\n  media/jni/soundpool/tests/Android.bp\n  media/lib/remotedisplay/Android.bp\n  media/lib/signer/Android.bp\n  media/lib/tvremote/Android.bp\n  media/lib/tvremote/tests/Android.bp\n  media/mca/filterfw/Android.bp\n  media/mca/filterfw/native/Android.bp\n  media/mca/filterpacks/Android.bp\n  media/mca/samples/CameraEffectsRecordingSample/Android.bp\n  media/mca/tests/Android.bp\n  media/native/midi/Android.bp\n  media/packages/BluetoothMidiService/Android.bp\n  media/packages/BluetoothMidiService/tests/unit/Android.bp\n  media/tests/AudioPolicyTest/Android.bp\n  media/tests/CameraBrowser/Android.bp\n  media/tests/EffectsTest/Android.bp\n  media/tests/MediaDump/Android.bp\n  media/tests/MediaFrameworkTest/Android.bp\n  media/tests/MediaRouter/Android.bp\n  media/tests/MtpTests/Android.bp\n  media/tests/ScoAudioTest/Android.bp\n  media/tests/SoundPoolTest/Android.bp\n  media/tests/TunerTest/Android.bp\n  media/tests/audiotests/Android.bp\n  media/tests/players/Android.bp\n  mime/Android.bp\n  native/android/Android.bp\n  native/graphics/jni/Android.bp\n  native/webview/loader/Android.bp\n  nfc-extras/Android.bp\n  nfc-extras/tests/Android.bp\n  packages/AppPredictionLib/Android.bp\n  packages/BackupEncryption/Android.bp\n  packages/BackupEncryption/test/robolectric-integration/Android.bp\n  packages/BackupEncryption/test/robolectric/Android.bp\n  packages/BackupEncryption/test/unittest/Android.bp\n  packages/BackupRestoreConfirmation/Android.bp\n  packages/CarSystemUI/Android.bp\n  packages/CarrierDefaultApp/Android.bp\n  packages/CarrierDefaultApp/tests/unit/Android.bp\n  packages/CompanionDeviceManager/Android.bp\n  packages/Connectivity/framework/Android.bp\n  packages/Connectivity/service/Android.bp\n  packages/CtsShim/Android.bp\n  packages/CtsShim/build/Android.bp\n  packages/CtsShim/build/jni/Android.bp\n  packages/DynamicSystemInstallationService/Android.bp\n  packages/DynamicSystemInstallationService/tests/Android.bp\n  packages/EasterEgg/Android.bp\n  packages/EncryptedLocalTransport/Android.bp\n  packages/ExtShared/Android.bp\n  packages/ExternalStorageProvider/Android.bp\n  packages/ExternalStorageProvider/tests/Android.bp\n  packages/FakeOemFeatures/Android.bp\n  packages/FusedLocation/Android.bp\n  packages/InputDevices/Android.bp\n  packages/LocalTransport/Android.bp\n  packages/PackageInstaller/Android.bp\n  packages/PrintRecommendationService/Android.bp\n  packages/PrintSpooler/Android.bp\n  packages/PrintSpooler/jni/Android.bp\n  packages/PrintSpooler/tests/outofprocess/Android.bp\n  packages/SettingsLib/ActionBarShadow/Android.bp\n  packages/SettingsLib/ActionButtonsPreference/Android.bp\n  packages/SettingsLib/AdaptiveIcon/Android.bp\n  packages/SettingsLib/Android.bp\n  packages/SettingsLib/AppPreference/Android.bp\n  packages/SettingsLib/BarChartPreference/Android.bp\n  packages/SettingsLib/DisplayDensityUtils/Android.bp\n  packages/SettingsLib/EntityHeaderWidgets/Android.bp\n  packages/SettingsLib/HelpUtils/Android.bp\n  packages/SettingsLib/LayoutPreference/Android.bp\n  packages/SettingsLib/ProgressBar/Android.bp\n  packages/SettingsLib/RadioButtonPreference/Android.bp\n  packages/SettingsLib/RestrictedLockUtils/Android.bp\n  packages/SettingsLib/SchedulesProvider/Android.bp\n  packages/SettingsLib/SearchProvider/Android.bp\n  packages/SettingsLib/SearchWidget/Android.bp\n  packages/SettingsLib/SettingsSpinner/Android.bp\n  packages/SettingsLib/SettingsTheme/Android.bp\n  packages/SettingsLib/Tile/Android.bp\n  packages/SettingsLib/Utils/Android.bp\n  packages/SettingsLib/search/Android.bp\n  packages/SettingsLib/tests/integ/Android.bp\n  packages/SettingsLib/tests/robotests/Android.bp\n  packages/SettingsProvider/Android.bp\n  packages/SharedStorageBackup/Android.bp\n  packages/Shell/Android.bp\n  packages/Shell/tests/Android.bp\n  packages/SimAppDialog/Android.bp\n  packages/SoundPicker/Android.bp\n  packages/StatementService/Android.bp\n  packages/SystemUI/Android.bp\n  packages/SystemUI/plugin/Android.bp\n  packages/SystemUI/plugin/ExamplePlugin/Android.bp\n  packages/SystemUI/plugin_core/Android.bp\n  packages/SystemUI/shared/Android.bp\n  packages/VpnDialogs/Android.bp\n  packages/WAPPushManager/Android.bp\n  packages/WAPPushManager/tests/Android.bp\n  packages/WallpaperBackup/Android.bp\n  packages/WallpaperCropper/Android.bp\n  packages/overlays/Android.mk\n  packages/overlays/tests/Android.bp\n  packages/services/PacProcessor/Android.bp\n  packages/services/PacProcessor/jni/Android.bp\n  packages/services/Proxy/Android.bp\n  proto/Android.bp\n  rs/jni/Android.mk\n  samples/demo/haptic-assessment/Android.bp\n  sax/tests/saxtests/Android.bp\n  services/Android.bp\n  services/accessibility/Android.bp\n  services/appprediction/Android.bp\n  services/appwidget/Android.bp\n  services/autofill/Android.bp\n  services/backup/Android.bp\n  services/backup/backuplib/Android.bp\n  services/companion/Android.bp\n  services/contentcapture/Android.bp\n  services/contentsuggestions/Android.bp\n  services/core/Android.bp\n  services/core/java/com/android/server/vcn/Android.bp\n  services/core/jni/Android.bp\n  services/core/xsd/Android.bp\n  services/core/xsd/vts/Android.bp\n  services/coverage/Android.bp\n  services/devicepolicy/Android.bp\n  services/incremental/Android.bp\n  services/midi/Android.bp\n  services/net/Android.bp\n  services/people/Android.bp\n  services/print/Android.bp\n  services/profcollect/Android.bp\n  services/restrictions/Android.bp\n  services/robotests/Android.bp\n  services/robotests/backup/Android.bp\n  services/systemcaptions/Android.bp\n  services/tests/PackageManagerComponentOverrideTests/Android.bp\n  services/tests/PackageManagerServiceTests/host/Android.bp\n  services/tests/PackageManagerServiceTests/host/test-apps/Android.bp\n  services/tests/mockingservicestests/Android.bp\n  services/tests/rescueparty/Android.bp\n  services/tests/servicestests/Android.bp\n  services/tests/servicestests/aidl/Android.bp\n  services/tests/servicestests/apks/Android.bp\n  services/tests/servicestests/apks/install-split-base/Android.bp\n  services/tests/servicestests/apks/install-split-feature-a/Android.bp\n  services/tests/servicestests/apks/install_intent_filters/Android.bp\n  services/tests/servicestests/apks/install_uses_sdk/Android.bp\n  services/tests/servicestests/test-apps/ConnTestApp/Android.bp\n  services/tests/servicestests/test-apps/JobTestApp/Android.bp\n  services/tests/servicestests/test-apps/PackageParserApp/Android.bp\n  services/tests/servicestests/test-apps/PackageParsingTestManifests/Android.bp\n  services/tests/servicestests/test-apps/SimpleServiceTestApp/Android.bp\n  services/tests/servicestests/test-apps/SuspendTestApp/Android.bp\n  services/tests/shortcutmanagerutils/Android.bp\n  services/tests/uiservicestests/Android.bp\n  services/tests/wmtests/Android.bp\n  services/usage/Android.bp\n  services/usb/Android.bp\n  services/voiceinteraction/Android.bp\n  services/wifi/Android.bp\n  startop/apps/test/Android.bp\n  startop/iorap/Android.bp\n  startop/iorap/functional_tests/Android.bp\n  startop/iorap/stress/Android.bp\n  startop/iorap/tests/Android.bp\n  startop/view_compiler/Android.bp\n  startop/view_compiler/dex_builder_test/Android.bp\n  test-base/hiddenapi/Android.bp\n  test-mock/Android.bp\n  test-runner/tests/Android.bp\n  tests/AccessibilityEventsLogger/Android.bp\n  tests/AccessoryDisplay/common/Android.bp\n  tests/AccessoryDisplay/sink/Android.bp\n  tests/AccessoryDisplay/source/Android.bp\n  tests/ActivityManagerPerfTests/stub-app/Android.bp\n  tests/ActivityManagerPerfTests/test-app/Android.bp\n  tests/ActivityManagerPerfTests/tests/Android.bp\n  tests/ActivityManagerPerfTests/utils/Android.bp\n  tests/ActivityTests/Android.bp\n  tests/ActivityViewTest/Android.bp\n  tests/AmSlam/Android.bp\n  tests/ApkVerityTest/Android.bp\n  tests/ApkVerityTest/ApkVerityTestApp/Android.bp\n  tests/ApkVerityTest/block_device_writer/Android.bp\n  tests/AppLaunch/Android.bp\n  tests/AppLaunchWear/Android.bp\n  tests/AppResourcesLoaders/Android.bp\n  tests/AppResourcesLoaders/Overlay/Android.bp\n  tests/Assist/Android.bp\n  tests/AutoVerify/app1/Android.bp\n  tests/AutoVerify/app2/Android.bp\n  tests/AutoVerify/app3/Android.bp\n  tests/AutoVerify/app4/Android.bp\n  tests/BackgroundDexOptServiceIntegrationTests/Android.bp\n  tests/BandwidthTests/Android.bp\n  tests/BatteryWaster/Android.bp\n  tests/BiDiTests/Android.bp\n  tests/BlobStoreTestUtils/Android.bp\n  tests/BootImageProfileTest/Android.bp\n  tests/BrowserPowerTest/Android.bp\n  tests/Camera2Tests/SmartCamera/SimpleCamera/jni/Android.bp\n  tests/CameraPrewarmTest/Android.bp\n  tests/Codegen/Android.bp\n  tests/Compatibility/Android.bp\n  tests/CoreTests/android/Android.bp\n  tests/DataIdleTest/Android.bp\n  tests/DozeTest/Android.bp\n  tests/DpiTest/Android.bp\n  tests/DynamicCodeLoggerIntegrationTests/Android.mk\n  tests/FeatureSplit/base/Android.bp\n  tests/FeatureSplit/feature1/Android.bp\n  tests/FeatureSplit/feature2/Android.bp\n  tests/FixVibrateSetting/Android.bp\n  tests/FlickerTests/Android.bp\n  tests/FlickerTests/test-apps/Android.bp\n  tests/FlickerTests/test-apps/flickerapp/Android.bp\n  tests/FrameworkPerf/Android.bp\n  tests/GamePerformance/Android.bp\n  tests/GridLayoutTest/Android.bp\n  tests/HierarchyViewerTest/Android.bp\n  tests/HugeBackup/Android.bp\n  tests/HwAccelerationTest/Android.bp\n  tests/Internal/Android.bp\n  tests/JankBench/Android.bp\n  tests/JobSchedulerPerfTests/Android.bp\n  tests/JobSchedulerTestApp/Android.bp\n  tests/LargeAssetTest/Android.bp\n  tests/LegacyAssistant/Android.bp\n  tests/LocalizationTest/Android.bp\n  tests/LocationTracker/Android.bp\n  tests/LotsOfApps/Android.bp\n  tests/LowStorageTest/Android.bp\n  tests/ManagedProfileLifecycleStressTest/Android.bp\n  tests/ManagedProfileLifecycleStressTest/app/DummyDPC/Android.bp\n  tests/MemoryUsage/Android.bp\n  tests/MirrorSurfaceTest/Android.bp\n  tests/NativeProcessesMemoryTest/Android.bp\n  tests/NetworkSecurityConfigTest/Android.bp\n  tests/NullHomeTest/Android.bp\n  tests/OdmApps/Android.bp\n  tests/OdmApps/app/Android.bp\n  tests/OdmApps/priv-app/Android.bp\n  tests/OneMedia/Android.bp\n  tests/PackageWatchdog/Android.bp\n  tests/PlatformCompatGating/Android.bp\n  tests/PlatformCompatGating/test-rules/Android.bp\n  tests/ProtoInputStreamTests/Android.bp\n  tests/RemoteDisplayProvider/Android.bp\n  tests/RenderThreadTest/Android.bp\n  tests/RollbackTest/Android.bp\n  tests/SerialChat/Android.bp\n  tests/ServiceCrashTest/Android.bp\n  tests/SharedLibrary/client/Android.bp\n  tests/SharedLibrary/lib/Android.bp\n  tests/ShowWhenLockedApp/Android.bp\n  tests/SmokeTest/Android.bp\n  tests/SmokeTest/tests/Android.bp\n  tests/SmokeTestApps/Android.bp\n  tests/SoundTriggerTestApp/Android.bp\n  tests/Split/Android.bp\n  tests/StagedInstallTest/Android.bp\n  tests/StatusBar/Android.bp\n  tests/SurfaceComposition/Android.bp\n  tests/SurfaceControlViewHostTest/Android.bp\n  tests/SystemMemoryTest/device/Android.bp\n  tests/SystemMemoryTest/host/Android.bp\n  tests/SystemUIDemoModeController/Android.bp\n  tests/TaskOrganizerTest/Android.bp\n  tests/TelephonyCommonTests/Android.bp\n  tests/TouchLatency/Android.bp\n  tests/TransformTest/Android.bp\n  tests/TtsTests/Android.bp\n  tests/UiBench/Android.bp\n  tests/UsageReportingTest/Android.bp\n  tests/UsageStatsPerfTests/Android.bp\n  tests/UsageStatsTest/Android.bp\n  tests/UsbHostExternalManagmentTest/AoapTestDevice/Android.bp\n  tests/UsbHostExternalManagmentTest/AoapTestHost/Android.bp\n  tests/UsbHostExternalManagmentTest/UsbHostExternalManagmentTestApp/Android.bp\n  tests/UsbManagerTests/Android.bp\n  tests/UsbManagerTests/lib/Android.bp\n  tests/UsbTests/Android.bp\n  tests/UsesFeature2Test/Android.bp\n  tests/VectorDrawableTest/Android.bp\n  tests/VoiceEnrollment/Android.bp\n  tests/VoiceInteraction/Android.bp\n  tests/WallpaperTest/Android.bp\n  tests/WindowAnimationJank/Android.bp\n  tests/WindowInsetsTests/Android.bp\n  tests/appwidgets/AppWidgetHostTest/Android.bp\n  tests/appwidgets/AppWidgetProviderTest/Android.bp\n  tests/backup/Android.mk\n  tests/benchmarks/Android.bp\n  tests/libs-permissions/Android.bp\n  tests/net/Android.bp\n  tests/net/common/Android.bp\n  tests/net/deflake/Android.bp\n  tests/net/integration/Android.bp\n  tests/net/jni/Android.bp\n  tests/net/smoketest/Android.bp\n  tests/notification/Android.bp\n  tests/permission/Android.bp\n  tests/privapp-permissions/Android.bp\n  tests/testables/Android.bp\n  tests/testables/tests/Android.bp\n  tests/utils/StubIME/Android.bp\n  tests/utils/hostutils/Android.bp\n  tests/utils/testutils/Android.bp\n  tests/vcn/Android.bp\n  tools/aapt/Android.bp\n  tools/aapt2/Android.bp\n  tools/aapt2/integration-tests/AutoVersionTest/Android.bp\n  tools/aapt2/integration-tests/BasicTest/Android.bp\n  tools/aapt2/integration-tests/MergeOnlyTest/LeafLib/Android.mk\n  tools/aapt2/integration-tests/MergeOnlyTest/LocalLib/Android.mk\n  tools/aapt2/integration-tests/NamespaceTest/LibOne/Android.mk\n  tools/aapt2/integration-tests/NamespaceTest/LibTwo/Android.mk\n  tools/aapt2/integration-tests/StaticLibTest/App/Android.bp\n  tools/aapt2/integration-tests/StaticLibTest/LibOne/Android.bp\n  tools/aapt2/integration-tests/StaticLibTest/LibTwo/Android.bp\n  tools/aapt2/integration-tests/SymlinkTest/Android.bp\n  tools/bit/Android.bp\n  tools/codegen/Android.bp\n  tools/dump-coverage/Android.bp\n  tools/incident_report/Android.bp\n  tools/incident_section_gen/Android.bp\n  tools/lock_agent/Android.bp\n  tools/locked_region_code_injection/Android.bp\n  tools/obbtool/Android.bp\n  tools/powermodel/Android.bp\n  tools/preload-check/Android.bp\n  tools/preload-check/device/Android.bp\n  tools/preload/loadclass/Android.bp\n  tools/processors/staledataclass/Android.bp\n  tools/processors/view_inspector/Android.bp\n  tools/protologtool/Android.bp\n  tools/sdkparcelables/Android.bp\n  tools/split-select/Android.bp\n  tools/streaming_proto/Android.bp\n  tools/validatekeymaps/Android.bp\n  wifi/java/Android.bp\n  wifi/tests/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  libs/hwui/Android.bp\n  native/webview/plat_support/Android.bp\n  obex/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-CC-BY SPDX-license-identifier-CPL-1.0\n    SPDX-license-identifier-GPL SPDX-license-identifier-GPL-2.0\n    SPDX-license-identifier-MIT SPDX-license-identifier-Unicode-DFS\n    SPDX-license-identifier-W3C legacy_unencumbered\nto:\n  Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    legacy_unencumbered\nto:\n  core/java/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-CPL-1.0\nto:\n  test-base/Android.bp\n  test-runner/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-GPL\nto:\n  core/res/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-GPL-2.0\nto:\n  libs/usb/Android.bp\n  libs/usb/tests/accessorytest/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\nto:\n  tools/preload/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\n    SPDX-license-identifier-Unicode-DFS\nto:\n  api/Android.bp\n  boot/Android.bp\n  cmds/device_config/Android.bp\n  cmds/settings/Android.bp\n  core/api/Android.bp\n  core/tests/coretests/certs/Android.bp\n  core/tests/overlaytests/remount/test-apps/certs/Android.bp\n  core/tests/overlaytests/remount/test-apps/overlaid_apex/Android.bp\n  core/tests/overlaytests/remount/test-apps/overlay_apex/Android.bp\n  libs/tracingproxy/Android.bp\n  services/startop/Android.bp\n  test-legacy/Android.mk\n  tests/ApkVerityTest/testdata/Android.bp\n  tests/TransitionTests/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\n\nChange-Id: Ic44d662936d1ff0cae7fbe915932b37aa4e4869a\nMerged-in: I6e9103c3275cb2e6df5dc586588eccd7d2ab6b06\n"
    },
    {
      "commit": "37c6b6deeb9d8bb526fea6b8a3108b9e269e400f",
      "tree": "6942415b6741404a0575dcd93e3986eb8475c3a6",
      "parents": [
        "4847c4b7c29fcf2b1044e1476e4483b1b405635c"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Wed Dec 16 13:56:28 2020 +0000"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Thu Dec 17 00:07:23 2020 +0000"
      },
      "message": "Make a copy of libcore.util.ArraysUtils in framework\n\nIt helps remove it from the @CorePlatformApi\n\nBug: 154796679\nTest: ArrayUtilsTest\nMerged-In: I0c8f194a74a16b2cc46f9eea4571d5fb674fbc28\nChange-Id: I0c8f194a74a16b2cc46f9eea4571d5fb674fbc28\n"
    },
    {
      "commit": "c7c4a74a78f795806277021aecf583f6895ae6c9",
      "tree": "447c66377958071f5f451f910f49e91e02d2fde4",
      "parents": [
        "b84eaab33192da65c95a954f9859159186789709",
        "fab0ab3c9cd160e50c09017c79f75f5f16342dcb"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Dec 08 16:01:16 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Dec 08 16:01:16 2020 +0000"
      },
      "message": "Improve OWNERS coverage across frameworks/base/. am: fab0ab3c9c\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1519383\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I0211462ecbcd9ad66f66af87e31cf12e1582fc65\n"
    },
    {
      "commit": "fab0ab3c9cd160e50c09017c79f75f5f16342dcb",
      "tree": "f0660e3c5840947cc725d790b1e8286d544679e0",
      "parents": [
        "061c2ec3b61fb2d62be2c46dee9696e5710dc55f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Dec 08 08:35:54 2020 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Dec 08 08:36:27 2020 -0700"
      },
      "message": "Improve OWNERS coverage across frameworks/base/.\n\nAs general background, OWNERS files expedite code reviews by helping\ncode authors quickly find relevant reviewers, and they also ensure\nthat stakeholders are involved in code changes in their areas.\n\nSome teams under frameworks/base/ have been using OWNERS files\nsuccessfully for many years, and we\u0027re ready to expand them to cover\nmore areas.  Here\u0027s the historical coverage statistics for the last\ntwo years of changes before these new OWNERS changes land:\n\n-- 56% of changes are fully covered by OWNERS\n-- 17% of changes are partially covered by OWNERS\n-- 25% of changes have no OWNERS coverage\n\nWorking closely with team leads, we\u0027ve now identified clear OWNERS on\na per-package basis, and we\u0027re using \"include\" directives whenever\npossible to to simplify future maintenance.  With this extensive\neffort, we\u0027ve now improved our coverage as follows:\n\n-- 98% of changes are fully covered by OWNERS\n-- 1% of changes are partially covered by OWNERS\n-- 1% of changes have no OWNERS coverage\n\nThis specific change is automatically generated by a script from\ndetailed ownership information confirmed by team leads.\n\nBug: 174932174\nTest: manual\nExempt-From-Owner-Approval: refactoring with team leads buy-in\nMerged-In: I9789c97c1de8e5d962b48c29c57d82fe83729eba\nChange-Id: I9789c97c1de8e5d962b48c29c57d82fe83729eba\n"
    },
    {
      "commit": "8836e887075728ebebef5a5305a1148a9a7b0a49",
      "tree": "7b546930e346fee9d274ae74ca85048563384677",
      "parents": [
        "ae356a638d4ac9d7cab098ca312cc7c41575b7c4",
        "e0b64f17785dc50771e73a8a1ef9bdd38d2df4b9"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sun Dec 06 19:59:02 2020 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Dec 07 00:39:42 2020 -0800"
      },
      "message": "DO NOT MERGE - Merge RQ1A.201205.011\n\nBug: 172690556\nMerged-In: I26bed08456197721d07f2fab563be0c54e43efd2\nChange-Id: Ic1ac100efa50687ccfcbb87ee91a57703105afad\n"
    },
    {
      "commit": "a37060dbba3ccdbb3a9385a8e51a76b5ea1124d9",
      "tree": "84968760a5ed39d4f96b07194869e33ca43b6452",
      "parents": [
        "1a6f1fb402b96df561b9672aef1e4fce8a13de80"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Mon Sep 28 21:07:23 2020 -0700"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Tue Oct 13 01:07:58 2020 +0000"
      },
      "message": "Use shared libdrmframeworkcommon.\n\nThe libdrmframeworkcommon was statically linked\nto multiple libraries used by libfwdlockengine.\nWhen the shared libraries closes, the same block\nof static memory will be freed twice.\n\nTest: CTS forwardlock tests\n  atest CtsDrmTestCases\nBug: 155647761\nChange-Id: I45113549772d48e925082d15659b1409cbed6499\n(cherry picked from commit 4ed2e6b76dc955a400ed252ce162ee6335276858)\n"
    },
    {
      "commit": "628590d7ec80e10a3fc24b1c18a1afb55cca10a8",
      "tree": "4b1c3f52d86d7fb53afbe9e9438468588fa489f8",
      "parents": [
        "b11b8ec3aec8bb42f2c07e1c5ac7942da293baa8",
        "d2d3a20624d968199353ccf6ddbae6f3ac39c9af"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Aug 31 21:21:38 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Aug 31 21:21:38 2020 -0700"
      },
      "message": "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)\n\nBug: 166295507\nMerged-In: I3d92a6de21a938f6b352ec26dc23420c0fe02b27\nChange-Id: Ifdb80563ef042738778ebb8a7581a97c4e3d96e2\n"
    },
    {
      "commit": "0739a50dd18b434e55ed5cf94b5aee782f58e300",
      "tree": "ac9dc7e820210368ee33d0f281371706f0dc816b",
      "parents": [
        "6bfe7f9a2663361b50a436e991d6771d0651b0e3"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Aug 13 16:06:07 2020 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Aug 13 16:07:08 2020 -0700"
      },
      "message": "Update language to comply with Android\u0027s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for reference\n\nBUG\u003d161896447\n\nChange-Id: I8ca0bbfdc5ecbef3dc9ccff3ef40a14de4e9c6fc\n"
    },
    {
      "commit": "b3459d4fe63dea1a7afd8bdfe20641c5be0a0570",
      "tree": "d4798f7fba0ff2d2893f0b6c97c192cea20299ff",
      "parents": [
        "4b258921e0a6b0a0d3ee76c052812eb2c16fd295"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jun 02 13:22:06 2020 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 24 14:13:49 2020 +0100"
      },
      "message": "Update to use nativehelper/JNIPlatformHelp.h\n\nReflects refactoring of JNI helper code that depends on private\nmethods within libnativehelper.\n\nBug: 151443957\nTest: Treehugger\nChange-Id: I7af128f42ae89a77a8e3fb113ea533331153c535\nMerged-In: I7af128f42ae89a77a8e3fb113ea533331153c535\nExempt-From-Owner-Approval: cherry pick\n(cherry picked from commit 329c612e3d5ae440bf13e1f5fc9a4012263524e9)\n"
    },
    {
      "commit": "864d304156d1ef8985ee39c3c1858349b133b365",
      "tree": "6dbb05c6f946b28704934996f39663b25bd98fa6",
      "parents": [
        "ad91817d2b86cb4c5e55f99fcb90a51c8fa9f1e0"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jun 02 13:22:06 2020 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 24 12:46:47 2020 +0000"
      },
      "message": "Update to use nativehelper/JNIPlatformHelp.h\n\nReflects refactoring of JNI helper code that depends on private\nmethods within libnativehelper.\n\nBug: 151443957\nTest: Treehugger\nChange-Id: I7af128f42ae89a77a8e3fb113ea533331153c535\nMerged-In: I7af128f42ae89a77a8e3fb113ea533331153c535\nExempt-From-Owner-Approval: cherry pick\n(cherry picked from commit 329c612e3d5ae440bf13e1f5fc9a4012263524e9)\n"
    },
    {
      "commit": "ea42f766bd073eed9f13473a69ae47a6b2de007f",
      "tree": "13640657efe7cdddf25e42517160b909ebd9d9b1",
      "parents": [
        "abcd5a1db77e935a9bd3c723e7790d7c58fa8543"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Jan 21 14:00:04 2020 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jan 22 14:00:14 2020 -0800"
      },
      "message": "Deprecate legacy Drm APIs\n\nBug: 134789967\nTest: build\nChange-Id: I55243cad467b3ecc189742d8f3569f289111a613\n"
    },
    {
      "commit": "530deca4be5a7ca0ca911cb8da0b653e25e99910",
      "tree": "4001fd341bfbc76db711be0dd9066fe0a9ea6f63",
      "parents": [
        "1403ee3ad54833761da7ea5f72ffef70fa340c88"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Dec 06 14:44:18 2019 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Dec 06 14:44:21 2019 -0700"
      },
      "message": "More robust DRM support, including tests.\n\nBased on guidance from the DRM team, we should pass DRM files\ndirectly to MediaMetadataRetriever, which can be used to obtain both\nthe underlying MIME type and the typical metadata to be indexed.\n\nTo help ensure this works correctly and doesn\u0027t regress, borrow\nstrategy from CTS which creates new Forward Locked media items for\ntesting, and verify that we scan them correctly.\n\nAllow MediaMetadataRetriever to override the MIME type obtained\nfrom a file extension, but only when the primary type agrees with\nthe extension.  This is the same policy we apply to XMP metadata.\n\nBug: 141146658\nTest: atest --test-mapping packages/providers/MediaProvider\nChange-Id: I494a539a81ed39411a3b59c4433b6520967962c2\n"
    },
    {
      "commit": "d9a6af2b4d593284b0a7a200826308bf0f925bfc",
      "tree": "f4c472d943eb990fe0f2c06683eb0c72a742b7df",
      "parents": [
        "97dbb7b9684c741ad1c3718fb1cc1e62dc9457e6"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Nov 27 11:35:24 2018 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Jan 09 06:57:13 2019 +0000"
      },
      "message": "Allow https URIs in convertUriToPath\n\nbug:120049214\ntest: run cts -m CtsDrmTestCases -t android.drm.cts.DRMTest#testSupportsHttps\n\nChange-Id: Id3f7e6c002ca2cca6b4c6561fced659882c91d21\n"
    },
    {
      "commit": "a9d6a27a2ebb36d2be43a52cb0edb7066e5108aa",
      "tree": "c71703964fcb5dd05110eaa7bc38483f17758f33",
      "parents": [
        "bc4d61ed6c0eecc74de4861ab9d526d595286828",
        "60f55a255f1cd379bfc6cbc9122c43d48925f7c4"
      ],
      "author": {
        "name": "Pete Gillin",
        "email": "peteg@google.com",
        "time": "Wed May 16 07:11:54 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 16 07:11:54 2018 -0700"
      },
      "message": "Stop using Arrays.checkOffsetAndCount.\nam: 60f55a255f\n\nChange-Id: Ic9f894d8fe813d0bb6e3776790ff113d2826d881\n"
    },
    {
      "commit": "4888b1f6f0f607de913fbd0dc5eaed6575464c06",
      "tree": "662ea285f420c21f406e8dc09b6fbf42b7b28880",
      "parents": [
        "5d58a302e3dc3e63c1d5cc87807f29863e89b2a9"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed May 09 20:30:33 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon May 14 16:47:02 2018 -0700"
      },
      "message": "Convert to Soong\n\nSee build/soong/README.md for more information.\n\nTest: m libframeworks_coretests_jni\nTest: m FrameworkCoreTests_install\nTest: m libshim_jni\nTest: m CtsShimPrivUpgrade\nTest: m libfilterfw\nTest: m PMTest_Java_dual\nTest: m libdefcontainer_jni\nTest: m libperftestscore_jni\nTest: m libpmtest32 libpmtest64\nTest: m libprintspooler_jni\nTest: m libsmartcamera_jni\nTest: m idmap\nTest: m libdrmframework_jni\nTest: m libdvr_loader com.google.vr.platform com.google.vr.platform.xml\nTest: m libfilterpack_imageproc libfilterpack_base\nTest: m libwebviewchromium_loader\nTest: m shared_mem_test\nTest: m test-touchlag\nChange-Id: I868561dd237fa28647896d59049ab9260373ada1\n"
    },
    {
      "commit": "60f55a255f1cd379bfc6cbc9122c43d48925f7c4",
      "tree": "f1b6a0de3a727a849285a2fba59fd5aae40cbf27",
      "parents": [
        "d0b9f983d6687fc88074926f5e5e5c1b7ac7ee97"
      ],
      "author": {
        "name": "Pete Gillin",
        "email": "peteg@google.com",
        "time": "Thu May 10 15:40:32 2018 +0100"
      },
      "committer": {
        "name": "Pete Gillin",
        "email": "peteg@google.com",
        "time": "Thu May 10 18:17:50 2018 +0100"
      },
      "message": "Stop using Arrays.checkOffsetAndCount.\n\nStart using ArrayUtils.throwsIfOutOfBounds instead. The Arrays method\nis going to be removed.\n\nBug: 78447530\nTest: cts-tradefed run cts-dev -m CtsOsTestCases (shows only unrelated failures: two user/userdebug mismatches and one from b/79471510)\nTest: cts-tradefed run cts-dev -m CtsDrmTestCases\nTest: adb shell am instrument -w -e class android.content.pm.LimitedLengthInputStreamTest com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner\nTest: adb shell am instrument -w -e class android.os.FileBridgeTest com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner\n\nChange-Id: Ib3cd4f4ead61dbec1ccdc94b2ad4ad9c28574582\n"
    },
    {
      "commit": "9f430b2782849090d2e5e3737304cd26724366fa",
      "tree": "80e2e9cbd26b7805380828737e9b0553fbafda23",
      "parents": [
        "fe4ec9e9465eb4859845aeea5f1dfbb70b4c9d00",
        "c840945a7809b1fd55621d107ce799d8af370744"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 20 03:05:02 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 20 03:05:02 2017 +0000"
      },
      "message": "Merge \"frameworks/base: use proper nativehelper headers\" am: 826eafd958 am: 5c091dc944\nam: c840945a78\n\nChange-Id: I654e14f0d1b495450db81592a2e564e308746350\n"
    },
    {
      "commit": "5c091dc9449b583e18656a8850a61f557dfcc945",
      "tree": "db4ca724dd661b112d2bd72da67f2a91edce0850",
      "parents": [
        "5f047a68d96f252772144a729f423c172ce816e4",
        "826eafd95885adbfc142f3f70ec82b4091abed85"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 20 02:50:53 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 20 02:50:53 2017 +0000"
      },
      "message": "Merge \"frameworks/base: use proper nativehelper headers\"\nam: 826eafd958\n\nChange-Id: I36f10ff4d963284a313f1cc5b368f82549a4adb2\n"
    },
    {
      "commit": "2279b2534272282a5b5152723235da397e49195c",
      "tree": "884c0a32e34c87d58e8f36329eb77d6dec7a8ab4",
      "parents": [
        "a1d67fb38ec02150d674bc3b8d8354b53417552b"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jul 19 09:50:45 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jul 19 10:06:40 2017 -0700"
      },
      "message": "frameworks/base: use proper nativehelper headers\n\nlibnativehelper exports headers under nativehelper. These were\navailable before incorrectly as global headers in order to give\naccess to jni.h.\n\nTest: modules using frameworks/base find headers\nBug: 63762847\nChange-Id: I0f9f231acdebe460f279135462f43d3e32eff64d\n"
    },
    {
      "commit": "21d71a4c8aa70ef9e133d18097a855cc23f29fae",
      "tree": "c04992e3f674cdb0ac304159b6c709ba2b8ff142",
      "parents": [
        "28f6dc951223a017f9abc90599662cb3f4995ad1"
      ],
      "author": {
        "name": "isaid",
        "email": "isaid@google.com",
        "time": "Fri Jun 02 20:07:01 2017 -0400"
      },
      "committer": {
        "name": "isaid",
        "email": "isaid@google.com",
        "time": "Tue Jun 06 14:20:02 2017 -0400"
      },
      "message": "Redundant/duplicate method to close Streams\nFixes: 62304559\nTest: the code compiles which mean polymorphism works. No additional\ntests necessary\nChange-Id: I3d366f12c1f176213979da6b050957bc2adb2938\n"
    },
    {
      "commit": "492e9e851cadca62df84eaff1a3c1ba788492fba",
      "tree": "61d47e46bb22366413a021f025b3c8e16713c55b",
      "parents": [
        "2a071d69b455399474d56cd2099e9944aec83224"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Mar 22 14:28:08 2017 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Apr 03 18:12:04 2017 +0100"
      },
      "message": "Properly guard access to CloseGuard in finalizers.\n\nCloseGuard instances are allocated in constructors and usually\nassigned to final fields. This implies they\u0027re non-null in finalizers\nexcept in the case where the constructor throws. We add a null check\nto make sure we can continue cleaning up other state in the finalizer\n(if applicable).\n\nAlso, this change decouples closeguard warnings in constructors\nfrom other state based logic. This because the logic there is usually\nduplicated with the call to close().\n\nNOTE: This change is not a \"complete\" fix. Many of these finalizers\nare broken in the case where \u003cinit\u003e throws. The only objective of\nthis change is to make such errors more obvious.\n\nNote that some of these classes don\u0027t have CTS tests.\n\nTest: make, CtsMediaTestCases.\nBug: 35609098\n\nChange-Id: I24d9e0215f80e44914dba8ab99b6312fd6ed1fc0\n"
    },
    {
      "commit": "5d9a8acdac056e8842d010edd26496960f2a7a8d",
      "tree": "a17d8c7cfc9df553031ed00cb4a36ba14fea3b6b",
      "parents": [
        "d9774458cd8e6fe2d337aeaa03ccfa29e9e8b47e"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Mar 09 16:10:28 2017 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Mar 15 21:46:42 2017 -0700"
      },
      "message": "Clarify release/close java docs\n\nbug:25372187\nChange-Id: Ibe13943731e53efa9408b0d6bf105063f3ce4334\n"
    },
    {
      "commit": "f0c606eb3e481050fd1dacd52694bacb794a4736",
      "tree": "ad66d1a579ec29de99040706e3f45e21595c63fc",
      "parents": [
        "9d9cf5b383f26c209b781dbca0723f69ff6913ba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 15 13:13:39 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 15 13:13:39 2016 -0700"
      },
      "message": "Stop including libcore/include/ in most of frameworks/base.\n\nframeworks/base/core/jni/android_text_StaticLayout.cpp does actually use\nScopedIcuLocale, so I\u0027ve left that for now.\n\nChange-Id: I6458cd133871281a747a9da2e304da10b445051a\n"
    },
    {
      "commit": "60cfad80bdf61db436643927337c2fb30186e99d",
      "tree": "71d953873226c0a3b6c2458fc1858ccb27b3b056",
      "parents": [
        "6a40ac6cc68f240cca60e12aba2d212c440fe091"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jan 05 17:30:57 2016 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jan 06 10:19:35 2016 -0700"
      },
      "message": "Discourage use of \"_data\" column.\n\nMoving forward, all client file access really needs to be going\nthrough explicit APIs like openFileDescriptor(), since that allows\nthe provider to better protect its underlying files.\n\nThis change also changes several classes to use the AutoClosable\npattern, which enables try-with-resources usage.  Older release()\nmethods are deprecated in favor of close().\n\nUniformly apply CloseGuard across several classes, using\nAtomicBoolean to avoid double-freeing, and fix several resource\nleaks and bugs related to MediaScanner allocation.  Switch\nMediaScanner and friends to use public API instead of raw AIDL calls.\n\nBug: 22958127\nChange-Id: Id722379f72c9e4b80d8b72550d7ce90e5e2bc786\n"
    },
    {
      "commit": "e6748ce31f18782b7a47a5b2eb251efd83e7b609",
      "tree": "6837ac134292222ca6720ee477e27dcea676044f",
      "parents": [
        "3ab0c4c43e1e5b9efec7c0fd6928b127afcfb25d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 11 18:00:38 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 14 12:04:26 2015 -0800"
      },
      "message": "Frameworks/base: Use Arrays.toString\n\nFix a couple of cases where Arrays.toString should be used.\n\nBug: 19797138\nChange-Id: I905fc79e63face9b26975320a92086c732bf6316\n"
    },
    {
      "commit": "76f6a86de25e1bf74717e047e55fd44b089673f3",
      "tree": "c07e5cd58bcdd692593d6b7cd3edd40344ee4973",
      "parents": [
        "24ff6823c411f794aceaae89b0b029fbf8ef6b29"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Sep 19 17:31:01 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Tue Sep 22 17:10:35 2015 -0400"
      },
      "message": "constify JNINativeMethod function pointer tables\n\nChange-Id: I4036c924958221cbc644724f8eb01c5de3cd7954\n"
    },
    {
      "commit": "318365e869f3e234e7a0e59aaf1dd1de72ea5113",
      "tree": "0ae8ec115295a6b9e82c868c44539f41672dc894",
      "parents": [
        "a31318620bce4e00e80188ee2778b7799cbdf0dc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 17:23:02 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 17:23:02 2014 -0800"
      },
      "message": "Frameworks/base: Wall Werror in drm\n\nTurn on -Wall -Werror in drm/jni. Fix warnings.\n\nChange-Id: If24fec45fbb737af593ddadfa473548dfa583e0b\n"
    },
    {
      "commit": "3cfe720a0d250f7aac88fdd303bf34005ebb9ab7",
      "tree": "10c5d3e75c0345df432eac43e198d98a6a4383bd",
      "parents": [
        "e1ab884a67ecbb3cd879493364e9eb1f485d9023",
        "5fed49f7d614ae9e83db04703484b31c8077b78c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 10 01:30:05 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 10 01:30:05 2014 +0000"
      },
      "message": "am 5fed49f7: am 4d9fcae2: Merge \"Allow for a NoOp implementation of DrmManagerClientImpl\" into klp-modular-dev\n\n* commit \u00275fed49f7d614ae9e83db04703484b31c8077b78c\u0027:\n  Allow for a NoOp implementation of DrmManagerClientImpl\n"
    },
    {
      "commit": "510ef1b537fece28b9f9e561f5c922d7aca8d294",
      "tree": "a6050f79b4d51b8b86f10efc83b6dffe1d29e7be",
      "parents": [
        "aaaa7769139fd1ef683a445c76414f6dcfe07d3b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 04 15:05:56 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 04 15:05:56 2014 -0700"
      },
      "message": "Allow for a NoOp implementation of DrmManagerClientImpl\n\nChange-Id: I150b95790d5e6d3c0160637149f18f2194318de8\n"
    },
    {
      "commit": "c1858228df18528aabe1ff223335f613be2b99d8",
      "tree": "17ebf5987996fa58c3e8b10a43b213d771f40fdf",
      "parents": [
        "33ee1e779d20fba8f8379296641c12cd6982506e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 20:49:24 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 20:49:24 2014 -0700"
      },
      "message": "Fix a few more stray libcore.io references.\n\nChange-Id: Id328544bd3a382fec16507d0ae5b699fef44ebd7\n"
    },
    {
      "commit": "f97c63350abcc6715ba9fdc21fd3405d0f7ba716",
      "tree": "9eba371ad46dc3dd0b70e40ad494623421979fab",
      "parents": [
        "54dacbe7ca6d8a8c71d601fcf773e7b27eba3a53"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 16:38:43 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 16:38:43 2014 -0700"
      },
      "message": "Move internal libcore.os users over to android.system.\n\nChange-Id: I84e1ace19ba3b4e58d7bb24f3ecda1bdf5dc75a5\n"
    },
    {
      "commit": "ebf8ad5d91b22eb4359c75711a5b70ddcce0723d",
      "tree": "8e4664b788a5de2a64c2b8764da9727c3305b9ed",
      "parents": [
        "b341a24b2adbb67cdc34ade0a19570ee37f0cb82"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jan 30 15:01:22 2014 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 06 09:47:38 2014 -0800"
      },
      "message": "Update DrmOutputStream to use raw FileDescriptor.\n\nThis allows DownloadManager to use FDs, paving the way for downloading\ndirectly to content:// Uris.\n\nAlso return flag indicating if deleteOlderFiles() actually deleted\nanything.  Update tests to verify.\n\nBug: 5287571\nChange-Id: I2579e5e2113f31b2860d7b021bd61c91b6310963\n"
    },
    {
      "commit": "38885b63fc41e664681b6fd12159c7ce04e3addc",
      "tree": "59d8a105b130b57df521d4f171f7043a14c3f42a",
      "parents": [
        "ef099b71838e15758c8e859af21748a123bb4a99",
        "38638b2fcc4aba428889d521d83762d716e32332"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jan 29 12:50:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 29 12:50:09 2014 +0000"
      },
      "message": "am 38638b2f: am eaae9906: am 672f3ee3: am 95ba1eb6: am dd6de16a: Merge \"AArch64: Use long for pointers in DRM classes\"\n\n* commit \u002738638b2fcc4aba428889d521d83762d716e32332\u0027:\n  AArch64: Use long for pointers in DRM classes\n"
    },
    {
      "commit": "33d603877acf76d5d59484532025af20f4b068a5",
      "tree": "58d4472d789e6da440a2c3f2db37953bba16cc77",
      "parents": [
        "486544f763bd27eb92c95101e23f939c79c9890e"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Fri Jan 17 12:05:52 2014 +0000"
      },
      "committer": {
        "name": "David Butcher",
        "email": "david.butcher@arm.com",
        "time": "Fri Jan 17 14:38:25 2014 +0000"
      },
      "message": "AArch64: Use long for pointers in DRM classes\n\nFor storing pointers, long is used in DRM classes,\nas native pointers can be 64-bit.\n\nIn addition, some minor changes have been done\nto conform with standard JNI practice (e.g. use\nof jint instead of int in JNI function prototypes)\n\nChange-Id: I101b0ea19ed93651c6ad1a9fa55e14e8be117469\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\n"
    },
    {
      "commit": "6090995951c6e2e4dcf38102f01793f8a94166e1",
      "tree": "37f32f4b269fc26a18e3249a18459a476c473266",
      "parents": [
        "266f48cc042dda828109eb135088cdb6f0f7c1d5"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Nov 19 16:54:46 2013 -0500"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Nov 20 11:31:47 2013 -0500"
      },
      "message": "Remove unused imports from frameworks/base.\n\nChange-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906\n"
    },
    {
      "commit": "490dd056bd2fdfc630cd43b3fc1c90baf509bffe",
      "tree": "6acdce26ed26a33c7277cf828b4129cbf7fe5ff6",
      "parents": [
        "7f60dc57780281030f26a2109a64d0260e976af7"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 30 23:04:34 2013 +0000"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Sep 03 10:13:17 2013 -0700"
      },
      "message": "Revert \"Enhancement for OnInfo callback on DRM Framework\"\n\nThis reverts commit 6fd97b7d93c5eeaefb2695786b35d1672c88b0cf.\n\nFixes Fatal signal 6 (SIGABRT)\" when playing or downloading a video\nbug: 10542864\n\nChange-Id: I85b84d6b602079571be1a7237c907716db9cdf54\n"
    },
    {
      "commit": "6fd97b7d93c5eeaefb2695786b35d1672c88b0cf",
      "tree": "1b8f627cf799f0b9eeb9dcb6bbd1e09c031d7716",
      "parents": [
        "b8d3a3de675a42b0eed6117eca509c42903d7ee3"
      ],
      "author": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Wed Jul 11 17:13:38 2012 +0900"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 23 18:02:40 2013 -0700"
      },
      "message": "Enhancement for OnInfo callback on DRM Framework\n\nIn DRM framework, plugins can transmit DrmInfoEvent to Java layer.\nAlthough DrmInfoEvent has several entries, current implementation\ncan only convey integer and String. This change enables plugins\nuto propagate a hashmap to Java layer. The hashmap can have\none or more Strings and one byte array as value.\n\nChanges are made by Sony Corporation.\n\nbug: 10459159\n\nChange-Id: I5f2bfb43b676863ef4d220fd4ef1e48777e92752\n(cherry picked from commit 84a5b5cab40711e20ba70c5ed4dfeab6b558b53b)\n"
    },
    {
      "commit": "d685894212e6dbeac1fda4996903c1da115d49a6",
      "tree": "c52d05c78811e79a869afbcdbe55a906e38f2fa1",
      "parents": [
        "9fa49cc3308f6af593d780581121afc3c1d7e046"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: I746aa8258866508c3a725d0773faf4518096548f\n"
    },
    {
      "commit": "7ccc90955fad0701b6b14c813a2850ee4149c5a2",
      "tree": "739a3713dfef5518ed642f8602593fd8b772b28a",
      "parents": [
        "f67c8a9685e0f20d5ffb9de95f6d1ce47f052141"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Dec 17 17:03:11 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Dec 17 17:04:16 2012 -0800"
      },
      "message": "Move stream creation outside of DrmOutputStream.\n\nMore closely matches the object ownership pattern used by other\nstream APIs. Callers must now explicitly finish(). Also fixes\nwrite(int) bug by switching to Streams API.\n\nChange-Id: I64f9c5887ef02496b1ce4e97ce6af5dad93b4be2\n"
    },
    {
      "commit": "f67c8a9685e0f20d5ffb9de95f6d1ce47f052141",
      "tree": "30aa3e2376095dee656ac963632d080abb728b4a",
      "parents": [
        "fdb9138c401558e109ecdadc7acbc88b75634202"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Dec 13 08:55:59 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Dec 13 13:51:40 2012 -0800"
      },
      "message": "Move DRM to CloseGuard, add DrmOutputStream.\n\nSwitch DrmManagerClient to using CloseGuard to better track leaked\nresources.  Add DrmOutputStream which applies DRM transformation as\ndata is written, similar to FilterOutputStream.  Also writes DRM\nheaders before closing.\n\nChange-Id: Ic106a3e6f6ff666e4dda484fbd234a0849eec8c0\n"
    },
    {
      "commit": "58ed5d748c0b9b64845975ef5844ad313de7c3f6",
      "tree": "507af3879bc894eb854712a1fe6c0953805a895c",
      "parents": [
        "9197d170b770f2b87abd0cd0e13dcf71e5a181c2",
        "768d9e1a72ceee7d4a5f608776b87b62d6ce4a04"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 11:52:12 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 07 11:52:12 2012 -0800"
      },
      "message": "am 768d9e1a: Merge \"Correct executable bit for source files\"\n\n* commit \u0027768d9e1a72ceee7d4a5f608776b87b62d6ce4a04\u0027:\n  Correct executable bit for source files\n"
    },
    {
      "commit": "3a084af2e90849aaa8beb3a610189e3399c63ea0",
      "tree": "ba4b87d227674fd68f9ea395649fde32778620f0",
      "parents": [
        "9d547d6934f64189e368c0b190fb4cf49c95a557"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 10:19:47 2012 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 10:27:31 2012 -0800"
      },
      "message": "Correct executable bit for source files\n\nMany media files and source code files were marked as executable in Git.\nRemove those.\n\nAlso a shell script and python script were not marked as executable.\n\nChange-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5\n"
    },
    {
      "commit": "d78fc5b94d1bb3dab509ca55d09052821c51412b",
      "tree": "8899b553fbd42c74fef5a0f51a08b70ec1017294",
      "parents": [
        "b9b56954ec5a242f7c4945942539106539f98ffb",
        "0889fdae87abd9ec78a6c1d00c2771acfa4e4d34"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 22 14:50:27 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 22 14:50:27 2012 -0700"
      },
      "message": "Merge \"Let getOriginalMimeType() take a fd passed from drm java applications\" into jb-mr1-dev"
    },
    {
      "commit": "0889fdae87abd9ec78a6c1d00c2771acfa4e4d34",
      "tree": "fa3c732ba63608c530b2424f16808b7c704cfb00",
      "parents": [
        "f83d2d6f6b4a23011226a7b9fee20dabf94820cb"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 08 17:45:59 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 22 13:47:19 2012 -0700"
      },
      "message": "Let getOriginalMimeType() take a fd passed from drm java applications\n\nAt present, we did not actually pass the fd. This patch allows us to\nmake the changes necessary in the future without worrying too much\nabout broken build.\n\nrelated-to-bug: 6426185\n\nChange-Id: I125decff9be621a72f2631fd439994a94a526606\n"
    },
    {
      "commit": "057b086e0e054247840060cbd1e14295a214221b",
      "tree": "c47940ff58dab4e4b371a73c1a2116aba9faf3f8",
      "parents": [
        "a688af9c6707c9c2f07cc195b072b6c14be03b63"
      ],
      "author": {
        "name": "Henrik B Andersson",
        "email": "henrikb.andersson@sonymobile.com",
        "time": "Fri Feb 10 13:17:40 2012 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 17 15:59:35 2012 -0700"
      },
      "message": "Release JNI local references as soon as possible.\n\nThe JNI layer has a fix amount (512) of jni references.\nThey should be released as soon as possible. In for\nand while loops they can quickly reach the limit.\n\nChange-Id: Id984345e1cc4f7aa6eb31a263b796c3da9edf773\n"
    },
    {
      "commit": "011385508726fef027641fcbb3e4e446efc9af2c",
      "tree": "8e48b991e5376e4b27c1ed2b457efbc23bf2bee6",
      "parents": [
        "a08dc5de8d039a4fd0a8c1286147c6afd01d2edf"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 07 14:49:00 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 07 14:49:00 2012 -0700"
      },
      "message": "Fix an issue where the message queue fails to queue in the looper threads because they are not created.\n\no related-to-bug: 6293875\n\nChange-Id: I03dbb2782bd90f88d1f8df086b8a529730afe5dc\n"
    },
    {
      "commit": "ba4d0433319393d626d2169683209e4956a087e2",
      "tree": "96912a08fd6fdc796c384a2a7a13b16e69c4bb2b",
      "parents": [
        "d927a1d99630c05ff773f0e9e8791ca9a965e020"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 28 11:03:25 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 28 11:03:25 2012 -0700"
      },
      "message": "frameworks base Android.mk file changes\n\nChange-Id: I7459b9e959a60751b8fa6e0d893cb2c820c064ce\n"
    },
    {
      "commit": "d927a1d99630c05ff773f0e9e8791ca9a965e020",
      "tree": "760f8a19e317d68f937eda312efab59200880ecd",
      "parents": [
        "f9c1f9935b349fe1a3f27be4462026dd212f8b78"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 28 10:42:44 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 28 10:42:44 2012 -0700"
      },
      "message": "Deleted the media, camera, drm related files since they are relocated\n\nChange-Id: I9bc5573ee07e30b305b5b879023aa9ec69e10b91\n"
    },
    {
      "commit": "89ea4ca9c26f3c7e365525a0b83500e85517a457",
      "tree": "1a36517669b16d27a2fd9d638dff847d30a88ade",
      "parents": [
        "8e3fac28a0326c060c01f5cdcfaf36cc995f3d19",
        "29cdbc80bb55052ca6c291068d9358aee71cc46c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 14 10:43:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 10:43:22 2012 -0700"
      },
      "message": "Merge \"make sure that lower-case mime and file suffix is used to check against the supported ones\""
    },
    {
      "commit": "8e3fac28a0326c060c01f5cdcfaf36cc995f3d19",
      "tree": "5dfada04c653231dcccbb5db062727fa49039566",
      "parents": [
        "2bab6b63c758a892f5906198687c48b65e55debf",
        "32d8fc8d6d77eef02077142feb8bd9c7ee2cbe8f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 14 10:43:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 10:43:18 2012 -0700"
      },
      "message": "Merge \"Fixed a buffer overflow bug in DrmPassthruPlugin\""
    },
    {
      "commit": "32d8fc8d6d77eef02077142feb8bd9c7ee2cbe8f",
      "tree": "2ae344ce78f81a99ddae06fe12ed75625673552c",
      "parents": [
        "958ec9d0b2f2063a03d3ea2b9bb86897125401b0"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 13 19:20:55 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 13 19:23:23 2012 -0700"
      },
      "message": "Fixed a buffer overflow bug in DrmPassthruPlugin\n\nChange-Id: I8df2a90409c9266a094a1a0904a5ff76ec483d16\n"
    },
    {
      "commit": "c3259471c6c423577323f5260b4b0e2ea882f7cb",
      "tree": "e5db79ff9163225cdcf172a43e846d6c625fac91",
      "parents": [
        "958ec9d0b2f2063a03d3ea2b9bb86897125401b0"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 13 18:54:16 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 13 18:54:16 2012 -0700"
      },
      "message": "Turned off log spamming from DrmPassthruPlugin\n\nChange-Id: I2cecdba49cf044d2aafd8aa404d27df311cad401\n"
    },
    {
      "commit": "29cdbc80bb55052ca6c291068d9358aee71cc46c",
      "tree": "407937b048c0f7d1e482a7cf3e99b1b51f69fb35",
      "parents": [
        "958ec9d0b2f2063a03d3ea2b9bb86897125401b0"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 23:20:29 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 13 14:54:02 2012 -0700"
      },
      "message": "make sure that lower-case mime and file suffix is used to check against the supported ones\n\nChange-Id: I6a20832f6a2dfb8554dbddef0dee87cc21c05c80\n"
    },
    {
      "commit": "1a22cbd113512f03d7db40e4be25a02047cb6c88",
      "tree": "5da75841759da707a2dc020bf071876696b51dec",
      "parents": [
        "e1dd94b1a0698fa356b84e1aa80d43f09280c138",
        "4f1ed0e84ea7ce820ef6006189017933fc96a71c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 10:33:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 12 10:33:38 2012 -0700"
      },
      "message": "Merge \"Avoid checking supported mime types or file suffixes in multiple places\""
    },
    {
      "commit": "4f1ed0e84ea7ce820ef6006189017933fc96a71c",
      "tree": "20b26113bb0790d986bd041b703c464f1c2b4cea",
      "parents": [
        "aa6816a8a0e575059f1e417ba2bbc3c86cc879a3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 09 17:33:42 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 09 17:44:11 2012 -0800"
      },
      "message": "Avoid checking supported mime types or file suffixes in multiple places\n\nChange-Id: I47d24070c7bda385cd1d7fa1f6a75dbb1f82b476\n"
    },
    {
      "commit": "862339039a62e5abd97df353168adb46aad746d5",
      "tree": "29fc350fd43d530476fefbbd436437a96e4ee5ab",
      "parents": [
        "aa6816a8a0e575059f1e417ba2bbc3c86cc879a3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 09 13:05:17 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 09 13:21:31 2012 -0800"
      },
      "message": "Added an failure log message when the fwdlock engine fails to open a given file.\n\nChange-Id: I0e7f60b61f03fde046fc1ad668b28cdee635898b\n"
    },
    {
      "commit": "9864b25bd8ac2c68f290817ac5fe73077e130b45",
      "tree": "efb27679e7cf3dd865317f808ec440b15f5581df",
      "parents": [
        "c730aceb64233592c5a0d8b6a429d645443b3818"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 02 18:36:53 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 05 18:52:32 2012 -0800"
      },
      "message": "There was copy and paste code in JNI to create a DrmConvertedStatus object.\n\no This patch removed duplicated code.\n\nChange-Id: Ic3d3461fb8da6fab1b4d19d28b8d9d4abc8a53b1\n"
    },
    {
      "commit": "f16a2724e08d59c09c95d0fc0db09cfbe67f6141",
      "tree": "6ba11acc119898b56262d46d55a22b478c038485",
      "parents": [
        "1c32c8a170288137bd5ef5751da144c89d7764db"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 02 16:49:35 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 02 16:54:19 2012 -0800"
      },
      "message": "Fix some JNI issues in the drm framework\n\no allocated array using new must be deleted using delete[]\no removed duplicated code\n\nChange-Id: Ifa8e2e1cd46568c5266717eb1ad340b61a843adc\n"
    },
    {
      "commit": "e43dadffb8ac8756216a7696dbff987a6d5d8569",
      "tree": "c67c50a650003ad03080dfdc8c5165733b82af36",
      "parents": [
        "1a7dd039f189036709bc2253ba50955913f59d7a",
        "52cb1e5988a8a97c668b935fb5d8d358cb3c635a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 02 11:01:27 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 11:01:27 2012 -0800"
      },
      "message": "Merge \"Fixes to DrmConvertedStatus, DrmInfoStatus, and DrmSupportInfo classes\""
    },
    {
      "commit": "7edb9a94908f41b9dc3aa13d2089efa304f12c22",
      "tree": "d1fbba11323401994e4476f912ae37ec5a1ae245",
      "parents": [
        "b08dee9d38fb73715f17183dbc57b7130796b935",
        "f73222a39e0fa294d9105fd7464943aed6e77cd7"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Mar 01 15:35:39 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 01 15:35:39 2012 -0800"
      },
      "message": "am f73222a3: am 964955e0: am 8a9b14d8: am 5aeb8587: Merge \"DRM framwork bug fix: add an API to release resources\"\n\n* commit \u0027f73222a39e0fa294d9105fd7464943aed6e77cd7\u0027:\n  DRM framwork bug fix: add an API to release resources\n"
    },
    {
      "commit": "52cb1e5988a8a97c668b935fb5d8d358cb3c635a",
      "tree": "c0a470cdbb83a589b13abdb92294da648537771b",
      "parents": [
        "8279570b222d46def4e541d71ef29dbfd9fbe3d7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 16:56:21 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Mar 01 12:23:46 2012 -0800"
      },
      "message": "Fixes to DrmConvertedStatus, DrmInfoStatus, and DrmSupportInfo classes\n\no added missing javadoc comment for some public fields\no added checks for arguments\no DrmSupportInfo should have not been exposed as public.\n  A default package access modifier appears to be more proper but we may\n  not be able to change the modifier.\n\nChange-Id: I5b284c17219c5121f241ee2934fb3e859ce7c827\n"
    },
    {
      "commit": "6225df010365d00b1d0f3b1ca13f18cea537c8e3",
      "tree": "f8ec6b625745c57b4a0dbe6aab02072cf10be8d4",
      "parents": [
        "d7fa7deef9bc0cf22bf450fdb062327697c087c4"
      ],
      "author": {
        "name": "Kei Takahashi",
        "email": "KeiA.Takahashi@jp.sony.com",
        "time": "Tue Jan 31 13:18:45 2012 +0900"
      },
      "committer": {
        "name": "Kei Takahashi",
        "email": "KeiA.Takahashi@jp.sony.com",
        "time": "Wed Feb 29 12:59:53 2012 +0900"
      },
      "message": "DRM framwork bug fix: add an API to release resources\n\nWhen DrmManagerClient object is created and released many times,\nthe process suddenly crashes.\nThe case can happen when we make many thumbnails of\nDRM-encrypted contents.\n\nThe problem is caused by shortage of file descriptors.\nDrmManagerClient releases references of file descriptors\nonly when GC runs. So file descriptors are kept long time\neven after the reference of DrmManagerClient are released.\n\nBy introducing DrmManagerClient#release() API,\nthe problem is solved. An application call this API\nwhen we no longer need to use DrmManagerClient object.\n\nChanges are made by SEMC and Sony.\n\nChange-Id: Ie0bbc29cc33872449824285a8d67b1c3cdd8082b\n"
    },
    {
      "commit": "5df628055789a14267be365beffc0626b7822e96",
      "tree": "5556dd02a0b455504c0077e8385686435c15b852",
      "parents": [
        "8279570b222d46def4e541d71ef29dbfd9fbe3d7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 13:55:55 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 18:50:44 2012 -0800"
      },
      "message": "Added permission check for all sensitive drm API calls\n\no all drm calls using a DecryptHandle now check the permission before proceeding\n\nChange-Id: Ic992a991357876c6e4bfbfab4f5eec1fa0634a13\n"
    },
    {
      "commit": "2f16d7eae1b2dfd87be5fc55be3bec012ab7389d",
      "tree": "824b876f5311a8e5cf04880be5fd79c25a204b13",
      "parents": [
        "e512ad5089eef76d080fc6fdd17dfb88ad8b72e9",
        "5cb68c86ccb34d42bd4fb59128043037f74763a3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 14:34:02 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 14:34:02 2012 -0800"
      },
      "message": "Merge \"Fix API issues in DrmRights class.\""
    },
    {
      "commit": "e512ad5089eef76d080fc6fdd17dfb88ad8b72e9",
      "tree": "a5ab41eb26de07c303f77a31fcb221c98884b059",
      "parents": [
        "6fa13b5a02464281df56919009fa3af5a3f9026b",
        "060526f9856e52964eaf13df8db74f5fbdcb83b1"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 14:33:19 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 14:33:19 2012 -0800"
      },
      "message": "Merge \"Deprecate default constructor for classes that should have been meant to be interfaces\""
    },
    {
      "commit": "31db8b9f6ba2dfb5c3c9cb0f25ed4b71872fc98c",
      "tree": "4057d22454b766c328499f373f0f2628337ca8f8",
      "parents": [
        "da5ac93b005b5523a7f18594f52ee169d83e08d4",
        "a3a9d6e746cc1140cad9ab657860e00fb3940748"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 13:09:44 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 13:09:44 2012 -0800"
      },
      "message": "Merge \"Remove unnecessary header file includes for drmserver\""
    },
    {
      "commit": "da5ac93b005b5523a7f18594f52ee169d83e08d4",
      "tree": "744f2dc6d4225baee6f63c4944c6cc6dad841372",
      "parents": [
        "04a3a4350e320b65bda9fae6500250c4880e4bf2",
        "f7a68fc98550859019bb0636fc3e8d88cb50e6a6"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 13:09:24 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 13:09:24 2012 -0800"
      },
      "message": "Merge \"Added missing javadoc comment for public API in DrmUtils class\""
    },
    {
      "commit": "f7a68fc98550859019bb0636fc3e8d88cb50e6a6",
      "tree": "b37eed8d007d0be23b87bc49300cd42faa07ec65",
      "parents": [
        "fd400f5f483d76a38a28155a7328a953ed3ec36f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 22:43:30 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 22:46:02 2012 -0800"
      },
      "message": "Added missing javadoc comment for public API in DrmUtils class\n\no also fixed mis-spelled private method name (quiteDispose \u003d\u003e quietlyDispose)\n\nChange-Id: I692cd7471eac547b849dd53853f60843b3915750\n"
    },
    {
      "commit": "a3a9d6e746cc1140cad9ab657860e00fb3940748",
      "tree": "75078fcb67ead4e73e701f3a3accd2c9f7489d0a",
      "parents": [
        "fd400f5f483d76a38a28155a7328a953ed3ec36f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 22:20:28 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 22:26:48 2012 -0800"
      },
      "message": "Remove unnecessary header file includes for drmserver\n\nChange-Id: I14033861e74d20f9d4897b651c4eeee126d4d610\n"
    },
    {
      "commit": "5cb68c86ccb34d42bd4fb59128043037f74763a3",
      "tree": "94a5dcc3167c131147417ca6abdcb1b53ad9df26",
      "parents": [
        "6f9d697d8316f25be0e2a472604fd7e17d214c64"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 18:34:04 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 18:34:04 2012 -0800"
      },
      "message": "Fix API issues in DrmRights class.\n\no account id and subscription id are not mandatory, and thus can be anything\n  such as null or an empty string.\no removed unnecessary or thus inconsistent checks for account id and subscription id\no updated the javadoc to specify that mimeType could not be null or an empty string.\n\nChange-Id: I704f1dd7fc5d33060da908aae0469d560c7db036\n"
    },
    {
      "commit": "c4a9976aa15929a73ab7c0979d8b2e1e9eeadcc7",
      "tree": "7b080af1f029f3d515f0a398baaf80849d4b2755",
      "parents": [
        "fd400f5f483d76a38a28155a7328a953ed3ec36f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 18:13:37 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 18:25:31 2012 -0800"
      },
      "message": "Deprecated a mis-spelled method and replaced it with a new method\n\nChange-Id: Id049a4effab120c3f837cde60a87efcd89a64ec6\n"
    },
    {
      "commit": "060526f9856e52964eaf13df8db74f5fbdcb83b1",
      "tree": "830d8f468d530b01ac950b83484eb789959f0f67",
      "parents": [
        "fd400f5f483d76a38a28155a7328a953ed3ec36f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 16:41:22 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 18:00:12 2012 -0800"
      },
      "message": "Deprecate default constructor for classes that should have been meant to be interfaces\n\no We should have not exposed these default constructors in the first place.\n\nChange-Id: Ia8bcfe77e9730021ad8870ece67c6d0eed8146ad\n"
    },
    {
      "commit": "b7956de3a9eba521fd681cece0370d0b5960ed1e",
      "tree": "0f7168f7f09b95fd930d856baae316f2845bd4b3",
      "parents": [
        "aacc4b86c92df00bc68fd3af7ca79699ca8e8191",
        "365ce1db339db53cd5afb118ff867fe940644e45"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 24 16:36:34 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 24 16:36:34 2012 -0800"
      },
      "message": "Merge \"Improved comment about DrmStore.ConstraintsColumns\""
    },
    {
      "commit": "e82f055e3eb1b0b3daf87bc14258fa65568b4f8a",
      "tree": "7df4c2eea446d74f44ea3f8f67db58eac5cf8959",
      "parents": [
        "2d77b5332ac4ef5b252fbd8f56a195e0fce03292"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 23 15:01:46 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 24 15:50:41 2012 -0800"
      },
      "message": "Only allow valid types to be used in DrmErrorEvent and DrmInfoEvent\n\no This patch will prevent applications from abusing the API by using\n  arbitrary int value for DrmErrorEvent or DrmInfoEvent types.\no We should have not defined some type constants in the super/base\n  class, DrmEvent.\n\nChange-Id: Id0bb12caa8ce471cb6951cc2b5d37ea408f90063\n"
    },
    {
      "commit": "365ce1db339db53cd5afb118ff867fe940644e45",
      "tree": "8b1ad4d1dc4c3d72850c39d2dcf7a8a979e79346",
      "parents": [
        "0b5a6b2e8afe2185c3589a7e2a1e12e721af0c24"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 23 00:12:29 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 23 10:58:55 2012 -0800"
      },
      "message": "Improved comment about DrmStore.ConstraintsColumns\n\nChange-Id: I89c588759dd409ac0252d686af12bfe4e105f3d5\n"
    },
    {
      "commit": "6c95d4ff1656007ab5cbf0a6406d80a33bf8b109",
      "tree": "f241ed246cfe2bf55fd97f0edb2bd592355c14f2",
      "parents": [
        "a9daa164a58fc70d08702787e69a56212f5ad8c9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 14 16:27:38 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 15 11:30:51 2012 -0800"
      },
      "message": "Added checks for illegal arguments\n\nChange-Id: Ib386c33b7e2cab12cabbb9dc023d54df05472960\n"
    },
    {
      "commit": "c6aacce37191e1cc79cfeba13b39899f59c68c3b",
      "tree": "df4401aaa38914e03d5eadc82507e7c6fdcc573e",
      "parents": [
        "a51f0e707f1f3142358aa919ea60ad2842803139"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:20:56 2012 +0000"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 14:45:03 2012 -0800"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)\n\nChange-Id: I1de629b4632a4b3187ca1a28d6416daccd35f924\n"
    },
    {
      "commit": "a51f0e707f1f3142358aa919ea60ad2842803139",
      "tree": "3a4bea403affd07f7611fe13da8cbf64a61ee3e3",
      "parents": [
        "933e85615059b85a87747da57288384541cc56da"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Jan 05 23:22:43 2012 +0000"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 14:44:59 2012 -0800"
      },
      "message": "Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)\n\nChange-Id: I8fbdfa7a7581f481968dbb65aa40f7042936d7cb\n"
    },
    {
      "commit": "933e85615059b85a87747da57288384541cc56da",
      "tree": "5475260306fb9ddb48b2c7fcfe939ed59752e900",
      "parents": [
        "1afd5bab4e0eaba8b5bc2ab5c7b556cd602cf2e7"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 14:44:56 2012 -0800"
      },
      "message": "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)\n\nChange-Id: I26f76452ac49e2890b14d133c065493d8df0fb4a\n"
    },
    {
      "commit": "1afd5bab4e0eaba8b5bc2ab5c7b556cd602cf2e7",
      "tree": "7558b2b5d1cb5e2c9c60bd5d52cab21994caa263",
      "parents": [
        "06ade6ae1bd015e8b8ad0685847911213c93cc5b"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Dec 20 16:23:08 2011 +0000"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 14:44:50 2012 -0800"
      },
      "message": "Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)\n\nChange-Id: I44f267700356967dc51e8f85ebf457dc85cfb229\n"
    },
    {
      "commit": "06ade6ae1bd015e8b8ad0685847911213c93cc5b",
      "tree": "0fb687dcbdf125a30cdb645605b57bb847d0c7b5",
      "parents": [
        "c318bbb05e02a0080e129623ec8029d31be0d60e"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Oct 20 11:56:00 2011 +0100"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 14:44:31 2012 -0800"
      },
      "message": "Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF)\n\nChange-Id: I5321ebd12e9c6248a108529e82c4e1af2a4405e3\n"
    },
    {
      "commit": "d1ba6ed94543b6d2af666e01f4ffd29412511400",
      "tree": "10d0b29f0a9b7b08cccae0a907595cc8f96f3d4a",
      "parents": [
        "1f7b23dda211f419f0a140b871de44339c4a10c7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 10 08:24:37 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 12 16:25:12 2012 -0800"
      },
      "message": "Separate sniffing from session initialization\n\nThis avoid lengthy/duplicate sniffing for drm plugins when a decrypt session is opened\n\no The change is backward compatibile in that no update is required\n  for existing drm plug-ins if they do not plan to provide separate\n  sniffer/extractor\n\nrelated-to-bug: 5725548\n\nChange-Id: I7fc4caf82d77472da4e2bc7b5d31060fb54fd84c\n"
    },
    {
      "commit": "3762c311729fe9f3af085c14c5c1fb471d994c03",
      "tree": "7d4caccad80ac7327c7bff96dafc857d5f4631ad",
      "parents": [
        "7a939077bd14521c7d351af98df7ed75a8ec9c15"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:20:56 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Sun Jan 08 13:19:13 2012 +0000"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/157220\n\nBug: 5449033\nChange-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c\n"
    },
    {
      "commit": "8564c8da817a845353d213acd8636b76f567b234",
      "tree": "71acbd8ace822c769aef917629bf5a079f63274d",
      "parents": [
        "c42e6a0bed2c88fd03466c5104d62d7f98e68768"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Jan 05 23:22:43 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 10:07:54 2012 +0000"
      },
      "message": "Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/157065\n\nBug: 5449033\nChange-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69\n"
    },
    {
      "commit": "5baa3a62a97544669fba6d65a11c07f252e654dd",
      "tree": "109755e1595b438873d34b981e31f84ea64bd2a5",
      "parents": [
        "173ab4d61077c49f115b82eff34f97fda5a7273a"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Dec 20 16:23:08 2011 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Jan 03 22:38:27 2012 +0000"
      },
      "message": "Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156016\n\nBug: 5449033\nChange-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298\n"
    },
    {
      "commit": "29e97f169d87490e4755e8b7608e6324367e752f",
      "tree": "2898e9495a3dca3f6e8d642f4fb71e8f6e0f25c1",
      "parents": [
        "54b9f98417a075645c0b57e1f041817e422a645f",
        "3f6a7d1ee961a4544563932b7499535dc1cac1ec"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Dec 14 13:53:31 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 14 13:53:31 2011 -0800"
      },
      "message": "am 3f6a7d1e: am d70c64db: Revert the following patches because they may lead to power regression because SHA/MD5 module is stuck 1. Revert \"Fix drm flag setting missed in false drm recognition fix.\"    This reverts commit 9f704f6c46a171357e49c411c83458b9d4565f3b.\n\n* commit \u00273f6a7d1ee961a4544563932b7499535dc1cac1ec\u0027:\n  Revert the following patches because they may lead to power regression because SHA/MD5 module is stuck 1. Revert \"Fix drm flag setting missed in false drm recognition fix.\"    This reverts commit 9f704f6c46a171357e49c411c83458b9d4565f3b.\n"
    },
    {
      "commit": "d70c64db9f67dbe8f888de6b1bdcc835226ec526",
      "tree": "e17eebfa186779ee6b04bb35c4260e12cb74fddc",
      "parents": [
        "2e335cb02891d3653b938340a11698844e2c3d6d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Dec 14 10:57:05 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Dec 14 11:01:59 2011 -0800"
      },
      "message": "Revert the following patches because they may lead to power regression because SHA/MD5 module is stuck\n1. Revert \"Fix drm flag setting missed in false drm recognition fix.\"\n   This reverts commit 9f704f6c46a171357e49c411c83458b9d4565f3b.\n\n2. Revert \"Fixed the false drm recognition.\"\n   This reverts commit aadbd80b307c817698ce5110ff8e002804d1b230.\n\n3. Revert \"Fix drm enumeration order, resolves failure to play forward lock ringtones\"\n   This reverts commit a5cbf023e349f2394ba6fc58d73b4375cfec4369.\n\n4. Revert \"Fix ANRs due to Widevine DRM plugin sniff taking too long.\"\n   This reverts commit d0d19db1ca1c289b069db33f4665bcb9386064e9.\n\nAs a result of the reverting, many ANRs from WV sniffing are back.\n\nrelated-to-bug: 5739618\n"
    },
    {
      "commit": "b34027bb2fc3394d054986d7bbbcf54261436c11",
      "tree": "17a01b8d785326379ea875618e42ef0effd04c37",
      "parents": [
        "afb847a4692a6e5cded8c7a330d00b70b794896a",
        "f14dc29104340f8ccf9d42aef8dba2cc23f7f5e1"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Dec 12 15:39:17 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 12 15:39:17 2011 -0800"
      },
      "message": "am f14dc291: Merge from ics-mr1\n\n* commit \u0027f14dc29104340f8ccf9d42aef8dba2cc23f7f5e1\u0027:\n  Fix drm enumeration order, resolves failure to play forward lock ringtones\n"
    },
    {
      "commit": "a5cbf023e349f2394ba6fc58d73b4375cfec4369",
      "tree": "ed6b94ef5dce9d022765d605585e7593818eb500",
      "parents": [
        "1cec30a182c1963beda4b6f11cfae9fa38061e68"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Dec 09 20:04:17 2011 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Dec 09 20:04:17 2011 -0800"
      },
      "message": "Fix drm enumeration order, resolves failure to play forward lock ringtones\n\nChange-Id: I58e8a26849409bc3bf98b066c5e07c2a0c91e0c9\nrelated-to-bug: 5735466\n"
    },
    {
      "commit": "91225183d6e07a3fa0b5ce59451bce1106be80fd",
      "tree": "0edf6ce013cf1e2e050cc94e2de004ed122f381e",
      "parents": [
        "ba1f05d4a816dd60a6be2a09858d8c9ecf3d552d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Nov 10 14:58:44 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Nov 10 14:58:44 2011 -0800"
      },
      "message": "Fix log message\n\nLog did not have a tag, and was wrong level\n\nChange-Id: I8d12895c80483e1e39f117a393b8be2f4bdd3e1d\n"
    },
    {
      "commit": "71f2cf116aab893e224056c38ab146bd1538dd3e",
      "tree": "75a9162a0ea00830184b12a9ca51d3a1a040a5bb",
      "parents": [
        "1da79501066a74b630c8aa138db0f86ab6c690bb"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Oct 20 11:56:00 2011 +0100"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Oct 26 09:57:54 2011 +0100"
      },
      "message": "Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/143865\n\nBug: 5449033\nChange-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a\n"
    },
    {
      "commit": "aab6fe21df535171006063edf8367b59c6e525e0",
      "tree": "aae104b4d11a2332479101e98e4fcf28f7092b89",
      "parents": [
        "fd19906b50927834787403ca984f6fda93b53410"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Wed Sep 21 19:18:30 2011 -0700"
      },
      "committer": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Wed Sep 21 21:50:31 2011 -0700"
      },
      "message": "Modified loadPlugIns to load from /vendor and /system; skip libraries that are already loaded.\nBUG: 5284436\n\nChange-Id: I99267c81a488860c3c7edb747100d44f3083bfc2\n"
    },
    {
      "commit": "09337a07fa6b0d065f7292ea21c02097d3478717",
      "tree": "e462225087708364e09801d3a02895998bfeba66",
      "parents": [
        "e83af902c4ed1f0f1afb1b4f6f26a8003aca4954",
        "845fdba7b5a7b89571f2c85bd542c75650054544"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Aug 04 15:13:14 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Aug 04 15:13:14 2011 -0700"
      },
      "message": "resolved conflicts for merge of 845fdba7 to master\n\nChange-Id: I716b6ceb03bd733f9e7f49008112c8f2c53ad9ce\n"
    },
    {
      "commit": "845fdba7b5a7b89571f2c85bd542c75650054544",
      "tree": "2c75b25b9597204fa8dd434243d562fde4a7303c",
      "parents": [
        "23ce76ce1666e5e8b0b17825c271b133ba2626d6",
        "8a6fb50d69ec40a413b117bc9145a97ec427852f"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Aug 04 14:47:43 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 04 14:47:43 2011 -0700"
      },
      "message": "am 8a6fb50d: am 4e197ea8: am e15a73ee: Merge \"Bug fixes in OMA DRM v1 Forward Lock Agent\"\n\n* commit \u00278a6fb50d69ec40a413b117bc9145a97ec427852f\u0027:\n  Bug fixes in OMA DRM v1 Forward Lock Agent\n"
    },
    {
      "commit": "93827fb09eec4d6f594c5643288cf376488a5089",
      "tree": "a0b43ef902b133285f47250e03c97231cd2732f4",
      "parents": [
        "9b0c6beed2cd5463655712ad80ed160c08611ff8"
      ],
      "author": {
        "name": "Henrik B Andersson",
        "email": "henrikb.andersson@sonyericsson.com",
        "time": "Mon Feb 21 14:22:08 2011 +0100"
      },
      "committer": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonyericsson.com",
        "time": "Thu Aug 04 13:43:02 2011 +0200"
      },
      "message": "Bug fixes in OMA DRM v1 Forward Lock Agent\n\nA couple of fixes in the Forward Lock Agent.\nThe DRM Framework isn\u0027t thread safe so the Forward Lock Agent needs\nto protect the private structures.\nBase64-encoded content with LF-only instead of CRLF line breaks is now\naccepted.\nA fix for non-standard boundary characters.\nThe debug prints are also turned off as default.\n\nChange-Id: I8ab417231380fbe1c371d18a147773ceabc6f69f\n"
    },
    {
      "commit": "601a90c38a61fccb614ee1da9f3a388a7a1c2302",
      "tree": "58cb2b0c1212e009862be897a7ccc8acd47f7a05",
      "parents": [
        "070ce94b9fd91d1bb22161a85178440cb46d8ece"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Aug 01 10:31:24 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Aug 01 10:52:49 2011 -0700"
      },
      "message": "Fix ordering assumption of argument evaluation.\n\nNo specific order is specified in the C++ standard, but the order of\nthe calls to Parcel read commands matters.  Move any calls with multiple\nreads to local variables.\n\nFix for bug 5103507.\n\nChange-Id: Ic23ad50ec5f443146f00324b66d5e2bd5b9ffd0d\n"
    },
    {
      "commit": "a17d454fd0d20d14cf1fbc09f0f296cb6cbb870b",
      "tree": "e7ecaa5d516248aee80cf5887f50c5b75e91a0f4",
      "parents": [
        "ae5df05f2246515a652f0c935c6deb85a0bdee01"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Jul 21 15:10:22 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Jul 25 16:09:58 2011 -0700"
      },
      "message": "Fix for bug 4371230.\n- Generate unique ID for each DrmManagerClient in native side\n- Fix the bug where multiple clients could use the same ID\n- Return the correct unique ID back to Java\n- Add a flag in the unique ID to separate native client and Java client\n\nChange-Id: Ia4574b6b0a526f2335a65380975dc62f9a6e7f9b\n"
    }
  ],
  "next": "bd882b1c8708686d373c56e07e6bb8b1cb6ffd9e"
}
