Update github, android and source.chromium.org URLs for COIL

Used script from https://crrev.com/c/2586204.

BUG=b:175056924
TEST=view in gitiles

Exempt-From-Owner-Approval: Mechanical change approved by most owners
Change-Id: I10c8c3b61dac94af7edca7a18f3a3d26ee9c6c37
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/2586209
Tested-by: Tom Hughes <tomhughes@chromium.org>
Commit-Queue: Tom Hughes <tomhughes@chromium.org>
Reviewed-by: Andrew Lamb <andrewlamb@chromium.org>
Reviewed-by: Maksim Ivanov <emaxx@chromium.org>
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
Reviewed-by: Alan Green <avg@chromium.org>
diff --git a/arc/adbd/README.md b/arc/adbd/README.md
index 945e0e2..3564c9a 100644
--- a/arc/adbd/README.md
+++ b/arc/adbd/README.md
@@ -5,7 +5,7 @@
 ConfigFS into the container.
 
 See
-https://android.googlesource.com/platform/system/core/+/master/adb/daemon/usb.cpp
+https://android.googlesource.com/platform/system/core/+/HEAD/adb/daemon/usb.cpp
 for more information.
 
 ## Configuration
diff --git a/arc/adbd/adbd.cc b/arc/adbd/adbd.cc
index 752c9de..9c22d3f 100644
--- a/arc/adbd/adbd.cc
+++ b/arc/adbd/adbd.cc
@@ -50,7 +50,7 @@
 
 // The blob that is sent to FunctionFS to setup the adb gadget. This works for
 // newer kernels (>=3.18). This and the following blobs were created by
