)]}'
{
  "log": [
    {
      "commit": "3d1c8cc4682346a019351496e57d7ceb9fccf268",
      "tree": "9f053e24fe1382fb72b56c21efec8d094a9fe15d",
      "parents": [
        "398233831e837ca07cdfba77c005c4b4d01e050b",
        "45f7d8701f75128951a7678729c2ba95a07bdf5b"
      ],
      "author": {
        "name": "Jorge De la Torre",
        "email": "jorgetm@google.com",
        "time": "Mon Jan 08 17:04:23 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 08 17:04:23 2024 +0000"
      },
      "message": "Merge \"AlarmManager: Store time offset system property\" into main"
    },
    {
      "commit": "f98c8ebffe368ccba1f78e46cf6e2b69a8fcb29b",
      "tree": "d4b23d5bde26ffad8ed7b63317b1c9f034b45d13",
      "parents": [
        "3289b312529b0610ac2ef47bf774e7694d44d2fe"
      ],
      "author": {
        "name": "Jing Ji",
        "email": "jji@google.com",
        "time": "Tue Jan 02 11:36:58 2024 -0800"
      },
      "committer": {
        "name": "Jing Ji",
        "email": "jji@google.com",
        "time": "Tue Jan 02 11:36:58 2024 -0800"
      },
      "message": "Declare a feature flag for batching jobs on network activation.\n\nBug: 318394184\nTest: presubmit - the flag is unused for now\nChange-Id: I8ae86ee16bfd2bf26ddac31f020a9fceefe8acdd\n"
    },
    {
      "commit": "604bf886e60fa8f8657718407dd3567def36f142",
      "tree": "955ffae25deed33207ed9d4e6f408fc7f1bd6947",
      "parents": [
        "6da4412d32626891be97628a4869d33044c17439",
        "edd43ec21061ed62ec08630dd932c9094cb5f788"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Dec 20 22:48:51 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 20 22:48:51 2023 +0000"
      },
      "message": "Merge \"Log some flex policy information to statsd.\" into main"
    },
    {
      "commit": "f91fac20f811a0530c9814ba284829798a70d7bf",
      "tree": "e739d1c3e10cb8a98a12f9aa5e88a48deb1ce294",
      "parents": [
        "29b2d15338e5d4a10a5a7ac33f4e3c078e0258bb",
        "f39aa99b29c62e199df1789955852ae388e8a9a9"
      ],
      "author": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Tue Dec 19 20:57:47 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 19 20:57:47 2023 +0000"
      },
      "message": "Merge changes I5e422dbf,I7ec22e4e into main\n\n* changes:\n  Remove FlakyTest annotations from most AppStandbyControllerTests\n  Add a method to flush AppStandbyController\u0027s handler\n"
    },
    {
      "commit": "45f7d8701f75128951a7678729c2ba95a07bdf5b",
      "tree": "13e63d997f1b3296de0605f1389bac8a001fa1f9",
      "parents": [
        "aaf96093826348c6cbfb804eeec014d9da0bd569"
      ],
      "author": {
        "name": "jorgetm",
        "email": "jorgetm@google.com",
        "time": "Fri Dec 08 22:35:07 2023 +0000"
      },
      "committer": {
        "name": "Jorge De la Torre",
        "email": "jorgetm@google.com",
        "time": "Tue Dec 19 20:56:53 2023 +0000"
      },
      "message": "AlarmManager: Store time offset system property\n\nFor TILB (time in low battery mode) we need to store the time zone\noffset as a system property. Updating AlarmManagerService so it matches\nkr3-dev and stores this offset when the time zone is updated through\nconnectivity or when it is updated manually in the settings.\n\nBug: 311191984\nTest: Update time zone manually and check the system property\nChange-Id: I426941c01408bb83821573f83e757c05aec4dd5c\n"
    },
    {
      "commit": "2562d5628efd9132ab7c7e5ccef3bb2967bcb884",
      "tree": "1c3e8b21415a403bea82b8d78a14526a040959c5",
      "parents": [
        "a7ca484049e0505d94114583053b715aa2f7961c",
        "57ed8cfb8bfd6eb630e8417c4ee2ff1e61024d00"
      ],
      "author": {
        "name": "Dan Sinkiewicz",
        "email": "dsinkiewicz@google.com",
        "time": "Tue Dec 19 20:31:37 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 19 20:31:37 2023 +0000"
      },
      "message": "Merge \"Revert \"Add exemptions to flex policy.\"\" into main"
    },
    {
      "commit": "57ed8cfb8bfd6eb630e8417c4ee2ff1e61024d00",
      "tree": "9aeba29292cb02ed4215f5e1714a4843dae1c7b8",
      "parents": [
        "0f53d325dcade7a92a9f7c8f9e1d152303c9f284"
      ],
      "author": {
        "name": "Dan Sinkiewicz",
        "email": "dsinkiewicz@google.com",
        "time": "Tue Dec 19 19:30:08 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 19 19:30:08 2023 +0000"
      },
      "message": "Revert \"Add exemptions to flex policy.\"\n\nRevert submission 25631207-js_flex_exemptions\n\nReason for revert: Added tests failing in post submit b/317082660\n\nReverted changes: /q/submissionid:25631207-js_flex_exemptions\n\nChange-Id: I5f852693c208d77cb2626987ddf0067df95e0f5d\n"
    },
    {
      "commit": "ed17b0f807d493dad4f4a0627da2c035402fbf61",
      "tree": "b6a9f4d9e7d64878d924a2758e0012777d60e742",
      "parents": [
        "dc28da2e59cc883f2ad54c2e53190ea32f161a4e"
      ],
      "author": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Mon Dec 11 22:34:03 2023 -0800"
      },
      "committer": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Tue Dec 19 10:54:01 2023 -0800"
      },
      "message": "Add a method to flush AppStandbyController\u0027s handler\n\nAnd flush the handler in testing to guarantee correct results.\nAlso, fix AppStandbyController#setIdle by removing any existing bucket\nexpiry times that could immediately change the idle status.\n\nTest: atest AppStandbyControllerTests\nBug: 185169504\nChange-Id: I7ec22e4eeffca18927531f62edffcc51243fb648\n"
    },
    {
      "commit": "a10bdf1c6332915fbc8e39ad0a72b55cfdc0b97a",
      "tree": "83a27309a194d07584a3ddd84d6c08416e628068",
      "parents": [
        "666685eaf5ad486494d02958b6fc032b489a155b",
        "0f53d325dcade7a92a9f7c8f9e1d152303c9f284"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Dec 19 16:26:04 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 19 16:26:04 2023 +0000"
      },
      "message": "Merge \"Add exemptions to flex policy.\" into main"
    },
    {
      "commit": "edd43ec21061ed62ec08630dd932c9094cb5f788",
      "tree": "333691b0cb0629416123f5c924d1ac1a333b07a5",
      "parents": [
        "2996824c8f59e231b60ecaf8555e74fe8753bdb0"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Dec 18 18:31:06 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Dec 18 18:42:30 2023 +0000"
      },
      "message": "Log some flex policy information to statsd.\n\nLog information about flex policy state for each job to statsd.\n\nAlso remove obsolete annotations.\n\nBug: 236261941\nBug: 299329948\nBug: 299346198\nTest: statsd_testdrive 8\nChange-Id: Ic98766c20a551275a8d5543a799329885d72ef7e\n"
    },
    {
      "commit": "2996824c8f59e231b60ecaf8555e74fe8753bdb0",
      "tree": "0935d5785a912cd2711a1caa38f7b2bcffa174f7",
      "parents": [
        "e3e57d954b28f93d060396ed5272c3ec696ff867",
        "4d427987fba6ebb3fcf72ec42fdfed889a7e3f9e"
      ],
      "author": {
        "name": "Sanath Kumar",
        "email": "sanathku@google.com",
        "time": "Mon Dec 18 17:53:42 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 18 17:53:42 2023 +0000"
      },
      "message": "Merge \"Track periodic and flex intervals in ScheduledJobStateChanged events\" into main"
    },
    {
      "commit": "0f53d325dcade7a92a9f7c8f9e1d152303c9f284",
      "tree": "f0c5502c89761b4846633e90283a094f2e688813",
      "parents": [
        "67494dd14aaf7111a3c1b1a88c08a9dd4ff186d3"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Dec 12 17:26:10 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Dec 18 15:55:33 2023 +0000"
      },
      "message": "Add exemptions to flex policy.\n\nExempt DEFAULT+ priority jobs for BFGS+ and exempted apps from flex\npolicy. LOW and MIN priority jobs will continue to have the flex policy\napplied.\n\nAlso make the run shell command more reliable for connectivity jobs.\n\nBug: 236261941\nBug: 299329948\nBug: 299346198\nBug: 316435418\nTest: atest CtsJobSchedulerTestCases:FlexibilityConstraintTest\nTest: atest frameworks/base/services/tests/mockingservicestests/src/com/android/server/job\nTest: atest\nframeworks/base/services/tests/servicestests/src/com/android/server/job\n\nChange-Id: Ic774f541b8bf64aecc814eba991008ebaeba3566\n"
    },
    {
      "commit": "356a1b24e34060706277f66c14ff118b1ceceddd",
      "tree": "8786c5401d57da9dbe6c0dade201fdf10c8c047a",
      "parents": [
        "fc050dfb0e9177e6412f640511564b5379ea5dbf",
        "68a2838f75946d75ff7a03fa506f794bc14020c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Dec 14 20:00:04 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 14 20:00:04 2023 +0000"
      },
      "message": "Merge \"Update max priority docs.\" into main"
    },
    {
      "commit": "6712969c2e6bea8f982c79a065c48f012d1deda2",
      "tree": "3390c4d9968438c3850bd3056c7b3830d2ecc3dc",
      "parents": [
        "b55089f34d50b098c58f71a37ee2896109036ddc",
        "804a53dbb63b9bc7ea2b362449ae8b43550e2b82"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Dec 14 19:09:24 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 14 19:09:24 2023 +0000"
      },
      "message": "Merge \"Get uid from PACKAGE_REMOVE intent in AppStandbyController\" into main"
    },
    {
      "commit": "68a2838f75946d75ff7a03fa506f794bc14020c5",
      "tree": "a1454d3cbfa0ce312d4f0be614ff5ace74ce3730",
      "parents": [
        "67494dd14aaf7111a3c1b1a88c08a9dd4ff186d3"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Thu Dec 14 18:53:02 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Thu Dec 14 18:56:20 2023 +0000"
      },
      "message": "Update max priority docs.\n\nUpdate the docs to note that user-initiated jobs have MAX priority and\ngive additional examples of max priority tasks.\n\nBug: 19536175\nTest: `m offline-sdk-docs` and view page at out/target/common/docs/offline-sdk/reference/android/app/job/JobInfo.html\nChange-Id: I319d03f279f1a435860ff09a0e58e163a1b516a5\n"
    },
    {
      "commit": "804a53dbb63b9bc7ea2b362449ae8b43550e2b82",
      "tree": "a4335ca04e77c2aceb66127aa533506f7af83da2",
      "parents": [
        "c0a5b05940138ea2594c0706a6415adc3222119a"
      ],
      "author": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Wed Dec 13 16:57:23 2023 -0800"
      },
      "committer": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Wed Dec 13 16:57:23 2023 -0800"
      },
      "message": "Get uid from PACKAGE_REMOVE intent in AppStandbyController\n\nTest: atest AppStandbyControllerTests\nBug: 185169504\nChange-Id: I614f5286f1c420c576e078836c0ca7bad8e109ab\n"
    },
    {
      "commit": "4d427987fba6ebb3fcf72ec42fdfed889a7e3f9e",
      "tree": "374c36ea1fb678777b6bf8f11a2d3e0eda44b218",
      "parents": [
        "99b3bb7633302251d4f961676c9193d488ef24b9"
      ],
      "author": {
        "name": "Sanath Kumar",
        "email": "sanathku@google.com",
        "time": "Wed Dec 13 13:25:09 2023 -0600"
      },
      "committer": {
        "name": "Sanath Kumar",
        "email": "sanathku@google.com",
        "time": "Wed Dec 13 17:16:35 2023 -0600"
      },
      "message": "Track periodic and flex intervals in ScheduledJobStateChanged events\n\nAdded logging of periodic and flex intervals for\nScheduledJobStateChanged events. This data will help analyze app\nusage of periodic job APIs and identify potential optimization\nopportunities for performance and power.\n\nBug: 296629905\nTest: Ran \"statsd_testdrive 8\". New fields added to the\nScheduledJobStateChanged are retrieved shown without any errors.\n\nChange-Id: Ib41ea3edfb9d22772206f16975ce3a2d287cbbfd\n"
    },
    {
      "commit": "4ddec7a616f4812bd03cbaca9721b1d5519e3239",
      "tree": "a38850799f48a9877bf948ae118067c3e267b4d6",
      "parents": [
        "84427ae97920b4b8cce34df1077284fcfdc71e97",
        "3bb71c1cc651b1fb2622187f0f57eb18a8ca60f7"
      ],
      "author": {
        "name": "Varun Shah",
        "email": "varunshah@google.com",
        "time": "Wed Dec 13 08:02:04 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 13 08:02:04 2023 +0000"
      },
      "message": "Merge \"Update exception thrown for consistency.\" into main"
    },
    {
      "commit": "3bb71c1cc651b1fb2622187f0f57eb18a8ca60f7",
      "tree": "d4eaf635b92fda6573cf412580c1f4246829123f",
      "parents": [
        "f045351b1e2693f1c2351d5572537e545027375d"
      ],
      "author": {
        "name": "Varun Shah",
        "email": "varunshah@google.com",
        "time": "Mon Dec 11 22:14:21 2023 +0000"
      },
      "committer": {
        "name": "Varun Shah",
        "email": "varunshah@google.com",
        "time": "Tue Dec 12 21:57:59 2023 +0000"
      },
      "message": "Update exception thrown for consistency.\n\nThe PackageManagerInternal APIs for checking if the app is in a stopped\nstate or is quarantined throw an IllegalArgumentException when the\npackage is not found - however, this was not documented anywhere.\n\nInstead, to be consistent with other PackageManager APIs, start throwing\na NameNotFoundException from the internal APIs and ensure the new\nexception is caught from the public APIs and rethrown as\nIllegalArgumentException.\n\nThis change updates the documentation as well, fixes a typo in a method\nname, and also updates the logging level for when these exceptions occur.\n\nBug: 314863695\nTest: builds/flashes/boots (mostly documentation changes)\nChange-Id: Ia7b30ce4e16b5e40bd767cd15dbf2cd2728567dd\n"
    },
    {
      "commit": "a2cb765c3a508ef5f4051d1f2465018e2e9f080f",
      "tree": "01910aa2855e04e8d5a2b06d4964f533483fb5ed",
      "parents": [
        "be070f30debddf39ebe35865945cbd02fdd8858d",
        "d94881b824b0d7cdbbdb2bd55e7da93216e1dd81"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Dec 08 22:46:22 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 08 22:46:22 2023 +0000"
      },
      "message": "Merge \"Reduce handler message spam.\" into main"
    },
    {
      "commit": "be070f30debddf39ebe35865945cbd02fdd8858d",
      "tree": "e06e564fd4982e0131c6edc61bae3ad6b29cc6b0",
      "parents": [
        "fade449f2cb910f80c1766901321b8f77a0f8b09",
        "a8e4b0aa6d030781ae8fd96f326f58ef596e9fea"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Dec 08 22:45:40 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 08 22:45:40 2023 +0000"
      },
      "message": "Merge \"Limit execution extension to important jobs.\" into main"
    },
    {
      "commit": "d94881b824b0d7cdbbdb2bd55e7da93216e1dd81",
      "tree": "a1246a6865bfd99b3abfdafa07600edf5c97c210",
      "parents": [
        "8a5ee58d82feb21a738aa19f32c47d87072f216a"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Dec 08 19:59:44 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Dec 08 19:59:44 2023 +0000"
      },
      "message": "Reduce handler message spam.\n\nSkip posting a message to the handler for events that aren\u0027t going to be\nprocessed.\n\nBug: 141645789\nBug: 273758274\nTest: atest FrameworksMockingServicesTests:QuotaControllerTest\nChange-Id: I9ed4da14aa33e66340f6573ad7f15763458ec5a9\n"
    },
    {
      "commit": "a8e4b0aa6d030781ae8fd96f326f58ef596e9fea",
      "tree": "3cf77c72d286d972b1ab31b2247850395d37999b",
      "parents": [
        "8a5ee58d82feb21a738aa19f32c47d87072f216a"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Dec 08 19:45:42 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Dec 08 19:45:42 2023 +0000"
      },
      "message": "Limit execution extension to important jobs.\n\nLimit the timeout execution extension for apps in privileged states to\nonly the jobs that are marked as important.\n\nBug: 284512488\nBug: 299329948\nBug: 299346198\nTest: atest FrameworksMockingServicesTests:QuotaControllerTest\nChange-Id: Ie6d17f091ae18cd8ff402886ca7d9a9be3c56f07\n"
    },
    {
      "commit": "f045351b1e2693f1c2351d5572537e545027375d",
      "tree": "2868a508715432dd74dee627cbfef3df202dcb56",
      "parents": [
        "0abdb9f1ff4670d3f25333b446a89f3eb07815a7"
      ],
      "author": {
        "name": "Varun Shah",
        "email": "varunshah@google.com",
        "time": "Fri Dec 08 19:05:07 2023 +0000"
      },
      "committer": {
        "name": "Varun Shah",
        "email": "varunshah@google.com",
        "time": "Fri Dec 08 19:05:07 2023 +0000"
      },
      "message": "Catch exception when package is unknown.\n\nBug: 314863695\nTest: builds/flashes/boots\nTest: atest BackgroundJobsControllerTest\nChange-Id: I2a46ba64e7764c4e95547c3a50c999d6132f1b87\n"
    },
    {
      "commit": "a6738a47b1f0dede8640ebf48a0bbc8a223108de",
      "tree": "57fd10fef94b2fc8e490d8a38ed322286f828fbf",
      "parents": [
        "45073580616f24e6b5eff62596b347f5a338041b"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Dec 04 23:04:45 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Thu Dec 07 21:48:51 2023 +0000"
      },
      "message": "Make applied flex constraints configurable.\n\nMake it possible to change which specific constraints are used in the\nflex scheduling behavior.\n\nBug: 236261941\nBug: 299329948\nBug: 299346198\nTest: atest CtsJobSchedulerTestCases:FlexibilityConstraintTest\nTest: atest frameworks/base/services/tests/mockingservicestests/src/com/android/server/job\nTest: atest frameworks/base/services/tests/servicestests/src/com/android/server/job\nChange-Id: I55c143d9e4ec384bd4c687dbe9313a8e78a9a6f1\n"
    },
    {
      "commit": "10973add15aed7a382019673ba231dc353b3f7cc",
      "tree": "c18a92efc2479f15bc9af9b0103a35d82e0b09b1",
      "parents": [
        "b9fc62256c919cc290e7497c279a81e5ae92d239"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Thu Dec 07 00:10:31 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Thu Dec 07 00:26:28 2023 +0000"
      },
      "message": "Remove incorrect assumption.\n\nThe initial assumption was that PACKAGE_RESTARTED meant that the app\nwould be put into the stopped state and be kept in the stopped state\nuntil the PACKAGE_UNSTOPPED broadcast was sent. However, there are cases\nwhere the PACKAGE_RESTARTED broadcast is sent but the app is not put and\nkept in the stopped state (eg. clearing app data). Change the logic to\nno longer assume that PACKAGE_RESTARTED means the app is put and kept in\nthe stopped state.\n\nBug: 315171674\nTest: atest android.permissionui.cts.SafetyLabelChangesJobServiceTest#runNotificationJob_packageSourceUnspecified_updatesSafetyLabelHistoryForApps\nTest: atest FrameworksMockingServicesTests:BackgroundJobsControllerTest\nChange-Id: I23efa966b4963ca1777bdac58bbdad2f250c4984\n"
    },
    {
      "commit": "704be323bbb8a8fb816d75984b82abcc0316a08b",
      "tree": "9265e5d416b8f325266004aa860d70390450ad28",
      "parents": [
        "961d2b4efd8e1bca2739fd9ea0423f183cbcba1b"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Dec 06 17:24:39 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Dec 06 22:18:56 2023 +0000"
      },
      "message": "Minor cleanup.\n\n1. Add @GuardedBy annotations to help errorprone.\n2. Update copyright date to the year the file was created.\n\nBug: 141645789\nTest: N/A\nChange-Id: If743ddc51f5d3ad390b3085048b5a31badb635ce\n"
    },
    {
      "commit": "a06e85bd7d9880cc095583e91f47e01fb7bd5585",
      "tree": "2f5aea067158e7d68ca2746b87bfcfb3a6b30288",
      "parents": [
        "ebc1d4f02c41e7e85dfd6675627bf43080e6c72d",
        "3d3b01abcf033e41ef92441ba6a294c83e41dcab"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Dec 06 16:19:57 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 06 16:19:57 2023 +0000"
      },
      "message": "Merge \"Don\u0027t allow jobs of stopped apps to run.\" into main"
    },
    {
      "commit": "1ffaf3be517af37ba4f170b77087af8484cbf5e6",
      "tree": "a76af5b787b20f85ded80eecaba254a37fd5b2dc",
      "parents": [
        "cf0d71f83c1084fa5e4c60663bb9aaa8b8cd4529"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Dec 05 23:18:27 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Dec 05 23:18:27 2023 +0000"
      },
      "message": "Add shell command to get aconfig flag values.\n\nAlso include the flag value in the job dump.\n\nBug: 314877619\nTest: atest CtsJobSchedulerTestCases:JobInfoTest\nChange-Id: Idfb507de07354c97af1d39f6cc67b09fa891d5b9\n"
    },
    {
      "commit": "3d3b01abcf033e41ef92441ba6a294c83e41dcab",
      "tree": "611612b67004f04ed9468af0e8ea6c1d72887add",
      "parents": [
        "ca834953e8860043a5ffdb8410538c8791d20191"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Dec 05 20:48:27 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Dec 05 20:52:51 2023 +0000"
      },
      "message": "Don\u0027t allow jobs of stopped apps to run.\n\nJobs scheduled on behalf of another app (aka \"source app\") aren\u0027t\ndropped when the source app is force stopped. In this scenario, we don\u0027t\nwant the job to run until the app comes out of the stopped state. Add\nexplicit handling of this case to ensure we don\u0027t accidentally run these\njobs and potentially give the app a way to get out of the stopped state\nin the background.\n\nBug: 313794821\nTest: atest FrameworksMockingServicesTests:BackgroundJobsControllerTest\nTest: atest CtsJobSchedulerTestCases:JobThrottlingTest\nChange-Id: I26a8efb0b04022a6ac9e9ad716940c8971fd57dd\n"
    },
    {
      "commit": "da434496c9455e51d4343050b238664e9c27e034",
      "tree": "a04bdb37f12381d3b36707b17a0cef8f4146f869",
      "parents": [
        "0c7bac3f44a5699e79740231edf0e2940e3a5f87"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 17 19:06:59 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Dec 01 21:16:49 2023 +0000"
      },
      "message": "Enforce minimum job time windows.\n\nSet a minimum difference between a job\u0027s latency and deadline to give\nthe system time to optimize execution decisions.\n\nBug: 311402873\nBug: 297106511\nBug: 299329948\nBug: 236261941\nTest: atest CtsJobSchedulerSharedUidTestCases\nTest: atest CtsJobSchedulerTestCases\nTest: atest frameworks/base/services/tests/mockingservicestests/src/com/android/server/job\nTest: atset frameworks/base/services/tests/servicestests/src/com/android/server/job\nChange-Id: Ia6a7f1ddfdcef3fb7298543170b03ba679e0779c\n"
    },
    {
      "commit": "7c88043780c4535f516643e08f08edc4686e9866",
      "tree": "b4c8c2de7788b9848af56e6613fd48fdd4a43f2c",
      "parents": [
        "28e5463be0e0ed5dc1a64ff87cfb84676ee1ac13",
        "ea77a1ea9855eb62556573203a1e4a56f9869d2b"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Dec 01 01:58:13 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 01 01:58:13 2023 +0000"
      },
      "message": "Merge \"Move some tracking starts out of constructor.\" into main"
    },
    {
      "commit": "cbf643b4f19ed08e431c74871ee87c23856f3e25",
      "tree": "e76b20ae2debab290393a141021b68a3bebd4ca5",
      "parents": [
        "8ee0efc4c603c54f1075b5bfb43865fe224835a8",
        "2d0db1b3ba957b6c0ffecee7ec4fdeac6edbf1c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Nov 30 21:03:23 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 30 21:03:23 2023 +0000"
      },
      "message": "Merge \"Avoid doubly penalizing rescheduled periodic jobs for flex.\" into main"
    },
    {
      "commit": "f0d16342ae4d8c1748e85f2778ae704f352d69d5",
      "tree": "925f29e9bd62e23d9964be94286c2a091d567323",
      "parents": [
        "4aa3999f54bc1348952ccc45a9828e44d99e89b7",
        "0028af98ce492beceb643a5aa1f609848f91c86b"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Thu Nov 30 18:12:31 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 30 18:12:31 2023 +0000"
      },
      "message": "Merge \"Throw the SecurityException only on V+ builds.\" into main"
    },
    {
      "commit": "c320eeaa25c6e5771d443858732e4a17a1480f1f",
      "tree": "4de90a079d0044694473cf1d02c32d56d532cd25",
      "parents": [
        "fcb8191ebe47ede76a128b7ad8e41e3be5ba3de0",
        "0e85b3807c7be03f504ca8a7f35cf5b73801be5e"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Thu Nov 30 01:59:22 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 30 01:59:22 2023 +0000"
      },
      "message": "Merge \"Update delivery group policy for TIME_CHANGED and TIMEZONE_CHANGED.\" into main"
    },
    {
      "commit": "0028af98ce492beceb643a5aa1f609848f91c86b",
      "tree": "dedc6c0127f30a2217e88012abce98117d45a9a1",
      "parents": [
        "418c3175124fabeb9479b1911a65391657aff3a2"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 17 20:33:07 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Nov 29 23:47:56 2023 +0000"
      },
      "message": "Throw the SecurityException only on V+ builds.\n\nU builds shouldn\u0027t treat apps targeting V+ differently from apps\ntargeting U. Make sure the target SDK gated exception is only thrown on\nV+ builds.\n\nBug: 300477393\nTest: atest CtsJobSchedulerTestCases:JobInfoTest\nChange-Id: I6d02e2d3d37f7dd06d63801da3352c357415e222\n"
    },
    {
      "commit": "0e85b3807c7be03f504ca8a7f35cf5b73801be5e",
      "tree": "a6c361f45729c68f915b57299602331df06a5050",
      "parents": [
        "546a73c38b414f51ebd89befbb21273e0381cd2e"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Wed Nov 29 13:39:39 2023 -0800"
      },
      "committer": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Wed Nov 29 14:53:52 2023 -0800"
      },
      "message": "Update delivery group policy for TIME_CHANGED and TIMEZONE_CHANGED.\n\nApplying the DELIVERY_GROUP_POLICY_MOST_RECENT policy to TIME_CHANGED\nand TIMEZONE_CHANGED broadcasts so that the older broadcasts can be\ndiscarded when a new one comes in. Since they are already using\nthe FLAG_RECEIVER_REPLACE_PENDING, it should be safe to apply this\npolicy.\n\nBug: 311288757\nTest: atest CtsAlarmManagerTestCases\nTest: atest services/tests/mockingservicestests/src/com/android/server/alarm/AlarmManagerServiceTest.java\nChange-Id: Iada16830fa05d93e2a85c0a2d06ee31c0470cb4a\n"
    },
    {
      "commit": "2d0db1b3ba957b6c0ffecee7ec4fdeac6edbf1c5",
      "tree": "1c9e6c5d865b27e93d3d68439d6505c4de51536f",
      "parents": [
        "418c3175124fabeb9479b1911a65391657aff3a2"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Nov 29 20:56:29 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Nov 29 20:56:29 2023 +0000"
      },
      "message": "Avoid doubly penalizing rescheduled periodic jobs for flex.\n\nPeriodic jobs that were completed successfully and rescheduled sometimes\nhave adjusted start times to avoid running them back to back. When this\nhappens, make sure the flex logic takes the adjustment into account and\ndoesn\u0027t delay the constraint drops too significantly.\n\nBug: 236261941\nTest: atest FrameworksMockingServicesTests:FlexibilityControllerTest\nChange-Id: I039f86a409754089c7592719e0fd3355d6883cfb\n"
    },
    {
      "commit": "ea77a1ea9855eb62556573203a1e4a56f9869d2b",
      "tree": "c0399701a5cbdec673f5de2083489d2edecd0ee3",
      "parents": [
        "418c3175124fabeb9479b1911a65391657aff3a2"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Nov 29 19:46:07 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Nov 29 19:58:34 2023 +0000"
      },
      "message": "Move some tracking starts out of constructor.\n\nShift the tracking initiation of some controllers out of the constructor\nand do them asynchronously to reduce the amount of work done inside\nJobScheduler\u0027s constructor.\n\nBug: 309292340\nTest: atest CtsJobSchedulerTestCases:JobSchedulingTest\nTest: atest frameworks/base/services/tests/mockingservicestests/src/com/android/server/job\nTest: atest frameworks/base/services/tests/servicestests/src/com/android/server/job\nChange-Id: I7812419d7434ecf3fcb917f8c8bdd270d00bdd75\n"
    },
    {
      "commit": "c82b6e66b01a6a249dae83c681791400cca3ae6c",
      "tree": "3ec1640bf335396dd35c32a52950753aa88c6387",
      "parents": [
        "3071cb0397450e921a1be1f1173819f34826b521",
        "5caa35361c237f7e9cec9ca71e3a30ef9245feac"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Nov 29 17:09:05 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 29 17:09:05 2023 +0000"
      },
      "message": "Merge \"Adjust idle timings.\" into main"
    },
    {
      "commit": "5caa35361c237f7e9cec9ca71e3a30ef9245feac",
      "tree": "7348440cd614fb67574a60a1a9ee8fa1e252a3ef",
      "parents": [
        "418c3175124fabeb9479b1911a65391657aff3a2"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Oct 02 18:04:16 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Nov 28 18:57:15 2023 +0000"
      },
      "message": "Adjust idle timings.\n\n1. Reduce the time to enter deep device idle from ~71 minutes to a few\n   minutes. Based on user behavior, the system can be more confident\n   than not that the user won\u0027t turn the screen on for a while after\n   a few minutes of screen off time.\n2. Shorten the time to enter light Doze and increase the max light idle\n   time to 30 minutes and change the backoff system to get to 30 minutes\n   more slowly.\n\nBug: 187947479\nBug: 299329948\nTest: atest DeviceIdleTest\nTest: atest FrameworksMockingServicesTests:DeviceIdleControllerTest\nChange-Id: Id4fb80d9def10d511759f6ae853ab6ce8909ca36\n"
    },
    {
      "commit": "f87b353f9dddc1206a34447d4eac24fe8dd7c5ca",
      "tree": "18d1d46da93e5769aea44298418fd960ef956d20",
      "parents": [
        "eb8cfbbab8b8f3862f072ebcdf050eb945b5e962",
        "44e8739b9ba75911fce0da6a53ae601ea34e40f3"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Nov 28 16:12:59 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 28 16:12:59 2023 +0000"
      },
      "message": "Merge \"Allow users to set custom Doze settings.\" into main"
    },
    {
      "commit": "44e8739b9ba75911fce0da6a53ae601ea34e40f3",
      "tree": "724e5f63b01ae890fd7d67b843d65ab9ac5f25b7",
      "parents": [
        "4ae4c3881a76df4c1f87943ccac1c1d6611d2b41"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Thu Oct 12 19:19:09 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Nov 20 20:41:20 2023 +0000"
      },
      "message": "Allow users to set custom Doze settings.\n\nPartially undo I7fff451b641eee43a13e77df7b40db5b3af16d58.\nAllow users to customize Doze parameters as they used to be able to do\nbefore.\nAlso pull out related logic into a tested helper class.\n\nBug: 305056706\nTest: atest CtsBatterySavingTestCases\nTest: atest frameworks/base/services/tests/mockingservicestests/src/com/android/server/tare\nTest: atest frameworks/base/services/tests/servicestests/src/com/android/server/tare\nTest: atest FrameworksMockingServicesTests:DeviceIdleControllerTest\nTest: atest FrameworksServicesTests:BatterySaverPolicyTest\nTest: atest FrameworksServicesTests:UserSettingDeviceConfigMediatorTest\nTest: atest SettingsProviderTest:SettingsBackupTest\nChange-Id: Ieda9ee354b1dde01fed186f19e8ed957b2bbfe00\n"
    },
    {
      "commit": "418e4ba502743376af0ee4a42b824686003e195b",
      "tree": "0629e1f49fac78ca9b9b8b57f5ed0b2e069a727a",
      "parents": [
        "8e34a47aa07539a365ca087e137b8f1e551030e0",
        "054fcdf7aaed8e53ecefc1cbd0e5ef382429b8fb"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Nov 20 20:19:41 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 20 20:19:41 2023 +0000"
      },
      "message": "Merge \"Properly set the NetworkRequest singleUid.\" into main"
    },
    {
      "commit": "c835de5316196743cd13cea3ee827cce3b07fd07",
      "tree": "63fba25754476f7272689fddab021640cf3622a1",
      "parents": [
        "85657dda91f7cf795d95c36f8a98d6e20fddc1d9",
        "3e988f0df8efa22541c94b265e08ad34ffaec43c"
      ],
      "author": {
        "name": "Dmitri Plotnikov",
        "email": "dplotnikov@google.com",
        "time": "Sat Nov 18 02:34:33 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 18 02:34:33 2023 +0000"
      },
      "message": "Merge \"Fix AlarmManager high CPU issue\" into main"
    },
    {
      "commit": "f179720e5a1036e53eed095eb395ebf92ac7b183",
      "tree": "e5429cf308f2f52a5e437432bd8b01ffb70d9d46",
      "parents": [
        "120b001995e23bbadc8a2774c9e16ce774b07854",
        "c7cd8d1944623f9d8ec4627f8d1d742bb0fe189e"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 17 22:04:33 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 22:04:33 2023 +0000"
      },
      "message": "Merge \"Add APIs to let apps attach debug info to jobs.\" into main"
    },
    {
      "commit": "054fcdf7aaed8e53ecefc1cbd0e5ef382429b8fb",
      "tree": "73a73fdc21c41da0786969a121deec10589dd990",
      "parents": [
        "57ea02322e889177f886e2e61bef646353cf60a8"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 17 19:52:26 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 17 20:04:11 2023 +0000"
      },
      "message": "Properly set the NetworkRequest singleUid.\n\nA job\u0027s NetworkRequest should have the source app\u0027s UID as the UID. The\nprevious code attempted to set the UID, but didn\u0027t modify the stored\njob, leading to potentially unexpected behavior of proxied jobs.\nRearranging code to ensure we properly set the NetworkRequest UID.\n\nBug: 311727153\nTest: N/A\nChange-Id: I8fb49b74ff861ea82d89ab8d2791e4b917fd6ef2\n"
    },
    {
      "commit": "7d859fde142d03a82b6cc8ff0585cee08e8b7166",
      "tree": "9472b1de55f205d0f06f8d4ead5b16831152588c",
      "parents": [
        "c47ad0769c3cc2d9e5130dd07dbdcdb323135d38",
        "c82b9a61c03955f7053a91bc0db244b54795691f"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 17 19:40:00 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 19:40:00 2023 +0000"
      },
      "message": "Merge \"Account for unseen constraint combinations.\" into main"
    },
    {
      "commit": "c7cd8d1944623f9d8ec4627f8d1d742bb0fe189e",
      "tree": "5dca89a4c9e5e788347c5b06d931d862d4c56dcc",
      "parents": [
        "57ea02322e889177f886e2e61bef646353cf60a8"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Aug 28 21:47:36 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 17 19:39:18 2023 +0000"
      },
      "message": "Add APIs to let apps attach debug info to jobs.\n\n1. Let apps specify a specific trace tag for when their jobs are\n   running.\n2. Allow apps to attach some tags to a job for debugging purposes.\n\nBug: 293491637\nBug: 297106461\nTest: atest CtsJobSchedulerTestCases:JobInfoTest\nTest: atest FrameworksServicesTests:JobStoreTest\nChange-Id: I7398210fc4730043f618579bad0d2e5140b912a7\n"
    },
    {
      "commit": "3e988f0df8efa22541c94b265e08ad34ffaec43c",
      "tree": "cf5caeba6852ea1f65f3e5b7cda78a37aff58117",
      "parents": [
        "3a4dedd81f45e869e7b9914b2b6e78f167ea61b4"
      ],
      "author": {
        "name": "Hari Raj Vijayakumar",
        "email": "hariraj.vijayakumar@vantiva.net",
        "time": "Sun Oct 22 00:53:28 2023 +0530"
      },
      "committer": {
        "name": "Dmitri Plotnikov",
        "email": "dplotnikov@google.com",
        "time": "Fri Nov 17 10:56:02 2023 -0800"
      },
      "message": "Fix AlarmManager high CPU issue\n\n- clampPositive assumes negative value is due to overflow and so sets\n   to MAX_VALUE. However it also possible that negative value occurs\n    due to addition of negative value(of higher magnitude) with positive\n    of lower magnitude. In issue case, NTP sync causes RTC to move\n    forward thus pushing whenElapsed to negative range. This means\n    maxWhenElapsed would also be negative but is clamped to MAX_VALUE\n    causing AlarmManager to go into infinite loop.\n\nBug: b/308389917\nTest: manual\nChange-Id: I946333b86b2658ec1b70cb1e3110f5eae1b81486\n"
    },
    {
      "commit": "c82b9a61c03955f7053a91bc0db244b54795691f",
      "tree": "3d0aaa39e77ef545e81ed4fef69e2153918726e3",
      "parents": [
        "71f141800ea6c74f6098efd59bba97b43342116c"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Nov 14 22:36:23 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Nov 15 16:53:26 2023 +0000"
      },
      "message": "Account for unseen constraint combinations.\n\nDon\u0027t force jobs to wait for constraint combinations that haven\u0027t been\nseen in the recent past. By default, if a set of constraints have not\nbeen seen together in the past 3 days, then assume they won\u0027t be\nsatisfied together and don\u0027t wait for those constraints to be met in\norder to run a job. Other constraint combinations may still be valid, so\nthe job may be forced to wait for those.\n\nBug: 236261941\nBug: 299329948\nBug: 299346198\nTest: atest CtsJobSchedulerTestCases:FlexibilityConstraintTest\nTest: atest FrameworksMockingServicesTests:ConnectivityControllerTest\nTest: atest FrameworksMockingServicesTests:FlexibilityControllerTest\nChange-Id: I8f68b76afa2cc68e062f7ce09477aafb237dc6f1\n"
    },
    {
      "commit": "3b4319ea27c8595024962bef6d63d06deb5c4252",
      "tree": "14c1d2cce8c726aef4708080867ced4a49601d18",
      "parents": [
        "71f141800ea6c74f6098efd59bba97b43342116c"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Nov 07 23:37:31 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Nov 13 22:12:02 2023 +0000"
      },
      "message": "Avoid duplicate classes in boot path.\n\nSwitch to using static_libs in one location to avoid loading\nthe same class into the boot path multiple times.\n\nRemove redundant links.\n\nBug: 309674488\nTest: atest android.compat.sjp.cts.StrictJavaPackagesTest\nTest: atest frameworks/base/services/tests/mockingservicestests/src/com/android/server/job\nTest: atest frameworks/base/services/tests/servicestests/src/com/android/server/job\nTest: atest CtsAppTestCases\nTest: atest CtsJobSchedulerTestCases:JobSchedulingTest\nTest: atest CtsNotificationTestCases:NotificationManagerZenTest\nTest: atest CtsNotificationTestCases:AutomaticZenRuleTest\nTest: atest CtsOsTestCases:PowerManagerTest\nTest: atest FrameworksUiServicesTests:ZenModeConfigTest\nTest: atest PowerServiceTests:PowerManagerServiceTest\nChange-Id: I917cc4ae662c55a030fbf266133fba04fec496f2\n"
    },
    {
      "commit": "032cc572136987d025c8ffdff86956b0c7660f80",
      "tree": "922e68f2b6c5d7d0ba9dbacbb831ff2bde7af0ba",
      "parents": [
        "aa3e3af194316ca0559251c21581fd507587247e",
        "366583d33138d8565e8fa774b3a8dbc05418de9a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Nov 10 19:39:48 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 19:39:48 2023 +0000"
      },
      "message": "Merge \"Add transport affinities for flex scheduling.\" into main"
    },
    {
      "commit": "61db854acaf07354aef88fdb1d8354e10ae82485",
      "tree": "61c47bca3068fbe63963633e46c089c835afc618",
      "parents": [
        "c5af4e148cf844e122874b2a90701e3bda72930d",
        "33fdb78a8e93b26279743d0ee2232d32ec37e97d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Nov 10 14:46:24 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 14:46:24 2023 +0000"
      },
      "message": "Merge \"BlobStore: use a separate thread for RevocableFd in system_server.\" into main"
    },
    {
      "commit": "1e86367fdfa4ac4422a3e54581726a0164706198",
      "tree": "664642a9fbc515fad2782c5f593e97e71b071c02",
      "parents": [
        "ed243eb1d5dfeaa32adf7dd1ce578cba3a788847",
        "94da08fb1a24182f246fc60f725b4e57138be63f"
      ],
      "author": {
        "name": "Ikjoon Jang",
        "email": "ikjn@google.com",
        "time": "Fri Nov 10 09:36:23 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 09:36:23 2023 +0000"
      },
      "message": "Merge \"Revert \"Avoid duplicate classes in boot path.\"\" into main"
    },
    {
      "commit": "94da08fb1a24182f246fc60f725b4e57138be63f",
      "tree": "d9e506106997cd0cd4f044d56a2b4c754928f0cf",
      "parents": [
        "efba4176d8923bde102903035c07c6a6e3388f49"
      ],
      "author": {
        "name": "Ikjoon Jang",
        "email": "ikjn@google.com",
        "time": "Fri Nov 10 08:32:54 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 08:32:54 2023 +0000"
      },
      "message": "Revert \"Avoid duplicate classes in boot path.\"\n\nThis reverts commit efba4176d8923bde102903035c07c6a6e3388f49.\n\nReason for revert: DroidMonitor: Potential culprit for Bug b/310080905 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.\n\nBug: 310080905\nChange-Id: Id7d6c1fbc6e58b08c14ad52b74a10adbff8abc4e\n"
    },
    {
      "commit": "be037dc124e4db54781377a64e5f0773e5883054",
      "tree": "63731181c8a0fca39046b3ebcbe3689b4a2fcb3f",
      "parents": [
        "8cd82f49e24545ed1d4996d3ca60a3d8b401445a",
        "efba4176d8923bde102903035c07c6a6e3388f49"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 10 00:50:08 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 00:50:08 2023 +0000"
      },
      "message": "Merge \"Avoid duplicate classes in boot path.\" into main"
    },
    {
      "commit": "efba4176d8923bde102903035c07c6a6e3388f49",
      "tree": "496430a4b043fbe5d3bf6b6cca7efcb0a7d56f61",
      "parents": [
        "10614f6487059a631cda474e820a6e6ff33e208d"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Nov 07 23:37:31 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Thu Nov 09 22:03:01 2023 +0000"
      },
      "message": "Avoid duplicate classes in boot path.\n\nSwitch to using libs to avoid loading the same class into the\nboot path multiple times.\n\nBug: 309674488\nTest: atest android.compat.sjp.cts.StrictJavaPackagesTest\nTest: atest frameworks/base/services/tests/mockingservicestests/src/com/android/server/job\nTest: atest frameworks/base/services/tests/servicestests/src/com/android/server/job\nTest: atest CtsJobSchedulerTestCases:JobSchedulingTest\nTest: atest CtsOsTestCases:PowerManagerTest\nTest: atest PowerServiceTests:PowerManagerServiceTest\nChange-Id: I4a00922aec9ae295da4480784088d18d0c6bf806\n"
    },
    {
      "commit": "60441d2c19eb25fda0b2deada16751be2cfc07a9",
      "tree": "13b8b6f8bad2397cd5f0b6978ab21452cdf8a3fc",
      "parents": [
        "f0ffbec51b3c8e7e1737bf87c58439d3a6011568",
        "0b668d0429d0a90e352c7a22f53caa0ee602d1cf"
      ],
      "author": {
        "name": "Karishma Vakil",
        "email": "kvakil@google.com",
        "time": "Thu Nov 09 17:33:04 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 09 17:33:04 2023 +0000"
      },
      "message": "Merge \"Revert \"[DeviceAware] Use AttributionSourceState in AppOpsServic...\"\" into main"
    },
    {
      "commit": "0b668d0429d0a90e352c7a22f53caa0ee602d1cf",
      "tree": "f823426ff95d8060f1b9de855f79161b1985fe4f",
      "parents": [
        "6ebedc96a8f7000afb9989079e770f12e73a4889"
      ],
      "author": {
        "name": "Karishma Vakil",
        "email": "kvakil@google.com",
        "time": "Mon Nov 06 19:25:20 2023 +0000"
      },
      "committer": {
        "name": "Karishma Vakil",
        "email": "kvakil@google.com",
        "time": "Thu Nov 09 16:53:43 2023 +0000"
      },
      "message": "Revert \"[DeviceAware] Use AttributionSourceState in AppOpsServic...\"\n\nRevert submission 24499968-appops-deviceid\n\nReason for revert: Causing perf regression b/308786093\n\nReverted changes: /q/submissionid:24499968-appops-deviceid\n\nChange-Id: I211edc6b9bb9f59eb6259be54938000f9ad65c45\n"
    },
    {
      "commit": "cba298bbde594ffe8a24f4ba246dc17838cbe499",
      "tree": "8a334de2dfe89d137b7a38e5ec9fa2e0da09180f",
      "parents": [
        "99e42773be51851618e4e27a1568b9502a4e9d68",
        "7c67bf850f1a1d59a070663248a52a416591a096"
      ],
      "author": {
        "name": "Roshan Pius",
        "email": "rpius@google.com",
        "time": "Wed Nov 08 19:30:28 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 08 19:30:28 2023 +0000"
      },
      "message": "Merge \"core: Move FastXmlSerializer to module utils\" into main"
    },
    {
      "commit": "6d2515339a00820a2a40a69fc514344f5b932f90",
      "tree": "1f38892fb3bf1ef5e07b22e38d911e552c288fb4",
      "parents": [
        "d02e77728096358bc36ff3cdb6ce52a9d075ee2a",
        "21cf8703d031e0a25c23cf7e5c0fba39625240a4"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Wed Nov 08 18:27:06 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 08 18:27:06 2023 +0000"
      },
      "message": "Merge \"Dump mActiveAdmins and mAdminProtectedPackages to aid in debugging.\" into main"
    },
    {
      "commit": "21cf8703d031e0a25c23cf7e5c0fba39625240a4",
      "tree": "28c3a1fe77c530e994638f40b366ef5a72c8c915",
      "parents": [
        "e619e972988d960bad876ded08ec1d222fb740da"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Fri Nov 03 23:26:51 2023 +0000"
      },
      "committer": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Tue Nov 07 16:24:28 2023 -0800"
      },
      "message": "Dump mActiveAdmins and mAdminProtectedPackages to aid in debugging.\n\nBug: 230386578\nTest: manual\nChange-Id: Id1aaa54ccd314108aff02e836ea08ce1fbe80539\n"
    },
    {
      "commit": "7c67bf850f1a1d59a070663248a52a416591a096",
      "tree": "e88b9dc99ba953eeb169737565bf7ffc18fad2ba",
      "parents": [
        "e35a7eadf9f88c451a72a13a872eb05aae3bb69f"
      ],
      "author": {
        "name": "Roshan Pius",
        "email": "rpius@google.com",
        "time": "Tue Nov 07 03:46:25 2023 +0000"
      },
      "committer": {
        "name": "Cherrypicker Worker",
        "email": "android-build-cherrypicker-worker@google.com",
        "time": "Tue Nov 07 03:46:25 2023 +0000"
      },
      "message": "core: Move FastXmlSerializer to module utils\n\nBug: 244264995\nTest: Compiles\n(cherry picked from https://android-review.googlesource.com/q/commit:ad387f90be5f17181f9b7b03b54bac570bafe2b1)\nMerged-In: Ifabc201418c54c2f910ff4b95b5240a58a683001\nChange-Id: Ifabc201418c54c2f910ff4b95b5240a58a683001\n"
    },
    {
      "commit": "366583d33138d8565e8fa774b3a8dbc05418de9a",
      "tree": "de8b5d9421f40a71302e8775ab5e9fb52e4d0adf",
      "parents": [
        "896c5c42c7a2dd9271957872fc1b29d96c1884ea"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Nov 06 22:25:49 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Nov 06 22:43:30 2023 +0000"
      },
      "message": "Add transport affinities for flex scheduling.\n\nSwitch the flex network behavior from unmetered vs metered to looking at\nnetwork transports. Transport affinities indicate which transports are\npreferred for running jobs, and which ones the system should try to\navoid, if possible. By default, when flex scheduling is enabled, the\nsystem will avoid running jobs on the cellular network and prefer\nrunning jobs on wifi and/or ethernet networks.\n\nWatches tend to send most traffic over the bluetooth network. However,\nthere are plans to modify job network traffic in other ways for watches.\nFor now, watches will be excluded from network flex scheduling until\nthose plans are resolved.\n\nBug: 236261941\nBug: 299329948\nBug: 299346198\nTest: atest CtsJobSchedulerTestCases:ConnectivityConstraintTest\nTest: atest CtsJobSchedulerTestCases:FlexibilityConstraintTest\nTest: atest frameworks/base/services/tests/mockingservicestests/src/com/android/server/job\nTest: atest frameworks/base/services/tests/servicestests/src/com/android/server/job\nChange-Id: I675d72b18ae6ddc43fb1503d481ff9bb56c2dcb6\n"
    },
    {
      "commit": "2951818e0bfc022ab52b674dd6713013ea430b14",
      "tree": "fc16f34ffaf087d5340a114f80ee994957923296",
      "parents": [
        "b6ad08478a9965af11bd541879fb96850fa4f2c0",
        "3869da7529965c5df42abafee29926e7d405e07f"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Nov 06 21:27:15 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 06 21:27:15 2023 +0000"
      },
      "message": "Merge \"Add ability to disable wakelocks in light idle.\" into main"
    },
    {
      "commit": "01f655a072a5add24a1800460d5318a1438ee68a",
      "tree": "2f0d23743172550113346378e5ff29ec8b5b3b34",
      "parents": [
        "f6e3f5625d2cf5f424aafe261e31a9ee3a09d883",
        "40f718891338faa5836a439a3dcc10035d0701ad"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Nov 06 20:10:26 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 06 20:10:26 2023 +0000"
      },
      "message": "Merge \"Avoid repeated/redundant work.\" into main"
    },
    {
      "commit": "3869da7529965c5df42abafee29926e7d405e07f",
      "tree": "318b255c61bdaac823648a32973c5bddc243a12f",
      "parents": [
        "896c5c42c7a2dd9271957872fc1b29d96c1884ea"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Sep 29 23:45:19 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Nov 06 18:26:07 2023 +0000"
      },
      "message": "Add ability to disable wakelocks in light idle.\n\nMake it possible to disable wakelocks for background apps while the\ndevice is in light device idle mode.\n\nBug: 299329948\nTest: atest PowerServiceTests:PowerManagerServiceTest\nChange-Id: Ice07f936f6a2ac329825564cb4d8950a92e65fc3\n"
    },
    {
      "commit": "40f718891338faa5836a439a3dcc10035d0701ad",
      "tree": "e7c45612779b169b24071cbb019d47f0165851ad",
      "parents": [
        "b1df623732cf5bdd64070c527815d83aae738955"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Nov 06 17:28:28 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Nov 06 17:49:50 2023 +0000"
      },
      "message": "Avoid repeated/redundant work.\n\n1. Avoid scheduling the idle alarm if the device is already considered\n   idle.\n2. Avoid scheduling the idle alarm again if the currently scheduled\n   alarm is for the same time.\n\nBug: 309292340\nTest: atest FrameworksMockingServicesTests:DeviceIdlenessTrackerTest\nChange-Id: I0cb49041d15e5b2bd880ddc06cb2f1aa95e8c174\n"
    },
    {
      "commit": "5a57f77cf2c5bca8fbfca84e2ba082bb39d70292",
      "tree": "079bac6887dd6927113ed92f8057e84a8b182d63",
      "parents": [
        "8678d0ce2657505c9ad86bd2135d9b239bf53471",
        "03ebd42a09b0aa490711db354f79e8be7d15eed8"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 03 20:41:13 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 03 20:41:13 2023 +0000"
      },
      "message": "Merge \"Lower EJ execution limit to 10 minutes.\" into main"
    },
    {
      "commit": "539279fe0520a623e648abd5ae3efb3a3bb535f7",
      "tree": "f6dca7450818bc58ca545db6c424e2917cec4147",
      "parents": [
        "b1df623732cf5bdd64070c527815d83aae738955"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 03 16:12:00 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 03 18:11:28 2023 +0000"
      },
      "message": "Remove network bypass flags for non-connectivity jobs.\n\nIf a job doesn\u0027t say that it needs network, then there\u0027s no reason to\nensure that the app has access to network while the job is running.\nCurrently, the network restriction bypass flags are only given to\nexpedited or user-initiated jobs. Don\u0027t include the flags when the job\ndoesn\u0027t require connectivity to avoid accidental network usage/leakage.\n\nBug: 297106511\nBug: 299329948\nBug: 299346198\nTest: atest CtsJobSchedulerTestCases:ConnectivityConstraintTest\nTest: atest CtsJobSchedulerTestCases:ExpeditedJobTest\nChange-Id: I9c632595f27655a977d6b084760839ce02c8c07b\n"
    },
    {
      "commit": "03ebd42a09b0aa490711db354f79e8be7d15eed8",
      "tree": "a2de5c5a8ce061f23182a00abbcf681f8cbeea70",
      "parents": [
        "b1df623732cf5bdd64070c527815d83aae738955"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 03 17:36:41 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 03 17:36:41 2023 +0000"
      },
      "message": "Lower EJ execution limit to 10 minutes.\n\nDevelopers are informed that expedited jobs can be stopped earlier than\nregular jobs and so shouldn\u0027t use them for long pieces of work.\nThe standard timeout is 3 minutes for EJs. There\u0027s little reason to let\nthem run longer than the normal 10 minutes, and letting them run up to\n30 minutes may give developers the wrong impression and increases the\npotential for accidental power issues. Lower the maximum execution limit\nof EJs to 10 minutes (the base execution limit of regular jobs) to be\nmore in line with what EJs should be used for and prevent additional\nissues.\n\nBug: 284512488\nBug: 297106511\nBug: 299329948\nBug: 299346198\nTest: atest FrameworksMockingServicesTests:JobSchedulerServiceTest\nChange-Id: Ia4950f0801f2881a34976987f735e5ab7f493ee1\n"
    },
    {
      "commit": "b1df623732cf5bdd64070c527815d83aae738955",
      "tree": "3e3a5a1f753c19121e22033cc21ad44018550581",
      "parents": [
        "f3dfa3f25b66b830e6d806c3de27cd464ec7671a",
        "16a6a79558c458d964d49bdfec3f92155fd56ed2"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 03 15:00:51 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 03 15:00:51 2023 +0000"
      },
      "message": "Merge \"Split JobScheduler idle value by charging state.\" into main"
    },
    {
      "commit": "16a6a79558c458d964d49bdfec3f92155fd56ed2",
      "tree": "72eeb1061c772cdf21f154bd9c4960a68aaa9d02",
      "parents": [
        "9d38af2d554e105c543916bc5bfb54d14a00340b"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Sep 29 15:31:17 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Thu Nov 02 18:34:13 2023 +0000"
      },
      "message": "Split JobScheduler idle value by charging state.\n\nCreate a separate JobScheduler idle value by charging + battery-not-low\nstate so that we can have different values when the device is charging\ncompared to when it\u0027s on battery.\n\nBug: 236261941\nBug: 297106511\nBug: 299329948\nTest: atest CtsJobSchedulerTestCases:IdleConstraintTest\nTest: atest frameworks/base/services/tests/mockingservicestests/src/com/android/server/job\nTest: atest frameworks/base/services/tests/servicestests/src/com/android/server/job\nChange-Id: I16f41f05f7ffe5ab7fd1f660e0e08ea7544ff921\n"
    },
    {
      "commit": "26c647f5c943cc34636941072f4758f6a03a22eb",
      "tree": "559d839599da671080c036756ed0dda12cf28302",
      "parents": [
        "30c1f0029379a06996ef2949bdbed21e38b861df",
        "6b5722c2851d5e90133aefbab071befac6655258"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Thu Nov 02 18:32:01 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 02 18:32:01 2023 +0000"
      },
      "message": "Merge \"Revert \"Add methods to mark some constraints as optional.\"\" into main"
    },
    {
      "commit": "1c93bfcc4ee3300348bfa0b8caddf6d08598cd7a",
      "tree": "84912d1f6bb4a49e991879d9724980522c99deef",
      "parents": [
        "55fb6c8c3a6b0f4dc4c3867fe871b78d8c996388",
        "61476574cc7f8c9c85eb50ba136dd98412a463b6"
      ],
      "author": {
        "name": "Kunal Malhotra",
        "email": "malhk@google.com",
        "time": "Wed Nov 01 20:51:52 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 01 20:51:52 2023 +0000"
      },
      "message": "Merge \"Updating JobScheduler WW logging to include calculated bytes transferred during Job execution\" into main"
    },
    {
      "commit": "0cfce7a5761dd3f44291ea3561ad242805749562",
      "tree": "66e77e2dcdd536a3a6a7b031f63f3634571dbded",
      "parents": [
        "355b613e9c4fe46dce546b35caa58949a9a47827",
        "6ebedc96a8f7000afb9989079e770f12e73a4889"
      ],
      "author": {
        "name": "Karishma Vakil",
        "email": "kvakil@google.com",
        "time": "Wed Nov 01 03:35:42 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 01 03:35:42 2023 +0000"
      },
      "message": "Merge \"[DeviceAware] Use AttributionSourceState in AppOpsService checkOp, noteOp, startOp, finishOp methods\" into main"
    },
    {
      "commit": "6ebedc96a8f7000afb9989079e770f12e73a4889",
      "tree": "6f55967e63a5ede8f4fbb520064f7fc2aa8c5494",
      "parents": [
        "b48f0d09d2187d1c7526412ba31b4cd54292452e"
      ],
      "author": {
        "name": "Karishma Vakil",
        "email": "kvakil@google.com",
        "time": "Fri Aug 18 03:58:07 2023 +0000"
      },
      "committer": {
        "name": "Karishma Vakil",
        "email": "kvakil@google.com",
        "time": "Tue Oct 31 21:38:47 2023 +0000"
      },
      "message": "[DeviceAware] Use AttributionSourceState in AppOpsService checkOp, noteOp,\nstartOp, finishOp methods\n\nThis allows us to reduce the number of parameters being passed around\nand also enables easy addition of new parameters such as device id.\n\nNote that this change is unflagged and is meant to be a pure refactor.\nThis is preparatory CL and no new methods are being added to AppOpsManager yet, but will be needed\nto allow clients to pass in device id.\n\nBug: 299160174\nTest: atest CtsAppOpsTestCases CtsAppOps2TestCases\nChange-Id: I591b1dc7d7e4af0371c2d1d80b06d858e7213a94\n"
    },
    {
      "commit": "e1b8c9e87145a064e102384d2b8cfa0097be7dd8",
      "tree": "f40845d84ec5c20c8573eab0e6d8d85179e4a747",
      "parents": [
        "293e94bcbf7987b3a316569b5ceba4184e90745f",
        "2b353f8685418d1dffdec3fd8e6308ba593c3ef3"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Oct 30 21:18:08 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 30 21:18:08 2023 +0000"
      },
      "message": "Merge \"Add permission check to setBias.\" into main"
    },
    {
      "commit": "6b5722c2851d5e90133aefbab071befac6655258",
      "tree": "15a3b7b925cf744cc5f5179e41286196e146d45a",
      "parents": [
        "8943b729ede32de4734e34ba9ea76722445a8ace"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Oct 30 19:22:38 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Oct 30 20:24:44 2023 +0000"
      },
      "message": "Revert \"Add methods to mark some constraints as optional.\"\n\nThis reverts commit eb72459a8994180ddc1c9ee05d15ac31413ee2ea.\n\nReason for revert: The plan is to apply it to jobs by default.\n\nBug: 236261941\nBug: 299346198\nTest: atest FrameworksMockingServicesTests:ConnectivityControllerTest\nTest: atest FrameworksMockingServicesTests:FlexibilityControllerTest\nTest: atest FrameworksMockingServicesTests:JobStatusTest\nChange-Id: Ie9a5643caf6e6b68642580b92b10c05a70bd2998\n"
    },
    {
      "commit": "2b353f8685418d1dffdec3fd8e6308ba593c3ef3",
      "tree": "cbfc4f74ef97bec26c76daca9486da034bc53314",
      "parents": [
        "8943b729ede32de4734e34ba9ea76722445a8ace"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Oct 18 01:11:00 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Oct 30 19:24:23 2023 +0000"
      },
      "message": "Add permission check to setBias.\n\nThe job bias is meant to be an indication of the job type and the state\nthe app was in when the job was scheduled. This can only be determined\nby the system and certain privileged apps. The job bias can affect some\nthings such as which system health factors are taken into consideration\nwhen deciding when to run a job. Given all this, the bias should only be\nset by the system or certain privileged apps. Note the required permission\non the hidden API and enforce that the calling app has the permission\nwhen the job is scheduled.\n\nBug: 300477393\nTest: atest CtsJobSchedulerTestCases:JobInfoTest\nTest: atest CtsSyncManagerTestCases\nTest: atest DownloadManagerApi28Test\nTest: atest FrameworksServicesTests:BiasSchedulingTest\nChange-Id: I1cb37eafc42f961dee9d2e7bc7d496a31dff31f4\n"
    },
    {
      "commit": "61476574cc7f8c9c85eb50ba136dd98412a463b6",
      "tree": "b031dbb597a4eda627b584c53639379c8244eb5e",
      "parents": [
        "619f320031ac9b43823894de01e689d5009f93db"
      ],
      "author": {
        "name": "Kunal",
        "email": "malhk@google.com",
        "time": "Thu Oct 12 16:58:43 2023 +0000"
      },
      "committer": {
        "name": "Kunal",
        "email": "malhk@google.com",
        "time": "Fri Oct 27 19:45:11 2023 +0000"
      },
      "message": "Updating JobScheduler WW logging to include calculated bytes transferred\nduring Job execution\n\nTest: manual testing on device done by building\nBug: 255393346\nChange-Id: If876aed542e8edf282ac36ff53979919bf41ce90\n"
    },
    {
      "commit": "693b34e15dc92fe3f30aff3dfd6397c5f7a6f295",
      "tree": "af68f946bf1d4dbe6e8c77731b562c0ca5034f92",
      "parents": [
        "f1d80196a7785a786fb9000efadff062b744e397",
        "72d472c22a09bba823de001aba8a2c068e0d4b22"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Oct 25 16:44:56 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 25 16:44:56 2023 +0000"
      },
      "message": "Merge \"Add battery-not-low requirement for constraint relaxation.\" into main"
    },
    {
      "commit": "72d472c22a09bba823de001aba8a2c068e0d4b22",
      "tree": "299e6768a21d4aab2867879812aaf1881ccb3095",
      "parents": [
        "8943b729ede32de4734e34ba9ea76722445a8ace"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Oct 24 23:31:01 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Oct 24 23:36:43 2023 +0000"
      },
      "message": "Add battery-not-low requirement for constraint relaxation.\n\nDon\u0027t relax the prefetch connectivity constraint requirement unless the\nbattery is also not low.\n\nBug: 299329948\nTest: atest FrameworksMockingServicesTests:PrefetchControllerTest\nTest: atest FrameworksMockingServicesTests:ConnectivityControllerTest\nChange-Id: I4b2c0905fb15277c63ae57284a2139858998d68b\n"
    },
    {
      "commit": "b862519398ede7557a5e73791f084778b33be9fd",
      "tree": "6c005d6dd72a70b8c72950b0e770f05d50962d28",
      "parents": [
        "51ad9dc8a057aba1fed531931c8c2f01337764e7",
        "561415d9a94d07855ace285d012ef4f06662b5a7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Oct 24 23:21:37 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 24 23:21:37 2023 +0000"
      },
      "message": "Merge \"Support custom user strings.\" into main"
    },
    {
      "commit": "c3d14d17d7440d530e5c2469d477366c64c1b267",
      "tree": "3a0ce6b1ddf759d7d92358fdf29436b5114f707d",
      "parents": [
        "8943b729ede32de4734e34ba9ea76722445a8ace"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Oct 24 20:02:02 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Oct 24 22:41:24 2023 +0000"
      },
      "message": "Modify wakelock tag.\n\n1. Remove the job ID from the wakelock tag.\n2. Lazily load the tag when needed to reduce memory usage of jobs\n   waiting for constraints to be satisfied.\n3. Remove redundant log line.\n\nBug: 273758274\nBug: 302348192\nBug: 307556230\nTest: atest CtsJobSchedulerTestCases\nTest: Manually remove output of `adb shell dumpsys jobscheduler`\nChange-Id: If8547d23ced90b17225ab8efd758ac735655687e\n"
    },
    {
      "commit": "561415d9a94d07855ace285d012ef4f06662b5a7",
      "tree": "ff246145df8d9d19505d4a56d8067d5f1a71a09d",
      "parents": [
        "8943b729ede32de4734e34ba9ea76722445a8ace"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed May 24 19:37:43 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Tue Oct 24 21:36:34 2023 +0000"
      },
      "message": "Support custom user strings.\n\nUse UserHandle.parseUserArg() when parsing adb command flags to enable\nparsing \"cur\" and other special user strings.\n\nBug: 282063891\nTest: atest CtsJobSchedulerTestCases\nTest: `adb shell cmd jobscheduler run --user cur com.android.settings 2131427352`\nChange-Id: Ibe06f536f1de760a5604d067b6c1894f756a17c6\n"
    },
    {
      "commit": "33fdb78a8e93b26279743d0ee2232d32ec37e97d",
      "tree": "f24414d0c334081c7922416e9ff62e13f291a80a",
      "parents": [
        "67890dbee5f9d2cab296fd2037fc69034b6a5d50"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Fri Oct 13 12:36:08 2023 +0000"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Oct 24 07:21:31 2023 +0000"
      },
      "message": "BlobStore: use a separate thread for RevocableFd in system_server.\n\nHaving the callbacks on RevocableFileDescriptor coming in on the main\nthread of system_server can create problems:\n- system_server\u0027s main thread is heavily contended\n- it can cause deadlocks: callbacks come in from vold with vold\u0027s global\n  lock held; this callback needs the system_server main thread to make\n  progress. But if the main thread is busy with another call into vold\n  (unrelated to RevocableFd), this will result in deadlock.\n\nBug: 300351508\nTest: atest BlobStoreManagerTest\nChange-Id: Ie4c3c65bdb9303f4aaab8f76b95d3f9f133b4c3e\n"
    },
    {
      "commit": "9ac78626f4d11adb1fdd8684a27d2125259a50a2",
      "tree": "e5091d51eb6147050e7fea94b63f7d50bda56db8",
      "parents": [
        "116560a4017643719018c75efcfe928302d2792e",
        "b49c9145d97a392d3fe312a9eacb97a76f1808d0"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Oct 20 22:32:01 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 20 22:32:01 2023 +0000"
      },
      "message": "Merge \"Fix UID logging.\" into main"
    },
    {
      "commit": "b49c9145d97a392d3fe312a9eacb97a76f1808d0",
      "tree": "f7af952f1b0600430157b341ebde3f1c40113100",
      "parents": [
        "2a0f9e1103520cd4df2316e5fc8164ef8d671e9e"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Oct 20 20:31:15 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Oct 20 20:31:15 2023 +0000"
      },
      "message": "Fix UID logging.\n\nThe uid parameter to scheduleAsPackage is the calling UID. It was\nincorrectly being used as the source UID in the statsd logging, causing\nthe end metrics to have the wrong information. This fixes the UID\nlogging and renames the input parameter to avoid further confusion.\n\nBug: 138239687\nTest: N/A\nChange-Id: Ifdfe2ffbc7b5f8b8fe74291a1ec54068541f740b\n"
    },
    {
      "commit": "8a6362c2c8046a191a5cbef221a46b09ba99c3f7",
      "tree": "ff3a8447b57d85266359caca323bb7958a4cfdb1",
      "parents": [
        "21c63a92437b2aec208220ee47b30824edd93b16",
        "2bb0a70d5a6ab86ed9dfb09f8b2b370b3db0dba2"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Oct 20 19:09:25 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 20 19:09:25 2023 +0000"
      },
      "message": "Merge \"Skip irrelevant files when loading jobs from disk.\" into main"
    },
    {
      "commit": "2bb0a70d5a6ab86ed9dfb09f8b2b370b3db0dba2",
      "tree": "26a52f2942e701e558ebf6a39d1f8f331061772a",
      "parents": [
        "2a0f9e1103520cd4df2316e5fc8164ef8d671e9e"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Oct 13 17:23:16 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Oct 20 16:02:11 2023 +0000"
      },
      "message": "Skip irrelevant files when loading jobs from disk.\n\nWhen loading from disk, skip files such as backup \u0026 temp files created\nduring the AtomicFile writing process to avoid incorrectly reading\nduplicate jobs from them.\n\nBug: 289062813\nBug: 305169670\nTest: atest FrameworksServicesTests:JobStoreTest\nChange-Id: I28a180e2b24357219d34be6a22c785311be6e72e\n"
    },
    {
      "commit": "ed4f50f3ab76681c8985a182fcbf4e335803d531",
      "tree": "d90a757b46049bf00716af54e05b2dd5541bf836",
      "parents": [
        "5c2053251056c67768c00fbf95282d31112869a0",
        "2ccbeb75aa89a7ff598230ad08c27a10c8c774de"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Mon Oct 16 09:50:38 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 16 09:50:38 2023 +0000"
      },
      "message": "Merge \"Fix broken framework documentation\" into main"
    },
    {
      "commit": "2ccbeb75aa89a7ff598230ad08c27a10c8c774de",
      "tree": "9f9ddf23e427822b3641a2f991ce57f4946b0049",
      "parents": [
        "56844fad9e73cae85c355db08efb3d2a6f249f61"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Oct 13 13:16:35 2023 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Oct 13 18:32:05 2023 +0000"
      },
      "message": "Fix broken framework documentation\n\nVarious issues here, but the most recurring one is referencing SystemApi\nfrom public javadoc. Remove or rewrite such references.\n\nAlso common is trying to @link IntDefs. Usually this is not necessary,\nas the presence of IntDef in the @param/@return auto-generates relevant\ndocumentation.\n\nBug: 303184203\nTest: m docs\nChange-Id: Ie59e61881c45c73fbbe08250493bd35eca268ef6\n"
    },
    {
      "commit": "adff68f088628281c227bd0820bf86533949d97c",
      "tree": "45cffdf48e133a424894c1c490a8999f06cd9b25",
      "parents": [
        "5aba6f309faec48e0bf48c442299ac3627ca5c25",
        "24cbdb70aa2bb9da035fe39a64109c2116e0f989"
      ],
      "author": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Fri Oct 13 18:27:51 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 13 18:27:51 2023 +0000"
      },
      "message": "Merge \"Remove code to manage the exact alarm denylist\" into main"
    },
    {
      "commit": "24cbdb70aa2bb9da035fe39a64109c2116e0f989",
      "tree": "fbba8cdfe584c1d367adbc5ccc9bd8c0b90b2510",
      "parents": [
        "e33451a387689b227ba7bbaa9eabc5be117e2f19"
      ],
      "author": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Thu Oct 12 15:48:50 2023 -0700"
      },
      "committer": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Fri Oct 13 18:26:55 2023 +0000"
      },
      "message": "Remove code to manage the exact alarm denylist\n\nNow that exact alarms are denied to newer app installs for apps targeting T, the deny list is obsolete and the overhead of maintaining it is not worthwhile.\n\nTest: atest CtsAlarmManagerTestCases\nTest: atest FrameworksMockingServicesTests:com.android.server.alarm\n\nBug: 304846238\nChange-Id: I4376e5ddbb2e470f3e3d690dd0866f4b470f455b\n"
    },
    {
      "commit": "b90bb67c1055fa521cbb78c6db0a357823e41d7c",
      "tree": "28b8f4c9c71b23e16130cc29295e6a6ee9e8eab8",
      "parents": [
        "56844fad9e73cae85c355db08efb3d2a6f249f61"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Oct 13 14:56:01 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Oct 13 14:56:03 2023 +0000"
      },
      "message": "Fix typo.\n\nBug: 299329948\nChange-Id: If1f6ef1a950ee93c2cb4413205c87a9454734573\nTest: N/A\n"
    },
    {
      "commit": "b08c7a6ba214d4155390d050bdfbf8f5c0e288c9",
      "tree": "8adad1e176ba97470d86a06526b5ae2d1692bfe7",
      "parents": [
        "2a0f9e1103520cd4df2316e5fc8164ef8d671e9e"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Oct 11 18:40:16 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Oct 11 18:40:16 2023 +0000"
      },
      "message": "Reduce prefetch launch time threshold.\n\nReduce the prefetch job launch time threshold to one hour so we will\nonly consider running a prefetch job at most one hour before the app is\nestimated to be launched.\n\nBug: 295046507\nTest: atest FrameworksMockingServicesTests:PrefetchControllerTest\nChange-Id: Ia3d4d049fb44b8f12418c987425949b60b37bd65\n"
    },
    {
      "commit": "0d40f606f333ea7afb2d05e9acbdf7c6fd17f28e",
      "tree": "8476de6bae2715a404ca0ccb1d9602539b3b22aa",
      "parents": [
        "4625fe13fd7833017c39047495180772280eb6ce",
        "71fdfd48bbbaaa11ca990b7045d533879209780f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Oct 09 17:04:38 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 09 17:04:38 2023 +0000"
      },
      "message": "Merge \"Don\u0027t penalize app for slow app binding.\" into main"
    },
    {
      "commit": "71fdfd48bbbaaa11ca990b7045d533879209780f",
      "tree": "6210954a155dc8c438eb7ba25ef05f7d0497e8f7",
      "parents": [
        "e0abf5438d530c829e6cd2e3887ef034b513a26c"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Oct 09 15:05:50 2023 +0000"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Oct 09 15:05:50 2023 +0000"
      },
      "message": "Don\u0027t penalize app for slow app binding.\n\nThe system may be busy when trying to bind to the app, so don\u0027t penalize\nit for slow binding. Now, we\u0027ll retain the job that was slow to bind and\nstop triggering an ANR.\n\nBug: 292090044\nBug: 303533836\nTest: atest CtsJobSchedulerTestCases:JobSchedulingTest\nChange-Id: Ida52d63c5e9710d9d590388d20fceb4fa8f2e0d5\n"
    }
  ],
  "next": "0f2be5449a26cdf8bd36bace392ee3a0f76d27f4"
}
