)]}'
{
  "log": [
    {
      "commit": "2b0640135fc886d24de74382487277981de280b6",
      "tree": "dc61a82b2ff89786aba025e7a7d82d979ba5df22",
      "parents": [
        "dbc0b78e32530f0fc826dcd6e92c15467ad801c8"
      ],
      "author": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Thu Sep 07 16:57:08 2023 -0400"
      },
      "committer": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Thu Sep 07 17:01:54 2023 -0400"
      },
      "message": "Handle grep finds no matches.\n\nBazel is more strict about exit codes in genrules. In\nvendor.mime.types.minimized, there are no no-empty lines, so the grep\nfails. Update the command to succeed even though grep fails.\n\nTest: m mimemap and verify contents of\n    out/soong/.intermediates/frameworks/base/mime/vendor.mime.types.minimized/android_common/gen/vendor.mime.types\nChange-Id: I292fa4cde584d2a620fd245469e34bbaa13df256\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": "8e1c1f4d9dc93f1d4ca324092462690e27ca13e1",
      "tree": "dcc267d76d10978709782fc4541cc9aac57d6dc4",
      "parents": [
        "04665dbfccd9705172caf2d283651499d6dacd25"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Tue Oct 08 16:27:35 2019 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Tue Oct 08 21:03:44 2019 +0100"
      },
      "message": "Minimize default MIME map and optimize loading.\n\nThis CL topic speeds up DefaultMimeMapFactory.create() from 15.5msec\nto 5.7msec (measured by bundling a copy of the logic and data into\na test app) and saves 5.2 KByte of space (16 KBytes uncompressed) in\nframework.jar. This CL topic does not change the amount of heap memory\nconsumed by the loaded MimeMap.\n\nThis is achieved by moving the following parsing steps from\nDefaultMimeMapFactory into a build-time optimization step:\n\n * strip off comments (starting with \u0027#\u0027)\n * normalize whitespace (trim leading and trailing whitespace;\n   replace remaining whitespace with a single \u0027 \u0027).\n * drop lines that do not contain a \u0027 \u0027 after this step (those\n   only contained comments or only a MIME type without any\n   extension).\n * use String.indexOf(char) in favor of String.contains(String) or\n   Pattern matching.\n\nNoteworthy extra step specific to this CL:\n * specifically for vendor.mime.types (but not android.mime.types),\n   add a prefix \u0027?\u0027 to MIME types and extensions at build time,\n   rather than at runtime.\n\nNote that after this CL, DefaultMimeMapFactory can now *only* parse\nminimized *mime.types files, not the original (non-minimized) file\nformat.\n\nTest: Checked that the mapping didn\u0027t change by checking that\n      a device flashed after this CL passes CtsMimeMapTestCases\n      built before this CL.\nTest: Ran \"make mimemap-res.jar\" and manually verified that files\n      in the resulting jar look as expected.\nTest: Locally added some extra mappings to vendor.mime.types, some\n      of them with a leading \u0027?\u0027, and verified that they all show\n      up with exactly one leading \u0027?\u0027 for the MIME type and each\n      extension within mimemap-res.jar.\nBug: 142267887\n\nChange-Id: Idf1ef945a4ac225476f2036fbc8bb35eb9c090af\n"
    },
    {
      "commit": "9a3c44390bc650fcc44cdf033451c026acd70225",
      "tree": "347e645aeb4260704efd4f64c71bc5de14e26589",
      "parents": [
        "360428c44a942f85aee3edcf2fc4e07796b53082"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Wed Oct 02 20:54:35 2019 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Wed Oct 02 20:56:44 2019 +0100"
      },
      "message": "mime/Android.bp comment: Fix grammar.\n\nThis addresses an outstanding review comment from https://r.android.com/1130781\n\nTest: Visual inspection only.\nChange-Id: Ica163c4a0ec5e963c53c0cc5f2be2cd50d279eeb\n"
    },
    {
      "commit": "adeea59b4dbdc65ea9b479c3d613a1e933fb9fb0",
      "tree": "39e11a78a27962df3b8c6fe83706963f81672fb1",
      "parents": [
        "324349142cf3dacf5684bc3664b90ee81363dee1"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Fri Sep 27 20:27:29 2019 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Tue Oct 01 16:26:16 2019 +0100"
      },
      "message": "Make CTS more opinionated about the platform\u0027s default MimeMap.\n\nHistorically, the mapping implemented by MimeMap (formerly MimeUtils)\nwas largely untested and therefore differed between Android devices.\n\nThis CL topic makes CtsMimeMapTestCases a lot more opinionated by\nchecking that:\n\n - MimeMap.getDefault() must respect all of the mappings supplied\n   in stock Android. This is enforced via CTS bundling a copy of:\n   - the {,android.,vendor.}mime.types data files\n   - DefaultMimeMapFactory (rewritten via jarjar to\n     android.content.type.cts.StockAndroidMimeMapFactory)\n   MimeMap.getDefault() is allowed to implement _additional_\n   mappings, but changed or removed mappings are not allowed.\n - Public APIs android.webkit.MimeTypeMap and\n   URLConnection.getFileNameMap() must behave consistently with\n   MimeMap.getDefault() (in stock Android, those APIs are\n   implemented directly on top of MimeMap.getDefault()).\n\nTest: atest CtsMimeMapTestCases\nTest: atest CtsLibcoreTestCases:libcore.libcore.net.MimeMapTest\nTest: The above atest runs pass on a device that contains an\n      additional mapping in vendor.mime.types that is not\n      present in CTS.\nTest: Checked that on a device that changes a mapping in\n      android.mime.types, CtsLibcoreTestCases still passes\n      but CtsMimeMapTestCases fails.\n\nBug: 141842930\nBug: 139895945\n\nChange-Id: I68e0e9c3ce53c1acf2a89f8b80519f4658c07217\n"
    },
    {
      "commit": "324349142cf3dacf5684bc3664b90ee81363dee1",
      "tree": "bb035dc9888b89ff6fa1fd3f011f94cd185f55a0",
      "parents": [
        "e25c54f3282d64e8a139ab8176859d6ab738ef85"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Fri Sep 27 19:22:39 2019 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Mon Sep 30 17:10:53 2019 +0100"
      },
      "message": "Introduce vendor.mime.types\n\nLike mime.types and android.mime.types, this file specifies mappings\nbetween MIME types and file extensions. Unlike those files, it can\nonly be used to define _additional_ mapping but not modify (change,\nremove) any mappings defined by those files.\n\nThis is done by prepending \u0027?\u0027 to every line element from\nvendor.mime.types that doesn\u0027t already have one; when there is a\nleading \"?\", it is ignored so that it\u0027s okay to move a line from\n{android,vendor}.mime.types without necessarily changing it.\n\nTest: Checked manually that vendor.mime.types works as expected.\n  Specifically, after adding these lines to vendor.mime.type:\n\n    audio/mpeg testmpeg\n    audio/testmpeg mp3\n    ?mime/foo ?fooext\n\n  the following test passes:\n\n    MimeTypeMap map \u003d MimeTypeMap.getSingleton();\n    // Original mapping is unchanged\n    assertEquals(\"mp3\", map.getExtensionFromMimeType(\"audio/mpeg\"));\n    assertEquals(\"audio/mpeg\", map.getMimeTypeFromExtension(\"mp3\"));\n\n    // Map from the key to existing value is added\n    assertEquals(\"audio/mpeg\", map.getMimeTypeFromExtension(\"testmpeg\"));\n    assertEquals(\"mp3\", map.getExtensionFromMimeType(\"audio/testmpeg\"));\n\n    // Completely new mapping is added both ways\n    assertEquals(\"mime/foo\", map.getMimeTypeFromExtension(\"fooext\"));\n    assertEquals(\"fooext\", map.getExtensionFromMimeType(\"mime/foo\"));\n\nBug: 141842825\nChange-Id: Iaf918ce39324709ff58a8e0f9612e4827a673323\n"
    },
    {
      "commit": "af0cef987da359955023fde97f0f4c7444fd5e76",
      "tree": "30db49b5b36201af0be76fb31083ea51405a48db",
      "parents": [
        "fd9657d0320f291fb96b58d7fd5cc46b59d35128"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Fri Sep 27 17:08:49 2019 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Fri Sep 27 17:25:13 2019 +0100"
      },
      "message": "MimeMapImpl.createDefaultInstance() -\u003e DefaultMimeMapFactory.create().\n\nThe class no longer implements MimeMap, so the name MimeMapImpl\nno longer made sense.\n\nTest: Treehugger\nBug: 136256059\nChange-Id: I2cbc70a7769232b704a9bdfde2def832c1e292b8\n"
    },
    {
      "commit": "878c77b70478463757b59e7c2719cc62f6604177",
      "tree": "77fff3dde2dc8d0d7b4d854c5630586e9473bd4e",
      "parents": [
        "52efd46075d7f64da9d46de121a0cf6f93e4a7a1"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Sun Aug 18 15:19:45 2019 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Fri Sep 27 16:53:15 2019 +0100"
      },
      "message": "Move default MimeMap implementation to frameworks.\n\nThis is the second attempt to submit this CL. The first attempt\nregressed on app startup because RuntimeInit installed the\ncustom MimeMap from commonInit() which runs post-fork of the zygote,\nbut that was fixed by installing it pre-fork.\n\nThis CL topic moves the default MimeMap implementation to frameworks.\nLibcore starts with a minimal implementation sufficient to pass\nCtsLibcoreTestCases,  but frameworks can inject the real implementation.\nBefore this CL topic, the data files and logic (MimeMapImpl) were part of\ncore-*.jar on device; after this CL, they instead live in framework.jar.\n\nTests from MimeMapTest that check behavior of that default\nimplementation also move to a non-libcore CTS test.\n\nPlanned work for follow-up CL:\n 1. Make CTS more opinionated, with a plan to assert that all of\n    the default mappings are present. How exactly the expectated\n    mapping will be bundled in CTS is still TBD.\n 2. Add a vendor.mime.types file (defaults to empty) where vendors\n    can add additional mappings; I plan to make it such that mappings\n    in that file are parsed last but never override any earlier\n    mappings, as if each mime type / file extension was prefixed\n    with \u0027?\u0027.\n 3. Perhaps enforce that public APIs android.webkit.MimeTypeMap\n    and java.net.URLConnection.getFileNameMap() behave consistently\n    with MimeMap.getDefault().\n\nTest: atest CtsLibcoreTestCases\nTest: atest CtsMimeMapTestCases\nTest: Checked that CtsLibcoreTestCases still passes on a build that\n      is missing the MimeMap.setDefault() call from RuntimeInit.java.\nTest: Checked that app startup time does not regress as part of this\n      CL topic - see http://b/136256059#comment17\nBug: 136256059\n\nChange-Id: I716914bf1a7e6205e539f0551f010615dacb17a8\n"
    },
    {
      "commit": "f83bd777f33e59e60d46f71c3744369f4c335a0e",
      "tree": "e56720926e3203de95a0833709757841d3935055",
      "parents": [
        "89bcfa5a21d6d4c065b177b889457a97fb033472"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Wed Aug 28 22:42:17 2019 +0000"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Wed Aug 28 22:43:33 2019 +0000"
      },
      "message": "Revert \"Move default MimeMap implementation to frameworks.\"\n\nThis reverts commit 53f15f39f82ef4c4bd99c6d22f3563bae0c35269.\n\nReason for revert: Caused slower app startup (I don\u0027t know why).\n\nChange-Id: Id9e3811078bc435073f42996767589a711172400\n"
    },
    {
      "commit": "53f15f39f82ef4c4bd99c6d22f3563bae0c35269",
      "tree": "f1f711cc5f2bb2e105ab42eadbc22286dd582d21",
      "parents": [
        "4c322503bb6ad612970d64f7d4f29ca6d2d1f1b0"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Sun Aug 18 15:19:45 2019 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Wed Aug 21 14:46:50 2019 +0100"
      },
      "message": "Move default MimeMap implementation to frameworks.\n\nThis CL topic moves the default MimeMap implementation to frameworks.\nLibcore starts with a minimal implementation sufficient to pass\nCtsLibcoreTestCases,  but frameworks can inject the real implementation.\nBefore this CL topic, the data files and logic (MimeMapImpl) were part of\ncore-*.jar on device; after this CL, they instead live in framework.jar.\n\nTests from MimeMapTest that check behavior of that default\nimplementation also move to a non-libcore CTS test.\n\nSpecifically, the logic and android.mime.types now live in\nframeworks/base/mime. The default implementation is injected\ninto libcore from RuntimeInit. I chose to use a separate directory\n(frameworks/base/mime/) and build java_library target (\"mimemap\")\nin order to keep this as separate as possible from the rest of\nframeworks code, to make it as easy as possible to factor this\nout into a separate APEX module if we ever choose to do so.\n\nPlanned work for follow-up CL:\n 1. Make CTS more opinionated, with a plan to assert that all of\n    the default mappings are present. How exactly the expectated\n    mapping will be bundled in CTS is still TBD.\n 2. Add a vendor.mime.types file (defaults to empty) where vendors\n    can add additional mappings; I plan to make it such that mappings\n    in that file are parsed last but never override any earlier\n    mappings, as if each mime type / file extension was prefixed\n    with \u0027?\u0027.\n 3. Perhaps enforce that public APIs android.webkit.MimeTypeMap\n    and java.net.URLConnection.getFileNameMap() behave consistently\n    with MimeMap.getDefault().\n\nTest: atest CtsLibcoreTestCases\nTest: atest CtsMimeMapTestCases\nBug: 136256059\nChange-Id: Ib955699694d24a25c33ef2445443afb7c35ed9e7\n"
    }
  ]
}