-// https://android.googlesource.com/platform/system/core/+/master/adb/daemon/usb.cpp
+// https://android.googlesource.com/platform/system/core/+/HEAD/adb/daemon/usb.cpp
 constexpr const uint8_t kControlPayloadV2[] = {
     0x03, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
     0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
diff --git a/arc/adbd/arcvm_sock_to_usb.h b/arc/adbd/arcvm_sock_to_usb.h
index 39a2f2c..953422f 100644
--- a/arc/adbd/arcvm_sock_to_usb.h
+++ b/arc/adbd/arcvm_sock_to_usb.h
@@ -12,12 +12,12 @@
 namespace adbd {
 
 // Reference:
-// https://android.googlesource.com/platform/system/core/+/refs/heads/master/adb/adb.h
+// https://android.googlesource.com/platform/system/core/+/HEAD/adb/adb.h
 // We take the bigger value of macro MAX_PAYLOAD from AOSP ADB code for the size
 // of the buffer to USB.
 constexpr size_t kAdbPayloadMaxSize = 1024 * 1024;
 // Reference:
-// https://android.googlesource.com/platform/system/core/+/refs/heads/master/adb/types.h
+// https://android.googlesource.com/platform/system/core/+/HEAD/adb/types.h
 // The offset is derived from the data_length field in struct amessage in
 // types.h.
 constexpr uint8_t kAmessageDataLenOffset = 12;
diff --git a/arc/container/bundle/README.md b/arc/container/bundle/README.md
index de438ac..4489637 100644
--- a/arc/container/bundle/README.md
+++ b/arc/container/bundle/README.md
@@ -275,7 +275,7 @@
 
 The hooks used by `run_oci` follow the [Open Container Initiative spec for
 POSIX-platform
-Hooks](https://github.com/opencontainers/runtime-spec/blob/master/config.md#posix-platform-hooks),
+Hooks](https://github.com/opencontainers/runtime-spec/blob/HEAD/config.md#posix-platform-hooks),
 with a Chrome OS-specific extension that allows a hook to be installed after all
 the mounts have been processed, but prior to calling
 [`chroot(2)`](http://man7.org/linux/man-pages/man2/chroot.2.html).
diff --git a/arc/setup/arc_setup_util.cc b/arc/setup/arc_setup_util.cc
index b28bd93..3a045a5 100644
--- a/arc/setup/arc_setup_util.cc
+++ b/arc/setup/arc_setup_util.cc
@@ -822,7 +822,7 @@
                           pid_t* out_container_pid,
                           base::FilePath* out_rootfs) {
   // Read the OCI container state from |path|. Its format is documented in
-  // https://github.com/opencontainers/runtime-spec/blob/master/runtime.md#state
+  // https://github.com/opencontainers/runtime-spec/blob/HEAD/runtime.md#state
   std::string json_str;
   if (!base::ReadFileToString(path, &json_str)) {
     PLOG(ERROR) << "Failed to read json string from " << path.value();
diff --git a/biod/mock_cros_fp_biometrics_manager.h b/biod/mock_cros_fp_biometrics_manager.h
index 72fb389..3167bcc 100644
--- a/biod/mock_cros_fp_biometrics_manager.h
+++ b/biod/mock_cros_fp_biometrics_manager.h
@@ -64,7 +64,7 @@
   MOCK_METHOD(void, OnMaintenanceTimerFired, (), (override));
 
   // Delegate to the real implementation in the base class:
-  // https://github.com/google/googletest/blob/master/googlemock/docs/cook_book.md#delegating-calls-to-a-parent-class
+  // https://github.com/google/googletest/blob/HEAD/googlemock/docs/cook_book.md#delegating-calls-to-a-parent-class
   void OnMaintenanceTimerFiredDelegate() {
     CrosFpBiometricsManager::OnMaintenanceTimerFired();
   }
diff --git a/camera/hal/mediatek/mtkcam/pipeline/model/utils/include/impl/PipelineContextBuilder.h b/camera/hal/mediatek/mtkcam/pipeline/model/utils/include/impl/PipelineContextBuilder.h
index 73f4f7d..46ec2e6 100644
--- a/camera/hal/mediatek/mtkcam/pipeline/model/utils/include/impl/PipelineContextBuilder.h
+++ b/camera/hal/mediatek/mtkcam/pipeline/model/utils/include/impl/PipelineContextBuilder.h
@@ -93,7 +93,7 @@
    * size could only be one of only be 1, 2, 5, or 10.
    *
    * See static_android.control.availableHighSpeedVideoConfigurations under
-   * https://android.googlesource.com/platform/system/media/+/master/camera/docs/docs.html
+   * https://android.googlesource.com/platform/system/media/+/HEAD/camera/docs/docs.html
    */
   uint32_t batchSize = 0;
 
diff --git a/chromeos-config/cros_config_host/generate_schema_doc.py b/chromeos-config/cros_config_host/generate_schema_doc.py
index 02db672..caa2f35 100755
--- a/chromeos-config/cros_config_host/generate_schema_doc.py
+++ b/chromeos-config/cros_config_host/generate_schema_doc.py
@@ -92,7 +92,7 @@
     for attr in attrs:
       attr_name = attr
 
-      # https://github.com/google/gitiles/blob/master/Documentation/markdown.md#named-anchors
+      # https://github.com/google/gitiles/blob/HEAD/Documentation/markdown.md#named-anchors
       attr_anchor = ''
       for c in attr_name:
         if c.isalnum():
diff --git a/diagnostics/dpsl/internal/dpsl_rpc_server_impl_test.cc b/diagnostics/dpsl/internal/dpsl_rpc_server_impl_test.cc
index ee2e2058..5cc55a4 100644
--- a/diagnostics/dpsl/internal/dpsl_rpc_server_impl_test.cc
+++ b/diagnostics/dpsl/internal/dpsl_rpc_server_impl_test.cc
@@ -135,7 +135,7 @@
   DpslRpcServerImplBaseDeathTest() {
     // Using EXPECT_DEATH, gtest creates child process, which re-executes the
     // unit test binary just as it was originally invoked.
-    // https://github.com/google/googletest/blob/master/googletest/docs/advanced.md#how-it-works
+    // https://github.com/google/googletest/blob/HEAD/googletest/docs/advanced.md#how-it-works
     //
     // Otherwise, EXPECT_DEATH statement will be called in forked child
     // immediately. It means that at least
diff --git a/goldfishd/goldfish_library.h b/goldfishd/goldfish_library.h
index 23df1cb..bfdf69e 100644
--- a/goldfishd/goldfish_library.h
+++ b/goldfishd/goldfish_library.h
@@ -16,7 +16,7 @@
 }  // namespace message
 
 // Get one message from goldfish pipe, the message format is defined
-// https://android.googlesource.com/platform/external/qemu/+/master/docs/ANDROID-QEMUD.TXT#158
+// https://android.googlesource.com/platform/external/qemu/+/HEAD/docs/ANDROID-QEMUD.TXT#158
 bool ReadOneMessage(int fd, std::string* message_out);
 
 }  //  namespace goldfishd
diff --git a/login_manager/mock_policy_service.h b/login_manager/mock_policy_service.h
index 2930fa1..43e5a58 100644
--- a/login_manager/mock_policy_service.h
+++ b/login_manager/mock_policy_service.h
@@ -76,7 +76,7 @@
 
     // Proxy to HandleInternal() to support a passed-by-value move-only-type
     // param. See also
-    // https://github.com/google/googlemock/blob/master/googlemock/docs/CookBook.md#mocking-methods-that-use-move-only-types
+    // https://github.com/google/googlemock/blob/HEAD/googlemock/docs/CookBook.md#mocking-methods-that-use-move-only-types
     void HandleError(brillo::ErrorPtr error) {
       HandleErrorInternal(error.get());
     }
diff --git a/ml/docs/publish_and_use_model.md b/ml/docs/publish_and_use_model.md
index 7fd155c..6dc78e9 100644
--- a/ml/docs/publish_and_use_model.md
+++ b/ml/docs/publish_and_use_model.md
@@ -403,10 +403,10 @@
 [model.mojom]: https://cs.corp.google.com/chromeos_public/src/platform2/ml/mojom/model.mojom
 [model_metadata.cc]: https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/ml/model_metadata.cc
 [pretty_print.py]: https://cs.chromium.org/chromium/src/tools/metrics/histograms/pretty_print.py?sq=package:chromium&dr&g=0
-[toco]: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/toco
+[toco]: https://github.com/tensorflow/tensorflow/tree/HEAD/tensorflow/lite/toco
 [validate_format.py]: https://cs.chromium.org/chromium/src/tools/metrics/histograms/validate_format.py?sq=package:chromium&dr&g=0
-[ml-service-client-library]: https://source.chromium.org/chromium/chromium/src/+/master:chromeos/services/machine_learning/public/cpp/service_connection.h
-[example-load-buitin-model]: https://source.chromium.org/chromium/chromium/src/+/master:chrome/browser/chromeos/power/ml/smart_dim/builtin_worker.cc;l=92
-[example-load-flatbuffer-model]: https://source.chromium.org/chromium/chromium/src/+/master:chrome/browser/chromeos/power/ml/smart_dim/download_worker.cc;l=93
+[ml-service-client-library]: https://source.chromium.org/chromium/chromium/src/+/HEAD:chromeos/services/machine_learning/public/cpp/service_connection.h
+[example-load-buitin-model]: https://source.chromium.org/chromium/chromium/src/+/HEAD:chrome/browser/chromeos/power/ml/smart_dim/builtin_worker.cc;l=92
+[example-load-flatbuffer-model]: https://source.chromium.org/chromium/chromium/src/+/HEAD:chrome/browser/chromeos/power/ml/smart_dim/download_worker.cc;l=93
 [version-control-doc]: http://doc/11erwhc0Ppul4SPXE7DtvW9wz-0CQmKK4b9dFTloByos#heading=h.urp1fskeo868
 [cs-component-installer-policy]: https://source.chromium.org/search?q=%22public%20ComponentInstallerPolicy%22
diff --git a/ml/docs/setup_component.md b/ml/docs/setup_component.md
index 30dd528..f02af8b 100644
--- a/ml/docs/setup_component.md
+++ b/ml/docs/setup_component.md
@@ -171,6 +171,6 @@
 
 
 [add-component-doc]: https://g3doc.corp.google.com/company/teams/chrome/component_updater.md#adding-new-components
-[omaha-protocol]: https://github.com/google/omaha/blob/master/doc/ServerProtocolV3.md
+[omaha-protocol]: https://github.com/google/omaha/blob/HEAD/doc/ServerProtocolV3.md
 [version-control-oob]: https://docs.google.com/document/d/11erwhc0Ppul4SPXE7DtvW9wz-0CQmKK4b9dFTloByos
 [Upload files to a remote storage]: #Upload-files-to-a-remote-storage
diff --git a/ml/mojom/time_mojom_traits.h b/ml/mojom/time_mojom_traits.h
index 80a0a91..a20fc9d 100644
--- a/ml/mojom/time_mojom_traits.h
+++ b/ml/mojom/time_mojom_traits.h
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // This file is copied and modified from,
-// https://chrome-internal.googlesource.com/chromeos/platform/drivefs/+/master/mojom/time_mojom_traits.h
+// https://chrome-internal.googlesource.com/chromeos/platform/drivefs/+/HEAD/mojom/time_mojom_traits.h
 
 #ifndef ML_MOJOM_TIME_MOJOM_TRAITS_H_
 #define ML_MOJOM_TIME_MOJOM_TRAITS_H_
diff --git a/ml/mojom/type_mappings.json b/ml/mojom/type_mappings.json
index 526adbe..fd2dab1 100644
--- a/ml/mojom/type_mappings.json
+++ b/ml/mojom/type_mappings.json
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // This file is copied and modified from,
-// https://chrome-internal.googlesource.com/chromeos/platform/drivefs/+/master/mojom/type_mappings.json
+// https://chrome-internal.googlesource.com/chromeos/platform/drivefs/+/HEAD/mojom/type_mappings.json
 
 {
   "c++": {
diff --git a/nnapi/hardware_buffer/AHardwareBuffer.cpp b/nnapi/hardware_buffer/AHardwareBuffer.cpp
index 2dbabbd..bb53b61 100644
--- a/nnapi/hardware_buffer/AHardwareBuffer.cpp
+++ b/nnapi/hardware_buffer/AHardwareBuffer.cpp
@@ -5,7 +5,7 @@
 // An implementation of the subset of hardware buffers functionality required by
 // NNAPI. The upstream implementation of hardware buffers can be found in the
 // AOSP source file frameworks/native/libs/nativewindow/AHardwareBuffer.cpp. See
-// https://android.googlesource.com/platform/frameworks/native/+/refs/heads/master/libs/nativewindow/AHardwareBuffer.cpp
+// https://android.googlesource.com/platform/frameworks/native/+/HEAD/libs/nativewindow/AHardwareBuffer.cpp
 
 // Unused functions are left without any implementations. Should a future
 // version of NNAPI need a new function, we will be notified through a link
diff --git a/power_manager/docs/dark_resume.md b/power_manager/docs/dark_resume.md
index 5fcc413..e5faa43 100644
--- a/power_manager/docs/dark_resume.md
+++ b/power_manager/docs/dark_resume.md
@@ -261,7 +261,7 @@
 [sleep states]: https://www.kernel.org/doc/Documentation/power/states.txt
 [power/wakeup]: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-devices-power
 [per device wakeup count]: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-devices-power
-[i8042 driver]: https://github.com/torvalds/linux/blob/master/drivers/input/serio/i8042.c#L577
+[i8042 driver]: https://github.com/torvalds/linux/blob/HEAD/drivers/input/serio/i8042.c#L577
 [cros\_ec\_keyb.c]: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/chromeos-4.4/drivers/input/keyboard/cros_ec_keyb.c#278
 [input devices that powerd polls]: https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/power_manager/powerd/system/input_watcher.cc#394
 [`HandleUserActivity`]: https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/power_manager/dbus_bindings/org.chromium.PowerManager.xml#61
diff --git a/power_manager/tools/dump_intel_rapl_consumption.cc b/power_manager/tools/dump_intel_rapl_consumption.cc
index 3b8a20c..afd3209 100644
--- a/power_manager/tools/dump_intel_rapl_consumption.cc
+++ b/power_manager/tools/dump_intel_rapl_consumption.cc
@@ -16,7 +16,7 @@
 // [1]
 // https://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-vol-3b-part-2-manual.html
 // [2]
-// https://github.com/torvalds/linux/blob/master/Documentation/power/powercap/powercap.rst
+// https://github.com/torvalds/linux/blob/HEAD/Documentation/power/powercap/powercap.rst
 
 #include <inttypes.h>
 #include <math.h>
diff --git a/run_oci/README.md b/run_oci/README.md
index a3c65d0..8f43d39 100644
--- a/run_oci/README.md
+++ b/run_oci/README.md
@@ -8,7 +8,7 @@
 ## Chrome OS extensions
 
 The OCI runtime spec allows implementations to add additional properties for
-[extensibility](https://github.com/opencontainers/runtime-spec/blob/master/config.md#extensibility).
+[extensibility](https://github.com/opencontainers/runtime-spec/blob/HEAD/config.md#extensibility).
 
 Chrome OS adds the following extensions:
 
@@ -25,7 +25,7 @@
 called, so bind mounts that cross the chroot boundary can still be performed.
 
 The
-[**`hooks`**](https://github.com/opencontainers/runtime-spec/blob/master/config.md#posix-platform-hooks)
+[**`hooks`**](https://github.com/opencontainers/runtime-spec/blob/HEAD/config.md#posix-platform-hooks)
 object has been extended to also contain the following:
 
 * **`precreate`**: *(array of objects, OPTIONAL)* - is an array of pre-create
@@ -34,7 +34,7 @@
 
 * **`prechroot`**: *(array of objects, OPTIONAL)* - is an array of pre-chroot
   hooks. Entries in the array have the same schema as pre-start entries, and are
-  run in the outer namespace after all the entries in [**`mounts`**](https://github.com/opencontainers/runtime-spec/blob/master/config.md#mounts)
+  run in the outer namespace after all the entries in [**`mounts`**](https://github.com/opencontainers/runtime-spec/blob/HEAD/config.md#mounts)
   have been mounted, but before chroot(2) has been invoked.
 
 #### Example (Chrome OS)
@@ -59,7 +59,7 @@
 ### Linux device node dynamic major/minor numbers
 
 Device nodes that have well-known major/minor numbers are normally added to the
-[**`devices`**](https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#devices)
+[**`devices`**](https://github.com/opencontainers/runtime-spec/blob/HEAD/config-linux.md#devices)
 array, whereas device nodes that have dynamic major/minor numbers are typically
 bind-mounted. Android running in Chrome OS needs to have device node files
 created in the container rather than bind-mounted, since Android expects the
@@ -110,7 +110,7 @@
 namespace to be entered does not match the outer namespace.
 
 In order to overcome the above restriction, a new flag is added to objects in
-[**`mounts`**](https://github.com/opencontainers/runtime-spec/blob/master/config.md#mounts),
+[**`mounts`**](https://github.com/opencontainers/runtime-spec/blob/HEAD/config.md#mounts),
 that will cause `run_oci` to create an intermediate mount namespace that has the
 init user namespace associated with it. This way, privileged operations that
 require being in the init user namespace can still be carried out, and the
@@ -158,7 +158,7 @@
 filters.
 
 The
-[**`linux`**](https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md)
+[**`linux`**](https://github.com/opencontainers/runtime-spec/blob/HEAD/config-linux.md)
 object has been extended to also contain the following:
 
 * **`altSyscall`**: *(string, OPTIONAL)* - changes the system call table for the
@@ -186,7 +186,7 @@
 non-root user).
 
 The
-[**`linux`**](https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md)
+[**`linux`**](https://github.com/opencontainers/runtime-spec/blob/HEAD/config-linux.md)
 object has been extended to also contain the following:
 
 * **`skipSecurebits`**: *(array of strings, OPTIONAL)* - adds additional securebits
@@ -213,7 +213,7 @@
 to be `0`.
 
 The
-[**`process`**](https://github.com/opencontainers/runtime-spec/blob/master/config.md#posix-process)
+[**`process`**](https://github.com/opencontainers/runtime-spec/blob/HEAD/config.md#posix-process)
 object has been extended to also contain the following:
 
 * **`umask`**: *(uint32, OPTIONAL)* - sets the initial file mode creation mask
diff --git a/shill/TESTING.md b/shill/TESTING.md
index 96605a4..7e1b10f 100644
--- a/shill/TESTING.md
+++ b/shill/TESTING.md
@@ -4,7 +4,7 @@
 
 We test shill using unit tests and integration tests. The unit tests are built
 using [Google Test](https://github.com/google/googletest) and [Google
-Mock](https://github.com/google/googletest/tree/master/googlemock). The
+Mock](https://github.com/google/googletest/tree/HEAD/googlemock). The
 integration tests use [Tast] and [Autotest].
 
 ### Running unit tests for Chrome OS
diff --git a/shill/cellular/cellular_capability_3gpp.cc b/shill/cellular/cellular_capability_3gpp.cc
index 913d634..a46719e 100644
--- a/shill/cellular/cellular_capability_3gpp.cc
+++ b/shill/cellular/cellular_capability_3gpp.cc
@@ -1683,7 +1683,7 @@
                 << "mm_reports_wideband_rssi : " << mm_reports_wideband_rssi_;
   if (mm_reports_wideband_rssi_) {
     // Reference from android:
-    // https://android.googlesource.com/platform/frameworks/base.git/+/master/telephony/java/android/telephony/CarrierConfigManager.java
+    // https://android.googlesource.com/platform/frameworks/base.git/+/HEAD/telephony/java/android/telephony/CarrierConfigManager.java
     // RSSI thresholds = Androids RSRP thresholds + 25dB (assuming no noise and
     // 5Mhz channel).
     // RSSI(dBm) -> UI bars mapping
diff --git a/u2fd/README.md b/u2fd/README.md
index 50445b7..37adca2 100644
--- a/u2fd/README.md
+++ b/u2fd/README.md
@@ -78,6 +78,6 @@
 
 [FIDO U2F HID Protocol Specification]: https://fidoalliance.org/specs/fido-u2f-v1.1-id-20160915/fido-u2f-hid-protocol-v1.1-id-20160915.html
 [FIDO U2F Raw Message Formats]: https://fidoalliance.org/specs/fido-u2f-v1.1-id-20160915/fido-u2f-raw-message-formats-v1.1-id-20160915.html
-[reference test programs]: https://github.com/fido-alliance/google-u2f-ref-code/blob/master/u2f-tests/
-[HIDTest]: https://github.com/fido-alliance/google-u2f-ref-code/blob/master/u2f-tests/HID/HIDTest.cc
-[U2FTest]: https://github.com/fido-alliance/google-u2f-ref-code/blob/master/u2f-tests/HID/U2FTest.cc
+[reference test programs]: https://github.com/fido-alliance/google-u2f-ref-code/blob/HEAD/u2f-tests/
+[HIDTest]: https://github.com/fido-alliance/google-u2f-ref-code/blob/HEAD/u2f-tests/HID/HIDTest.cc
+[U2FTest]: https://github.com/fido-alliance/google-u2f-ref-code/blob/HEAD/u2f-tests/HID/U2FTest.cc
diff --git a/vm_tools/garcon/package_kit_proxy.cc b/vm_tools/garcon/package_kit_proxy.cc
index e858a24..a14043e 100644
--- a/vm_tools/garcon/package_kit_proxy.cc
+++ b/vm_tools/garcon/package_kit_proxy.cc
@@ -36,7 +36,7 @@
 
 // Constants for the PackageKit D-Bus service.
 // See:
-// https://github.com/hughsie/PackageKit/blob/master/src/org.freedesktop.PackageKit.Transaction.xml
+// https://github.com/hughsie/PackageKit/blob/HEAD/src/org.freedesktop.PackageKit.Transaction.xml
 constexpr char kPackageKitInterface[] = "org.freedesktop.PackageKit";
 constexpr char kPackageKitServicePath[] = "/org/freedesktop/PackageKit";
 constexpr char kPackageKitServiceName[] = "org.freedesktop.PackageKit";