From: Gabriele M <[email protected]>

The applications built from Replicant are signed with a key that is
generated during the build procedure The issue is that the data of an
application becomes inaccessible to it if the application signature change.
This affects all the applications built during and signed during the build
of Replicant images, which includes all system applications.

This is why, during the installation of a new Replicant version, the
otasigcheck.sh is run: it verifies if the application signatures expected
by the applications data match the signatures of the new applications
that are part of the new Replicant image being installed.

Without this check, users installing a new Replicant minor version (like
Replicant 6.0 0004) and keeping the data from the previous minor version
(like Replicant 6.0 0003) with a key that change will make at least some
system applications like the launcher crash as they will not be able to
access their data.

If the check detects an incompatibility, on a Galaxy SIII (GT-I9300), we
end up the installation aborting and the following message being displayed
on the screen:
  detected filesystem ext4 for /dev/block/mmcblk0p12
  Can't install this package on top of incompatible data. Ples
  se try another package or run a factory test
  E:Failed to install /sideload/package.zip
  E:Please take note of all the above lines for reports.

This design has several issues:
- You cannot upgrade between Replicant minor versions if the keys signing
  applications shipped in the new version changed. This is really
  problematic as to upgrade, users need to delete all their application
  data and restart creating them from scratch which is very time consuming.
  With frequent updates that would becomes too much time consuming to do.
- It is also very fragile: if the data partition is encrypted,
  otasigcheck.sh cannot do the check, and the check is skipped completely,
  with the consequences explained before (the system applications end up
  not being able to access their data).

To fix that:
- This patch adds a new script (key-migration.sh) to this repository.
  It takes care of migrating the applications data to the new keys during
  the first boot (so after the data partition will have been mounted).
- The call to otasigcheck.sh during the installation of new Replicant
  versions will be removed in the build repository.
- otasigcheck.sh will be removed in this repository in the next commit.
- A python script generating this key-migration.sh script will be added
  to the vendor_replicant-scripts repository to enable users and developers
  to generate a key-migration.sh script with the keys they want. This
  should make downgrade easier as the key-migration.sh could also be run
  manually in the recovery and make the migration to self-built images much
  easier.

Also, the otasigcheck.sh script has already been removed in LineageOS 17.1
by the following commit in vendor/lineage:
  commit 95621f3c73b94a87ca4528748535bb114ae1613f
  Author: Michael Bestas <[email protected]>
  Date:   Sat Aug 4 17:46:35 2018 +0300

      Revert "ota: Validate any installed data's signature against our own"

      * otasigcheck doesn't work on encrypted devices and makes
        the zip installation fail since oreo.
      * The build part of this was never ported to oreo.

      This reverts commit aff5e54c4ef5fec7e67e830f83ee64424005d07c.

      Change-Id: I411f33c1db64844091c1692ef4706ae541925d4f

This key-migration.sh script has been generated by the following command in
the Replicant source code directory:
    $ 
./vendor/replicant-scripts/images/gen_key_migration_script/gen_key_migration_script.py
 \
      gen-script \
      vendor/replicant/prebuilt/common/bin/key-migration.sh \
      vendor/replicant-data/distros/releases/certificates/ \
      vendor/replicant-security/

This work is based on the following commit from the android_vendor_cm
repository[1]:
    2f7c7decc Add startup script to update the package signatures
    commit 2f7c7decc4cd5b42f044a7841a74468e4cacd694 (refs/changes/27/156327/3)
    Author: Gabriele M <[email protected]>
    Date:   Fri Jan 13 17:03:45 2017 +0100

        Add startup script to update the package signatures

        This allows to jump straight to LineageOS without wiping
        userdata first.

        Change-Id: I208bcada9380cbd69f3bec6c64e3c9e0eb1104c8

[1] https://github.com/LineageOS/android_vendor_cm.git

Signed-off-by: Denis 'GNUtoo' Carikli <[email protected]>
---
 config/common.mk                      |   4 +
 prebuilt/common/Android.mk            |   7 +
 prebuilt/common/bin/keys-migration.sh | 297 ++++++++++++++++++++++++++
 prebuilt/common/etc/init.local.rc     |   7 +
 4 files changed, 315 insertions(+)
 create mode 100644 prebuilt/common/bin/keys-migration.sh

diff --git a/config/common.mk b/config/common.mk
index 930d1a29..f7f2e23c 100644
--- a/config/common.mk
+++ b/config/common.mk
@@ -234,6 +234,10 @@ PRODUCT_PACKAGES += \
 endif
 endif
 
+# test-keys migration script
+PRODUCT_PACKAGES += \
+    keys-migration.sh
+
 DEVICE_PACKAGE_OVERLAYS += vendor/replicant/overlay/common
 
 ifeq ($(USE_OPENGL_RENDERER),true)
diff --git a/prebuilt/common/Android.mk b/prebuilt/common/Android.mk
index f15b178c..d700e70b 100644
--- a/prebuilt/common/Android.mk
+++ b/prebuilt/common/Android.mk
@@ -8,3 +8,10 @@ LOCAL_MODULE_TAGS := optional
 LOCAL_MODULE_CLASS := EXECUTABLES
 LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
 include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := keys-migration.sh
+LOCAL_SRC_FILES := bin/keys-migration.sh
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := EXECUTABLES
+include $(BUILD_PREBUILT)
diff --git a/prebuilt/common/bin/keys-migration.sh 
b/prebuilt/common/bin/keys-migration.sh
new file mode 100644
index 00000000..78324af1
--- /dev/null
+++ b/prebuilt/common/bin/keys-migration.sh
@@ -0,0 +1,297 @@
+#!/system/bin/sh
+# Copyright (C) 2017 Gabriele M <[email protected]>
+# Copyright (C) 2020 Denis 'GNUtoo' Carikli <[email protected]>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+PACKAGES=/data/system/packages.xml
+PACKAGES_BACKUP=/data/system/packages-backup.xml
+MIGRATION_DONE=/data/system/.keys-migration-done
+
+if [ -f ${MIGRATION_DONE} ]; then
+       exit 0
+fi
+
+if [ ! -f ${PACKAGES_BACKUP} ] && [ ! -f ${PACKAGES} ]; then
+       touch ${MIGRATION_DONE}
+       exit 0
+fi
+
+if [ -f ${PACKAGES_BACKUP} ]; then
+       mv ${PACKAGES_BACKUP} ${PACKAGES}
+fi
+
+#####################
+# Certificates keys #
+#####################
+
+old_replicant-6.0-0004-rc2_com_android_providers_media_DER_cert_key='308203d4308202bca003020102020900d57a7110a410312f300d06092a864886f70d0101050500307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e301e170d3230303732313032333931365a170d3437313230373032333931365a307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e30820122300d06092a864886f70d01010105000382010f003082010a0282010100a8ff7765d2055dd75e77bc0beeff6231e7ed2405e7600c0a469f2658f4343d160f18509256a97536dbf7c3758b96a9662c04700e56ece175064be6629bbdfc9c459a6a1db4949fa54b890449a3d60c274e6941aec4cfc38aba6ddabab4a316bb616a
 
e2b09bda9d0de931cc4d8070230db650b410839774d8e527f9f8cdbae449cf2ae1ac8b0ee10ea2c57d69cb4d42e0d69086b7b32a08e333941ae6e00353051133c130ef80434b29b9822d12ce559c932bf38c129dc0f303aafdd5a1cbf6e90fe22a22b118d2fc6f41c1eac73a0bd94a40c4fbcf7da3f4c3cf578e4f8b5c596a5d4a9b946d06e3d904e0effec1f2c2bd2ac038bcd8c324f925558c5a68600d0203010001a3533051301d0603551d0e04160414f88447b8dffe416ea7ce178475e310108196be83301f0603551d23041830168014f88447b8dffe416ea7ce178475e310108196be83300f0603551d130101ff040530030101ff300d06092a864886f70d010105050003820101003cfeec97d317c62e373d53b0550cea1fbf407d17663eb9905b7a57cd8ccbd325c2968e6f0851e39be5ab1d03707c96ee78dcf4e59ab1de37d39bdd4c64346c5f9d2b18502d2ddf3dfcac7d54da5d4cee5ed052daeedf85909de4f8c8c18c592d478902a93868ca41daf55d6a96a688eacf3356e8378f9423a10f83dcf84770e945340f8043c264a7fe3e6ead5f0a776cad59132b48996697cb7895c0c72c16f4868f11a202d0167b415580943f53d63d0db249f0186b4d8c9c336c21bf28e14c9b0dd2597008ea39875655efa08760019d8e1d61ab6ee4c995c1beb7f06f4e6ed7ffa
 493d085735a716ee4d4eb3faa7bbe2e91f0c21cc8aacaa5907a85f127b5'
+
+old_replicant-6.0-0004-rc1_com_android_providers_media_DER_cert_key='308203d4308202bca003020102020900b41cf6eb059ed37c300d06092a864886f70d0101050500307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e301e170d3139313132333133303733385a170d3437303431303133303733385a307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e30820122300d06092a864886f70d01010105000382010f003082010a0282010100e9e345242e63f4f28aa303269e7aa0b0edcd4280899056df6853cf6f01f6949e22153693cc0a3b2315111dfcf9331f83d0c982c060709668fca02fd232cf20a5becc6a97d766771ea664c0e095c525b26907c9823418c4f1a64458b42d5538f64706
 
218ff9072ce45319fe6e4cf3e171a2f261d2bffe198671aa37ca2e7646050f8564e36ad5d9f48a2d762ed1be3199c05d287aed5da2b7c72a23aea823c7824b7ba70da53d90eda68b98fd988fba92cfe4c795d8f1916f690cfe9c6acd7f6213e9cf61d146d50d3395e0a7ff49e115aa41c0a828b7fbaa01791ad2329a4660ff31d74a7f005216c3ad5e0a51c096782061a1f9aa4546f6534a7e702fd36b570203010001a3533051301d0603551d0e041604147b3e0d83afa1eb9b5d05e1ed9e03787226ed87ce301f0603551d230418301680147b3e0d83afa1eb9b5d05e1ed9e03787226ed87ce300f0603551d130101ff040530030101ff300d06092a864886f70d01010505000382010100da17e79294886f2e55422a0b3c628d7e57e946b9167a74cf5689b5f559dcd01cf63f1d5e7e2d72bfe3696c3932f355a7084c1731eeb9ec2725b179518995e21c1496f1d6647788d9baf2a2a321ee396fe14b93b74a1c1b5f1a2200207954ab3fd6f4bf2c50e24c2d6088d2295fd252a060c9a0331a63d44c4ee0f7320ff5d1de7b34f26f525ab8e9c2e6627f29be878032a81848386cb645e271645d3bb92dad6406a4b2f5af1aa2a92a538a4d0f2d582d0c3b72dee74c45181d4aebc418e79bba54d65d4a338f48af85bac73e9f9baacef020ac7c6cff63c575bb1283c632b3e6b90
 25bc59aeff2a12032bb46dc871871102aa3eed601a6af9632087ea83127'
+
+old_replicant-6.0-0001_com_android_providers_media_DER_cert_key='3082041930820301a003020102020900e65e51ca1e9ec5a3300d06092a864886f70d01010505003081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e6465301e170d3136303230353232343930315a170d3433303632333232343930315a3081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e646530820122300d06092a864886f70d01010105000382010f003082010a0282010100bd3c247c6eeb94fd16403582cf7ef6d39c18b8052765ca3bbe78a1d2
 
d66c2af57bb628324e26b0c5c0996be1589a005c8645a373ade4cd2565ea34bc9eb4164bd8737b12c031c973835313e848c2faad50a0d9fc2a7395715fbf721fda4bdc9fcb6e376f21d5daba507b8b3f3b23c4be6c74d796e39554d86f0a514f3d2158b91c2fd17f96928d782956c8d9be63c0e4e5ca540f9b7feff68de228c54b28a03f3c1f6ba0ead794df915489f6cd039a1a5ee41f10b68e1f6733f0222fac8e152ad929d76e1959c391195e1d2f31ec97cae406c8dbe967d1d9dea1423e093248b4d9bcda328a7ce471698fdf761a9cb2971b95e7dedfd9d0916b4753d52ac082030203010001a350304e301d0603551d0e0416041447e4e6d80a6312cb44853402dea843969d38e327301f0603551d2304183016801447e4e6d80a6312cb44853402dea843969d38e327300c0603551d13040530030101ff300d06092a864886f70d010105050003820101008190104d2c9cf6c70cbffabdf6a9b0fbe72d6788780113a7a175debced2eebc0ae2e522ef638b7b6cc22f8fc6d49070ccb335a5d64bb10b154dde167cc38fa4909aed8c1342c3ef6a9ddd109add7d23655484643d8173dc1f3c8e46a6eefbfed37869eb4e7365d9d0a67b694d2c5e354887843d732fb36e4b7136a3af96055d82c020fff4a86a235f1d05515746b5b791d22dcc75f8ad64dc93b9d6d33130ba
 
7d2891a5e12fc859644fa6f3accbe0b0e20621e5086eade7f2c67844be00551386b713b572ce898cb97d1ddf9696040ea3b50e41cc9b8007764d9b1094fd446c2183a90dc92d297d9753b6c70616439a8e1af47942c0ababb83f142d5fb947bcd'
+
+old_replicant-6.0-0003_com_android_providers_media_DER_cert_key='3082041930820301a003020102020900e65e51ca1e9ec5a3300d06092a864886f70d01010505003081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e6465301e170d3136303230353232343930315a170d3433303632333232343930315a3081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e646530820122300d06092a864886f70d01010105000382010f003082010a0282010100bd3c247c6eeb94fd16403582cf7ef6d39c18b8052765ca3bbe78a1d2
 
d66c2af57bb628324e26b0c5c0996be1589a005c8645a373ade4cd2565ea34bc9eb4164bd8737b12c031c973835313e848c2faad50a0d9fc2a7395715fbf721fda4bdc9fcb6e376f21d5daba507b8b3f3b23c4be6c74d796e39554d86f0a514f3d2158b91c2fd17f96928d782956c8d9be63c0e4e5ca540f9b7feff68de228c54b28a03f3c1f6ba0ead794df915489f6cd039a1a5ee41f10b68e1f6733f0222fac8e152ad929d76e1959c391195e1d2f31ec97cae406c8dbe967d1d9dea1423e093248b4d9bcda328a7ce471698fdf761a9cb2971b95e7dedfd9d0916b4753d52ac082030203010001a350304e301d0603551d0e0416041447e4e6d80a6312cb44853402dea843969d38e327301f0603551d2304183016801447e4e6d80a6312cb44853402dea843969d38e327300c0603551d13040530030101ff300d06092a864886f70d010105050003820101008190104d2c9cf6c70cbffabdf6a9b0fbe72d6788780113a7a175debced2eebc0ae2e522ef638b7b6cc22f8fc6d49070ccb335a5d64bb10b154dde167cc38fa4909aed8c1342c3ef6a9ddd109add7d23655484643d8173dc1f3c8e46a6eefbfed37869eb4e7365d9d0a67b694d2c5e354887843d732fb36e4b7136a3af96055d82c020fff4a86a235f1d05515746b5b791d22dcc75f8ad64dc93b9d6d33130ba
 
7d2891a5e12fc859644fa6f3accbe0b0e20621e5086eade7f2c67844be00551386b713b572ce898cb97d1ddf9696040ea3b50e41cc9b8007764d9b1094fd446c2183a90dc92d297d9753b6c70616439a8e1af47942c0ababb83f142d5fb947bcd'
+
+old_replicant-6.0-0002_com_android_providers_media_DER_cert_key='3082041930820301a003020102020900e65e51ca1e9ec5a3300d06092a864886f70d01010505003081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e6465301e170d3136303230353232343930315a170d3433303632333232343930315a3081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e646530820122300d06092a864886f70d01010105000382010f003082010a0282010100bd3c247c6eeb94fd16403582cf7ef6d39c18b8052765ca3bbe78a1d2
 
d66c2af57bb628324e26b0c5c0996be1589a005c8645a373ade4cd2565ea34bc9eb4164bd8737b12c031c973835313e848c2faad50a0d9fc2a7395715fbf721fda4bdc9fcb6e376f21d5daba507b8b3f3b23c4be6c74d796e39554d86f0a514f3d2158b91c2fd17f96928d782956c8d9be63c0e4e5ca540f9b7feff68de228c54b28a03f3c1f6ba0ead794df915489f6cd039a1a5ee41f10b68e1f6733f0222fac8e152ad929d76e1959c391195e1d2f31ec97cae406c8dbe967d1d9dea1423e093248b4d9bcda328a7ce471698fdf761a9cb2971b95e7dedfd9d0916b4753d52ac082030203010001a350304e301d0603551d0e0416041447e4e6d80a6312cb44853402dea843969d38e327301f0603551d2304183016801447e4e6d80a6312cb44853402dea843969d38e327300c0603551d13040530030101ff300d06092a864886f70d010105050003820101008190104d2c9cf6c70cbffabdf6a9b0fbe72d6788780113a7a175debced2eebc0ae2e522ef638b7b6cc22f8fc6d49070ccb335a5d64bb10b154dde167cc38fa4909aed8c1342c3ef6a9ddd109add7d23655484643d8173dc1f3c8e46a6eefbfed37869eb4e7365d9d0a67b694d2c5e354887843d732fb36e4b7136a3af96055d82c020fff4a86a235f1d05515746b5b791d22dcc75f8ad64dc93b9d6d33130ba
 
7d2891a5e12fc859644fa6f3accbe0b0e20621e5086eade7f2c67844be00551386b713b572ce898cb97d1ddf9696040ea3b50e41cc9b8007764d9b1094fd446c2183a90dc92d297d9753b6c70616439a8e1af47942c0ababb83f142d5fb947bcd'
+
+new_com_android_providers_media_DER_cert_key='308203d4308202bca003020102020900d57a7110a410312f300d06092a864886f70d0101050500307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e301e170d3230303732313032333931365a170d3437313230373032333931365a307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e30820122300d06092a864886f70d01010105000382010f003082010a0282010100a8ff7765d2055dd75e77bc0beeff6231e7ed2405e7600c0a469f2658f4343d160f18509256a97536dbf7c3758b96a9662c04700e56ece175064be6629bbdfc9c459a6a1db4949fa54b890449a3d60c274e6941aec4cfc38aba6ddabab4a316bb616ae2b09bda9d0de931cc4d807
 
0230db650b410839774d8e527f9f8cdbae449cf2ae1ac8b0ee10ea2c57d69cb4d42e0d69086b7b32a08e333941ae6e00353051133c130ef80434b29b9822d12ce559c932bf38c129dc0f303aafdd5a1cbf6e90fe22a22b118d2fc6f41c1eac73a0bd94a40c4fbcf7da3f4c3cf578e4f8b5c596a5d4a9b946d06e3d904e0effec1f2c2bd2ac038bcd8c324f925558c5a68600d0203010001a3533051301d0603551d0e04160414f88447b8dffe416ea7ce178475e310108196be83301f0603551d23041830168014f88447b8dffe416ea7ce178475e310108196be83300f0603551d130101ff040530030101ff300d06092a864886f70d010105050003820101003cfeec97d317c62e373d53b0550cea1fbf407d17663eb9905b7a57cd8ccbd325c2968e6f0851e39be5ab1d03707c96ee78dcf4e59ab1de37d39bdd4c64346c5f9d2b18502d2ddf3dfcac7d54da5d4cee5ed052daeedf85909de4f8c8c18c592d478902a93868ca41daf55d6a96a688eacf3356e8378f9423a10f83dcf84770e945340f8043c264a7fe3e6ead5f0a776cad59132b48996697cb7895c0c72c16f4868f11a202d0167b415580943f53d63d0db249f0186b4d8c9c336c21bf28e14c9b0dd2597008ea39875655efa08760019d8e1d61ab6ee4c995c1beb7f06f4e6ed7ffa493d085735a716ee4d4eb3f
 aa7bbe2e91f0c21cc8aacaa5907a85f127b5'
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc2_com_android_providers_media_DER_cert_key}/${new_com_android_providers_media_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc1_com_android_providers_media_DER_cert_key}/${new_com_android_providers_media_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0001_com_android_providers_media_DER_cert_key}/${new_com_android_providers_media_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0003_com_android_providers_media_DER_cert_key}/${new_com_android_providers_media_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0002_com_android_providers_media_DER_cert_key}/${new_com_android_providers_media_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+old_replicant-6.0-0004-rc2_com_android_providers_telephony_DER_cert_key='308203d4308202bca003020102020900a7eed21fab90ce78300d06092a864886f70d0101050500307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e301e170d3230303732313032333931365a170d3437313230373032333931365a307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e30820122300d06092a864886f70d01010105000382010f003082010a0282010100d4e89e2e93852da872bd4183a09841d069cb35f27ba9ff95120e7dbd6e74ca1159023d07b1e141cd74b2f8f56d908000baa2325df3f0820d2501f9cf879a16da0bc1a96e9d4d90b50cf1fce05837142aaed93f9f117a5d45a7e95a32c6da859f
 
82ea565a0f5883f407f45b7d2db4cc2c68976bf3a99957f1dda26b5bf1333dd50c47cef1b99989792a130b554282ffe592a9dfb7cc7126bb7ee37b17cf938a339e886b76ab74121d071ae5c2f0c23f8e85a77e75af1d7e453a52060ef30c18916892db45026d700e9b12966b8b296c967767002878e635ca0eb615e799349b90e1f998fe05164afbf7b23e4d89099a7fa60756b7a1da42fcfdff09565e117d950203010001a3533051301d0603551d0e04160414139d988da8c93805513d90849241c8cc06a12a15301f0603551d23041830168014139d988da8c93805513d90849241c8cc06a12a15300f0603551d130101ff040530030101ff300d06092a864886f70d0101050500038201010080d4c43e052da860ff66ca8b3b4b2f62ab9fb37905ad831553822d01fd28c3a9d2fd9106ee1f03f3bcc7387aca126873fc00ee45246910054a96f39998e4a368d6895e32c0cf64c18da12b574642b3df66c051aa7749159ca041426403850c6da062beca9d94f800a6f2cb1f0498c29766d3e9773fbd422a35b414fd31daea081c001ad69a701b1495380ee53601d741f88abeafe535d2cae30216493d4d0036ea77f4348b2692c3759e9cb2157d4ce9460e68d38e02fb5861d5cefad992a2ff7de6e20e8588bf552e27069141ca5d6498ee4730863ecb1642932a35baab5e0a5
 f445d7cd48c3eb0519b43e1cf78e5b0b501a9b54dda498162a3eaeccb61cc28'
+
+old_replicant-6.0-0004-rc1_com_android_providers_telephony_DER_cert_key='308203d4308202bca003020102020900ea5a9d85247b4c6e300d06092a864886f70d0101050500307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e301e170d3139313132333133303733375a170d3437303431303133303733375a307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e30820122300d06092a864886f70d01010105000382010f003082010a0282010100cab471d69c8b9e3839477d72e6ffc90c8a741c2f08be74ad6fdc8d96ed222952bdac7f4cc11b9a5974abe69d9982678bbb0d08ac96d2c88aade1d33e3c612eb343bc390f9b60f4034370e89cfa1a0a002fab1f8c4a59fde445646b70423afc6d
 
a6ee35336ab8ba59184a7cd812637aa4a6b5889be1ed8d4e6f0b49b954615ba648b8daba8eec3cf8073bcf712588146ca74c106e1003bd0fe3527a90580d943a9e5a235ff65e8e8c2dd3c6ba07530ec8f27cc91a5cad677abacbaee18b85a6338276b00a2560d2b3acab910a48f97fdb20505dc1a2d2827a8e0fd8cdba7477b2a013fd07a81de894e346d3e06cb727478be0d712d5da2670e4cd52988eb3decb0203010001a3533051301d0603551d0e04160414452bfea50647b72e7e167ed724d232a95d2f2b38301f0603551d23041830168014452bfea50647b72e7e167ed724d232a95d2f2b38300f0603551d130101ff040530030101ff300d06092a864886f70d010105050003820101003ddaf07bc3f14e5c0a389123b0feb50f239e9f8ae6f5f6295ac7012cc6ebbcb0e68aa40747b8e2d4d9cfc9bc68d24616bfab4de337fd2cedff6759215adaba16890d9d568138bfbce64ee846be79942ecc47fffb84cd25aab61fde1c82123e08d07f5ac33fa25606a3591ac2b5ddd85e7db6ba1ca14ae6b0293f9a48b71b33938ea98f5a7bf12b367676b6baed9a6763dd8e1138c23b949682ea2cc0d7c70fe4b28550854321e08d0b214a3513897e50b3a15e0d8e99a363a52ffe1932f78f3e1238256990b2171a018565f8b4979e04dbb7fbdb30e7731191c336aed79e4e149
 6428d3bd82c7ac24bfa06927aaa56a883fb6d3115c68176ea46fe35f7b4c214'
+
+old_replicant-6.0-0001_com_android_providers_telephony_DER_cert_key='3082041930820301a003020102020900ae64c5043debd5da300d06092a864886f70d01010505003081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e6465301e170d3136303230353232343835345a170d3433303632333232343835345a3081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e646530820122300d06092a864886f70d01010105000382010f003082010a0282010100c2c26510c65c1a00f7dfdff568c2a4492a3998bf4590fa00dfb4
 
27e01ba136b65f0b7bcab3d491677c422f087b97051a8ee2281dfbe4c5e6a1372bef4bf8b88b9f4c7a4a833b398668197be19e0201d23f07fbc179916f5b8dd025cc12651a650cf10ba0fd27d329ca778c06431dc6a46525af9cc44ce5b03005a7598c50c1f9327d22ca8f862eefd6eb6ef6a5c26e1bf61c27969a86e3a77a6679b05fbe39c73f76cfdf5834a0432135954c8c3f0c4162a86a988d901e9183c92bee237a0dbfd4a030ee6279e2a672b464b72cf308de1e08f79bd4ceafe5476c1033ec4d4e71d0a6b12c1c75161d4ea1f97ad8650f3475a1185720e06b01cc5f8403a98b7cf10203010001a350304e301d0603551d0e0416041499dc251cdd6e7448718d5a02975d690b1bacbe8c301f0603551d2304183016801499dc251cdd6e7448718d5a02975d690b1bacbe8c300c0603551d13040530030101ff300d06092a864886f70d01010505000382010100526932f128e0af663d6bc88a37088c7d63b6bf2c676d9b80d5797d2ea038abc6efdc683a74d1088b3590ece813126adac23279c7b6f04e2d3dd2864319e81c680d69cacbd8dc8b9b029db0e036fe3f9ddb5104ec44637dcd07d2f27549c4c458602a28d4396d87e4f1b748c22952145a4ea077cedfc033f2497755654a3d6bd5d4ac9e29bf3416e4b21fb7dd7d10e76e4145ae18e2955881c2cdc9c6037
 
0d588922692a9e0fd33b7d4a9e8179eefc492f7c713b4289616bcb795665146d492e42565d33c4b65392dfe67996f367f04564aa58bf017f1e863a28ae46fdbd1cc010934b51bb487e329b6a87d330b976c0c5757287e308de9e37923b5319e7cb167'
+
+old_replicant-6.0-0003_com_android_providers_telephony_DER_cert_key='3082041930820301a003020102020900ae64c5043debd5da300d06092a864886f70d01010505003081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e6465301e170d3136303230353232343835345a170d3433303632333232343835345a3081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e646530820122300d06092a864886f70d01010105000382010f003082010a0282010100c2c26510c65c1a00f7dfdff568c2a4492a3998bf4590fa00dfb4
 
27e01ba136b65f0b7bcab3d491677c422f087b97051a8ee2281dfbe4c5e6a1372bef4bf8b88b9f4c7a4a833b398668197be19e0201d23f07fbc179916f5b8dd025cc12651a650cf10ba0fd27d329ca778c06431dc6a46525af9cc44ce5b03005a7598c50c1f9327d22ca8f862eefd6eb6ef6a5c26e1bf61c27969a86e3a77a6679b05fbe39c73f76cfdf5834a0432135954c8c3f0c4162a86a988d901e9183c92bee237a0dbfd4a030ee6279e2a672b464b72cf308de1e08f79bd4ceafe5476c1033ec4d4e71d0a6b12c1c75161d4ea1f97ad8650f3475a1185720e06b01cc5f8403a98b7cf10203010001a350304e301d0603551d0e0416041499dc251cdd6e7448718d5a02975d690b1bacbe8c301f0603551d2304183016801499dc251cdd6e7448718d5a02975d690b1bacbe8c300c0603551d13040530030101ff300d06092a864886f70d01010505000382010100526932f128e0af663d6bc88a37088c7d63b6bf2c676d9b80d5797d2ea038abc6efdc683a74d1088b3590ece813126adac23279c7b6f04e2d3dd2864319e81c680d69cacbd8dc8b9b029db0e036fe3f9ddb5104ec44637dcd07d2f27549c4c458602a28d4396d87e4f1b748c22952145a4ea077cedfc033f2497755654a3d6bd5d4ac9e29bf3416e4b21fb7dd7d10e76e4145ae18e2955881c2cdc9c6037
 
0d588922692a9e0fd33b7d4a9e8179eefc492f7c713b4289616bcb795665146d492e42565d33c4b65392dfe67996f367f04564aa58bf017f1e863a28ae46fdbd1cc010934b51bb487e329b6a87d330b976c0c5757287e308de9e37923b5319e7cb167'
+
+old_replicant-6.0-0002_com_android_providers_telephony_DER_cert_key='3082041930820301a003020102020900ae64c5043debd5da300d06092a864886f70d01010505003081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e6465301e170d3136303230353232343835345a170d3433303632333232343835345a3081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e646530820122300d06092a864886f70d01010105000382010f003082010a0282010100c2c26510c65c1a00f7dfdff568c2a4492a3998bf4590fa00dfb4
 
27e01ba136b65f0b7bcab3d491677c422f087b97051a8ee2281dfbe4c5e6a1372bef4bf8b88b9f4c7a4a833b398668197be19e0201d23f07fbc179916f5b8dd025cc12651a650cf10ba0fd27d329ca778c06431dc6a46525af9cc44ce5b03005a7598c50c1f9327d22ca8f862eefd6eb6ef6a5c26e1bf61c27969a86e3a77a6679b05fbe39c73f76cfdf5834a0432135954c8c3f0c4162a86a988d901e9183c92bee237a0dbfd4a030ee6279e2a672b464b72cf308de1e08f79bd4ceafe5476c1033ec4d4e71d0a6b12c1c75161d4ea1f97ad8650f3475a1185720e06b01cc5f8403a98b7cf10203010001a350304e301d0603551d0e0416041499dc251cdd6e7448718d5a02975d690b1bacbe8c301f0603551d2304183016801499dc251cdd6e7448718d5a02975d690b1bacbe8c300c0603551d13040530030101ff300d06092a864886f70d01010505000382010100526932f128e0af663d6bc88a37088c7d63b6bf2c676d9b80d5797d2ea038abc6efdc683a74d1088b3590ece813126adac23279c7b6f04e2d3dd2864319e81c680d69cacbd8dc8b9b029db0e036fe3f9ddb5104ec44637dcd07d2f27549c4c458602a28d4396d87e4f1b748c22952145a4ea077cedfc033f2497755654a3d6bd5d4ac9e29bf3416e4b21fb7dd7d10e76e4145ae18e2955881c2cdc9c6037
 
0d588922692a9e0fd33b7d4a9e8179eefc492f7c713b4289616bcb795665146d492e42565d33c4b65392dfe67996f367f04564aa58bf017f1e863a28ae46fdbd1cc010934b51bb487e329b6a87d330b976c0c5757287e308de9e37923b5319e7cb167'
+
+new_com_android_providers_telephony_DER_cert_key='308203d4308202bca003020102020900a7eed21fab90ce78300d06092a864886f70d0101050500307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e301e170d3230303732313032333931365a170d3437313230373032333931365a307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e30820122300d06092a864886f70d01010105000382010f003082010a0282010100d4e89e2e93852da872bd4183a09841d069cb35f27ba9ff95120e7dbd6e74ca1159023d07b1e141cd74b2f8f56d908000baa2325df3f0820d2501f9cf879a16da0bc1a96e9d4d90b50cf1fce05837142aaed93f9f117a5d45a7e95a32c6da859f82ea565a0f5883f407f45b7
 
d2db4cc2c68976bf3a99957f1dda26b5bf1333dd50c47cef1b99989792a130b554282ffe592a9dfb7cc7126bb7ee37b17cf938a339e886b76ab74121d071ae5c2f0c23f8e85a77e75af1d7e453a52060ef30c18916892db45026d700e9b12966b8b296c967767002878e635ca0eb615e799349b90e1f998fe05164afbf7b23e4d89099a7fa60756b7a1da42fcfdff09565e117d950203010001a3533051301d0603551d0e04160414139d988da8c93805513d90849241c8cc06a12a15301f0603551d23041830168014139d988da8c93805513d90849241c8cc06a12a15300f0603551d130101ff040530030101ff300d06092a864886f70d0101050500038201010080d4c43e052da860ff66ca8b3b4b2f62ab9fb37905ad831553822d01fd28c3a9d2fd9106ee1f03f3bcc7387aca126873fc00ee45246910054a96f39998e4a368d6895e32c0cf64c18da12b574642b3df66c051aa7749159ca041426403850c6da062beca9d94f800a6f2cb1f0498c29766d3e9773fbd422a35b414fd31daea081c001ad69a701b1495380ee53601d741f88abeafe535d2cae30216493d4d0036ea77f4348b2692c3759e9cb2157d4ce9460e68d38e02fb5861d5cefad992a2ff7de6e20e8588bf552e27069141ca5d6498ee4730863ecb1642932a35baab5e0a5f445d7cd48c3eb0519b43e1
 cf78e5b0b501a9b54dda498162a3eaeccb61cc28'
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc2_com_android_providers_telephony_DER_cert_key}/${new_com_android_providers_telephony_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc1_com_android_providers_telephony_DER_cert_key}/${new_com_android_providers_telephony_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0001_com_android_providers_telephony_DER_cert_key}/${new_com_android_providers_telephony_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0003_com_android_providers_telephony_DER_cert_key}/${new_com_android_providers_telephony_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0002_com_android_providers_telephony_DER_cert_key}/${new_com_android_providers_telephony_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+old_replicant-6.0-0004-rc2_com_android_contacts_DER_cert_key='308203d4308202bca00302010202090097bae6a0367d8df8300d06092a864886f70d0101050500307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e301e170d3230303732313032333931365a170d3437313230373032333931365a307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e30820122300d06092a864886f70d01010105000382010f003082010a0282010100942164fd93070520365c44c24e216e0fb43d3b2c318a19539b05bb4ddcdfbc10106d08de15fbf56657715decadf966b5ecbbc614c98ade446a10caad759e8f46b5939b70c976fb0ecd3395e5abc2c777538e0e9ec3e7efdf32d87f1e2c6bd6b6ad22c437d02
 
19d633d6848954aedbec0b5aad997019a670634f7ac389a808274d6d31e6a4eb6d8f969fccb502a93d2efd120e908b55332ce0a054d514ffe5050548977ea0c5773fd8e7ced6bbbfb3af5c83c1575da8bff5865f59e4c9392af0f15fc603e9be369a0054de9c7c8e9e9ee770db2e07fd67813ec6e43b41a3a342fb23b47fc1f26ab588e462b70eb9ebcbfae95837e5fec4962590921153fef305f0203010001a3533051301d0603551d0e04160414328c27f9a4f94c7ba1b2019e9a554eca0ad21c07301f0603551d23041830168014328c27f9a4f94c7ba1b2019e9a554eca0ad21c07300f0603551d130101ff040530030101ff300d06092a864886f70d010105050003820101005bf8c7f7091efc25c5990ccc8b37122b2c22dedde33caa6f68d19e05736032f9c87fd104f6cc2f9c56f1bc1f213eded9f9df5d979133a53aaa180bd12e29fc44c1ff62b014c8d6ff00a6523189744d35ca2d7e4437ae43aaec1b8b7aec18d1dcd9827bc55405cb7c5e1f4401ec9c5df9de2efd6f60f997f53750860ecd3a96170bde2c849338d35a30fc30a74591f89346b6c704bff7f44c1e4140ed853a9a6c549fa49deeb61fa47c220156a68ff6d78a69d5203a012ee15bb717a2522dd098118e4d562367827e4c6778bb99b181d38cb945661e182864297e257f250f885f862bc7517d2d
 9e54b687dc0c492a9e3ac659973f1045ab020ef7192128ca2fc7'
+
+old_replicant-6.0-0004-rc1_com_android_contacts_DER_cert_key='308203d4308202bca003020102020900cfc195c1e90278e2300d06092a864886f70d0101050500307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e301e170d3139313132333133303733375a170d3437303431303133303733375a307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e30820122300d06092a864886f70d01010105000382010f003082010a0282010100aa9f735466b27d1ee00a498594fdbf1c7e2ce03b336329dadd639afa0a2e3ec489b4fff7c9fd5aac45435c2cdae49c42539bce82fc8c05c46bf898d50d8aa32dd83f9a3e46ad65296ac7d2d9a98dfbf7b1ca7699f3a79425509af122aa985467ae14b5fdb7a
 
02a3232c9355727582af54c576edcdc1bf196618fc16284e971ff40f6b5af08f1640f736d08f64c3a2b5bbde7b455d0818b2bbf4c7425fd351439d736df917392ce4f728a4c78c0cf68eb91a1d2d6c8e6d63adbd46bcb5f08b6e17b6a07e71cd1088f9e044f12a68928761c1b7600f568edcdceb121278ef98e529992bc3fd45aa9a2b45c2e115b82f4f934d42b3d673ebb86747dde77216ee5c70203010001a3533051301d0603551d0e04160414e67a8a64a547b490b823dddb03d5ed268be9277a301f0603551d23041830168014e67a8a64a547b490b823dddb03d5ed268be9277a300f0603551d130101ff040530030101ff300d06092a864886f70d010105050003820101006a88eb3e9372d267084b887ed487c17b2765a3c0d9ab7d0d00c036c8bdf1830c1e326d3a6cdc338fbc054ce87bfb7b7375776be0b119d703b56ab0d341d4156ea93f9dbdfc1a3203b931873fb655e6d20dee87450ce58aaa6ef157e3a905aa97fde8b4bda8f2718c7ba3ddc59cfb556b8834509affcae11d1b1739fa4bc8dec236152821b74ad875a41db406e9adb8c18284dcff006ea7bf84e35f80d47f416c4a988259c90068a4ffd61442dcbc0aaa0bbaeea9231a49d327a188c0d11c471f4bdb46b533eb7026c8b859bde2e09f25a866d0642e420f5276cc38e3b7e1fa621eaaa585e054
 b71382ba48021954ec68fef422a407fa351a4dbba9f787d31a2b'
+
+old_replicant-6.0-0001_com_android_contacts_DER_cert_key='3082041930820301a003020102020900e15edc4092f9e6d9300d06092a864886f70d01010505003081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e6465301e170d3136303230353232343835375a170d3433303632333232343835375a3081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e646530820122300d06092a864886f70d01010105000382010f003082010a0282010100c9e86c297861e64fefaca777a37923add87c3ff5a5378d9b48fab3ff6061238
 
4c35731bed96da42a9acbefedcfb2c0bbc82f6917c60b6155b3cc5798b4263d263d41f91cbb8bf8ad475d948786de0d15926137451898336f4e1cd3e0fb760caa546823c4c3df04a33ddfd9e2eab0307307574984e0d82a45c171af56d2a0863fae572ae59cb87e1526f3f4dc15cc30cff0e478bde608ca4b0b1d3617310157ff646c9706805d2db8642019ccaaac1f85106208b560382d12f08c61d595dad474a59fefea63d2c672be82ce204bf846b391ed463f9dea0e48a03786f87e37f9fd42cf979f3b1a46999dc9b513eb19cf24ac908fd6a49cec1d9fb99c7077f2f3150203010001a350304e301d0603551d0e04160414328ee4133332ddf032eab1c07fd7c79436df131d301f0603551d23041830168014328ee4133332ddf032eab1c07fd7c79436df131d300c0603551d13040530030101ff300d06092a864886f70d010105050003820101001ad2deae559e1e641cb14d663fe942891a153884d2b86e4e3a7da7192e4b2f127d2a08dace1110aeb2906a87ccac541d160b9f80b69a180f6217b5c4d410f7d955e9c188f103b29e3170d96e78746a1584a6eac334ed80669caa5e1791f7094168430aa89907acd219996f95d7fcbc94be35d4b2fc99c59cdcc525e43f454b5779058319448ec42481180f6163c413ccc4096ab141408b8179ed2e29b0559df8f65f9d
 
5983eda5b33acaf90ae664862453067bee886cd3bd8d0db4ca50d63d5eac0347e8fb59d4fceabaab97d3b453fb05c1bf9772884756bb2b1d958de28962faa86e74a6685ec01127926280c1893e4397f89240ca85075f5cf2ca83419f6d'
+
+old_replicant-6.0-0003_com_android_contacts_DER_cert_key='3082041930820301a003020102020900e15edc4092f9e6d9300d06092a864886f70d01010505003081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e6465301e170d3136303230353232343835375a170d3433303632333232343835375a3081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e646530820122300d06092a864886f70d01010105000382010f003082010a0282010100c9e86c297861e64fefaca777a37923add87c3ff5a5378d9b48fab3ff6061238
 
4c35731bed96da42a9acbefedcfb2c0bbc82f6917c60b6155b3cc5798b4263d263d41f91cbb8bf8ad475d948786de0d15926137451898336f4e1cd3e0fb760caa546823c4c3df04a33ddfd9e2eab0307307574984e0d82a45c171af56d2a0863fae572ae59cb87e1526f3f4dc15cc30cff0e478bde608ca4b0b1d3617310157ff646c9706805d2db8642019ccaaac1f85106208b560382d12f08c61d595dad474a59fefea63d2c672be82ce204bf846b391ed463f9dea0e48a03786f87e37f9fd42cf979f3b1a46999dc9b513eb19cf24ac908fd6a49cec1d9fb99c7077f2f3150203010001a350304e301d0603551d0e04160414328ee4133332ddf032eab1c07fd7c79436df131d301f0603551d23041830168014328ee4133332ddf032eab1c07fd7c79436df131d300c0603551d13040530030101ff300d06092a864886f70d010105050003820101001ad2deae559e1e641cb14d663fe942891a153884d2b86e4e3a7da7192e4b2f127d2a08dace1110aeb2906a87ccac541d160b9f80b69a180f6217b5c4d410f7d955e9c188f103b29e3170d96e78746a1584a6eac334ed80669caa5e1791f7094168430aa89907acd219996f95d7fcbc94be35d4b2fc99c59cdcc525e43f454b5779058319448ec42481180f6163c413ccc4096ab141408b8179ed2e29b0559df8f65f9d
 
5983eda5b33acaf90ae664862453067bee886cd3bd8d0db4ca50d63d5eac0347e8fb59d4fceabaab97d3b453fb05c1bf9772884756bb2b1d958de28962faa86e74a6685ec01127926280c1893e4397f89240ca85075f5cf2ca83419f6d'
+
+old_replicant-6.0-0002_com_android_contacts_DER_cert_key='3082041930820301a003020102020900e15edc4092f9e6d9300d06092a864886f70d01010505003081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e6465301e170d3136303230353232343835375a170d3433303632333232343835375a3081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e646530820122300d06092a864886f70d01010105000382010f003082010a0282010100c9e86c297861e64fefaca777a37923add87c3ff5a5378d9b48fab3ff6061238
 
4c35731bed96da42a9acbefedcfb2c0bbc82f6917c60b6155b3cc5798b4263d263d41f91cbb8bf8ad475d948786de0d15926137451898336f4e1cd3e0fb760caa546823c4c3df04a33ddfd9e2eab0307307574984e0d82a45c171af56d2a0863fae572ae59cb87e1526f3f4dc15cc30cff0e478bde608ca4b0b1d3617310157ff646c9706805d2db8642019ccaaac1f85106208b560382d12f08c61d595dad474a59fefea63d2c672be82ce204bf846b391ed463f9dea0e48a03786f87e37f9fd42cf979f3b1a46999dc9b513eb19cf24ac908fd6a49cec1d9fb99c7077f2f3150203010001a350304e301d0603551d0e04160414328ee4133332ddf032eab1c07fd7c79436df131d301f0603551d23041830168014328ee4133332ddf032eab1c07fd7c79436df131d300c0603551d13040530030101ff300d06092a864886f70d010105050003820101001ad2deae559e1e641cb14d663fe942891a153884d2b86e4e3a7da7192e4b2f127d2a08dace1110aeb2906a87ccac541d160b9f80b69a180f6217b5c4d410f7d955e9c188f103b29e3170d96e78746a1584a6eac334ed80669caa5e1791f7094168430aa89907acd219996f95d7fcbc94be35d4b2fc99c59cdcc525e43f454b5779058319448ec42481180f6163c413ccc4096ab141408b8179ed2e29b0559df8f65f9d
 
5983eda5b33acaf90ae664862453067bee886cd3bd8d0db4ca50d63d5eac0347e8fb59d4fceabaab97d3b453fb05c1bf9772884756bb2b1d958de28962faa86e74a6685ec01127926280c1893e4397f89240ca85075f5cf2ca83419f6d'
+
+new_com_android_contacts_DER_cert_key='308203d4308202bca00302010202090097bae6a0367d8df8300d06092a864886f70d0101050500307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e301e170d3230303732313032333931365a170d3437313230373032333931365a307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e30820122300d06092a864886f70d01010105000382010f003082010a0282010100942164fd93070520365c44c24e216e0fb43d3b2c318a19539b05bb4ddcdfbc10106d08de15fbf56657715decadf966b5ecbbc614c98ade446a10caad759e8f46b5939b70c976fb0ecd3395e5abc2c777538e0e9ec3e7efdf32d87f1e2c6bd6b6ad22c437d0219d633d6848954aedbec0b5
 
aad997019a670634f7ac389a808274d6d31e6a4eb6d8f969fccb502a93d2efd120e908b55332ce0a054d514ffe5050548977ea0c5773fd8e7ced6bbbfb3af5c83c1575da8bff5865f59e4c9392af0f15fc603e9be369a0054de9c7c8e9e9ee770db2e07fd67813ec6e43b41a3a342fb23b47fc1f26ab588e462b70eb9ebcbfae95837e5fec4962590921153fef305f0203010001a3533051301d0603551d0e04160414328c27f9a4f94c7ba1b2019e9a554eca0ad21c07301f0603551d23041830168014328c27f9a4f94c7ba1b2019e9a554eca0ad21c07300f0603551d130101ff040530030101ff300d06092a864886f70d010105050003820101005bf8c7f7091efc25c5990ccc8b37122b2c22dedde33caa6f68d19e05736032f9c87fd104f6cc2f9c56f1bc1f213eded9f9df5d979133a53aaa180bd12e29fc44c1ff62b014c8d6ff00a6523189744d35ca2d7e4437ae43aaec1b8b7aec18d1dcd9827bc55405cb7c5e1f4401ec9c5df9de2efd6f60f997f53750860ecd3a96170bde2c849338d35a30fc30a74591f89346b6c704bff7f44c1e4140ed853a9a6c549fa49deeb61fa47c220156a68ff6d78a69d5203a012ee15bb717a2522dd098118e4d562367827e4c6778bb99b181d38cb945661e182864297e257f250f885f862bc7517d2d9e54b687dc0c492a9e3ac65
 9973f1045ab020ef7192128ca2fc7'
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc2_com_android_contacts_DER_cert_key}/${new_com_android_contacts_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc1_com_android_contacts_DER_cert_key}/${new_com_android_contacts_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0001_com_android_contacts_DER_cert_key}/${new_com_android_contacts_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0003_com_android_contacts_DER_cert_key}/${new_com_android_contacts_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0002_com_android_contacts_DER_cert_key}/${new_com_android_contacts_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+old_replicant-6.0-0004-rc2_com_android_providers_calendar_DER_cert_key='308203d4308202bca0030201020209009b8fe4a25ae1c98d300d06092a864886f70d0101050500307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e301e170d3230303732313032333931355a170d3437313230373032333931355a307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e30820122300d06092a864886f70d01010105000382010f003082010a0282010100ca66c1805b5f6d2c57548867f3f8623a9365acf199cb761b84eb400daeda272c3b2a3f2049b5c9d8991dbed6d56e153db137c7da9f877cc9369467327764d56b3658204dc384aafe6ab63d060735b0035ca4b5e008ba284fae3ee3cfa7f44982f
 
c7115be523b38e4ebbbc4972d37618dd9b55c6e0c7058ac40868c6a4a60083e4aeaa69168275f5524184cccf71eccbc262e8a764d22ca3a75b1423626e6e050e8a95c7c2daa75f97aaf4fb3ce23cb90d569ef3dd46893cb8185b2313c6c3cc4d246e27e9fb1f82f0cdc76315687df538f78d47bd58ae49e9b2027cfac51fce9e86831dd3f1a1d91f297e015565fd4a5df3bd2837360bbca3159cc6ee043bfcb0203010001a3533051301d0603551d0e04160414572fe2b293b466ee1498a0f451a904f447ce1fa1301f0603551d23041830168014572fe2b293b466ee1498a0f451a904f447ce1fa1300f0603551d130101ff040530030101ff300d06092a864886f70d010105050003820101002458c415e82116bbf924e79f64bb84eaf0d883dbcec3a5992bb32ebebce6a52927398abd3278710e1e20796e7ff62a44cc7b55b69ef82815598108bf345a2980750b1d951881b22da3632f12f0d4dcacf3f5a1119f4121877c9a1787b60956e002922251463d6b0d4193e3d44c38d1d14c8b61f1320bbff84ba9aa20f3aa17471479c9a6edbf67dfbdc869e5eba3530a12d679a6a58f4b659738d0ddf7037c59d57fba4556cc1c590ce15d031a25853c99699d4fdf3a6d20e200a5afcbe7185d2dff6a3f8e15ee99def6d753044abcc4c7f5f21c6c34ab7b1c2e90f230558a663f
 0450e0fb8186a15bc52f2165582aec0c4e067ffdea948497b725c4b73d8fe1'
+
+old_replicant-6.0-0004-rc1_com_android_providers_calendar_DER_cert_key='308203d4308202bca003020102020900dcd9eb6ba2cee28f300d06092a864886f70d0101050500307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e301e170d3139313132333133303733365a170d3437303431303133303733365a307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e30820122300d06092a864886f70d01010105000382010f003082010a0282010100c1d226b483f6ab208eeb784c5478847b62a593afbdf2011fd0026610ad90fb9b354c696f311a8f9b13fa6a772c7bf23189036f40a26a4fc5548cbd9cb09bbcfc42ef0bfcd1046a7912106141a9399885cf1f7d366d675e347495a9908e0b16fb8
 
fe91641c109de1a37fdff31b4138b75991783f05a4c5df20d0520aec9a769f55cb098cd850f632e206f1a00fd4a99b113cf009e43b4e4de3e2cff39a4ea5e7303a3095fbd6f9027b240289d9be66947147aad288ce096e48a1a16662e7fc5cb65009bf5100e8c1ad972c435f1df5fb11fc5b1fc645ee3019d94ab7507be868a2e889f9a934c2beb301d47687bbc506f510f33b5ef14f2b5150b62b083e204d90203010001a3533051301d0603551d0e041604147e86d4abc6de75eadc7be80278ce9347526b9a64301f0603551d230418301680147e86d4abc6de75eadc7be80278ce9347526b9a64300f0603551d130101ff040530030101ff300d06092a864886f70d0101050500038201010066af20253955ef1e5d35c9f5afc0a3f1bccc0e637d5130ab6c6cb1ccd9955d9202f49ff29a63567d8fa444306ef7b27be427bec451b6824ee5f076ad3678411fd9686e79b86a0c224e9f5bb1cfa3b8d1e33616ff9c45076ee5c7f34824738daf65ffde9a106634a8b51bed11825b7dacd5cdc4b714fa463c3d6c04c5b6c8f27690731e90ceaa2db386695864bdedb38813ade2fe3542dcf958acd2001bece55ee2c2086c8a9f2256cd9871a40412f5106514d5573325c030cd1440affb86a876f03f5da5e04d79d9b5a5c0bd51c27a62c717ca8b74f68cde2988c17dde35c18bcd
 4dbd77e3a54754b298cdf46750588fedc11df85780206da79534bf5f9b0290'
+
+old_replicant-6.0-0001_com_android_providers_calendar_DER_cert_key='3082041930820301a0030201020209008323ba8954b173d7300d06092a864886f70d01010505003081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e6465301e170d3136303230353232343834395a170d3433303632333232343834395a3081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e646530820122300d06092a864886f70d01010105000382010f003082010a0282010100e099ddc3bbc7be0b9a4f81783011e7ada96c12ef02dec48e1093f
 
aa2049584e6d647ba9a667290a6e5ca10b2cd962e5f2638446d464f1cd4102a202cc6b9d43d27b5f4bb657c514cc59e7b3526c2f29d941e72df0f1ef2d64c2b602e767c1bc8e2ccf85bcb946aca4325a651ae735393b9939db74844ad7ed519f5820c117c514c0829177e110ed82e29a6ac335fc2ca5bdb496ca9f23c02149b603b551168a9979a553553c93b2c509a2f7a3ce3e5c101d8635d0887f4ff4944a9eb1d6653942ac1709095d1bda51f73fb8712bef7593029b025eba84566a683f14a5ceec6fd9f3a4d1e320f13ae6625306a5fc0177b31d9477fd8b435d20ef38921b6c462ed0203010001a350304e301d0603551d0e041604145fb8b8016616eddef6380513bb6fcf5cfcc87915301f0603551d230418301680145fb8b8016616eddef6380513bb6fcf5cfcc87915300c0603551d13040530030101ff300d06092a864886f70d010105050003820101001525144ba1689a3fedf61a5e94f2b214d91197cf6b1e1be07d19ed676511dbe071d62f6d7cec05772a4ec719fea3dc152beebe6bb1247d2ac9cde11fadf12b273e7c06c0e132505e7617d7d32b49c1880b51490f90ac0e697152a3f8a28e756ac7694b3f30013f5c4ca41c76fa1028b343067dbbe0017279cbb6d839c6eba58b14e3da3441793616f927f25c5f0eed6a5c17768c42c29529b049602eb05a
 
1a690f6bcd1281a5d0fdf9f6499faa6c816023d36c0d8406582b98f52b3748184d0422a63a8643db46ebdb6cf8dcd0b589d8478930215da04804e4e639a407b8d3cf164ad6124b32a5314a2846da8d9ba321e99cedd9e2e5a5ee300e63ce36736b45'
+
+old_replicant-6.0-0003_com_android_providers_calendar_DER_cert_key='3082041930820301a0030201020209008323ba8954b173d7300d06092a864886f70d01010505003081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e6465301e170d3136303230353232343834395a170d3433303632333232343834395a3081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e646530820122300d06092a864886f70d01010105000382010f003082010a0282010100e099ddc3bbc7be0b9a4f81783011e7ada96c12ef02dec48e1093f
 
aa2049584e6d647ba9a667290a6e5ca10b2cd962e5f2638446d464f1cd4102a202cc6b9d43d27b5f4bb657c514cc59e7b3526c2f29d941e72df0f1ef2d64c2b602e767c1bc8e2ccf85bcb946aca4325a651ae735393b9939db74844ad7ed519f5820c117c514c0829177e110ed82e29a6ac335fc2ca5bdb496ca9f23c02149b603b551168a9979a553553c93b2c509a2f7a3ce3e5c101d8635d0887f4ff4944a9eb1d6653942ac1709095d1bda51f73fb8712bef7593029b025eba84566a683f14a5ceec6fd9f3a4d1e320f13ae6625306a5fc0177b31d9477fd8b435d20ef38921b6c462ed0203010001a350304e301d0603551d0e041604145fb8b8016616eddef6380513bb6fcf5cfcc87915301f0603551d230418301680145fb8b8016616eddef6380513bb6fcf5cfcc87915300c0603551d13040530030101ff300d06092a864886f70d010105050003820101001525144ba1689a3fedf61a5e94f2b214d91197cf6b1e1be07d19ed676511dbe071d62f6d7cec05772a4ec719fea3dc152beebe6bb1247d2ac9cde11fadf12b273e7c06c0e132505e7617d7d32b49c1880b51490f90ac0e697152a3f8a28e756ac7694b3f30013f5c4ca41c76fa1028b343067dbbe0017279cbb6d839c6eba58b14e3da3441793616f927f25c5f0eed6a5c17768c42c29529b049602eb05a
 
1a690f6bcd1281a5d0fdf9f6499faa6c816023d36c0d8406582b98f52b3748184d0422a63a8643db46ebdb6cf8dcd0b589d8478930215da04804e4e639a407b8d3cf164ad6124b32a5314a2846da8d9ba321e99cedd9e2e5a5ee300e63ce36736b45'
+
+old_replicant-6.0-0002_com_android_providers_calendar_DER_cert_key='3082041930820301a0030201020209008323ba8954b173d7300d06092a864886f70d01010505003081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e6465301e170d3136303230353232343834395a170d3433303632333232343834395a3081a2310b30090603550406130241553110300e06035504080c0742617661726961310f300d06035504070c064d756e69636831123010060355040a0c095265706c6963616e7431123010060355040b0c095265706c6963616e743123302106035504030c1a576f6c6667616e6720576965646d6579657220202020202020203123302106092a864886f70d0109011614776f6c6667697440776965646d657965722e646530820122300d06092a864886f70d01010105000382010f003082010a0282010100e099ddc3bbc7be0b9a4f81783011e7ada96c12ef02dec48e1093f
 
aa2049584e6d647ba9a667290a6e5ca10b2cd962e5f2638446d464f1cd4102a202cc6b9d43d27b5f4bb657c514cc59e7b3526c2f29d941e72df0f1ef2d64c2b602e767c1bc8e2ccf85bcb946aca4325a651ae735393b9939db74844ad7ed519f5820c117c514c0829177e110ed82e29a6ac335fc2ca5bdb496ca9f23c02149b603b551168a9979a553553c93b2c509a2f7a3ce3e5c101d8635d0887f4ff4944a9eb1d6653942ac1709095d1bda51f73fb8712bef7593029b025eba84566a683f14a5ceec6fd9f3a4d1e320f13ae6625306a5fc0177b31d9477fd8b435d20ef38921b6c462ed0203010001a350304e301d0603551d0e041604145fb8b8016616eddef6380513bb6fcf5cfcc87915301f0603551d230418301680145fb8b8016616eddef6380513bb6fcf5cfcc87915300c0603551d13040530030101ff300d06092a864886f70d010105050003820101001525144ba1689a3fedf61a5e94f2b214d91197cf6b1e1be07d19ed676511dbe071d62f6d7cec05772a4ec719fea3dc152beebe6bb1247d2ac9cde11fadf12b273e7c06c0e132505e7617d7d32b49c1880b51490f90ac0e697152a3f8a28e756ac7694b3f30013f5c4ca41c76fa1028b343067dbbe0017279cbb6d839c6eba58b14e3da3441793616f927f25c5f0eed6a5c17768c42c29529b049602eb05a
 
1a690f6bcd1281a5d0fdf9f6499faa6c816023d36c0d8406582b98f52b3748184d0422a63a8643db46ebdb6cf8dcd0b589d8478930215da04804e4e639a407b8d3cf164ad6124b32a5314a2846da8d9ba321e99cedd9e2e5a5ee300e63ce36736b45'
+
+new_com_android_providers_calendar_DER_cert_key='308203d4308202bca0030201020209009b8fe4a25ae1c98d300d06092a864886f70d0101050500307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e301e170d3230303732313032333931355a170d3437313230373032333931355a307f310b3009060355040613024e413110300e06035504080c07756e6b6e6f776e3110300e06035504070c07756e6b6e6f776e3110300e060355040a0c07756e6b6e6f776e3110300e060355040b0c07756e6b6e6f776e3110300e06035504030c07756e6b6e6f776e3116301406092a864886f70d0109011607756e6b6e6f776e30820122300d06092a864886f70d01010105000382010f003082010a0282010100ca66c1805b5f6d2c57548867f3f8623a9365acf199cb761b84eb400daeda272c3b2a3f2049b5c9d8991dbed6d56e153db137c7da9f877cc9369467327764d56b3658204dc384aafe6ab63d060735b0035ca4b5e008ba284fae3ee3cfa7f44982fc7115be523b38e4ebbbc497
 
2d37618dd9b55c6e0c7058ac40868c6a4a60083e4aeaa69168275f5524184cccf71eccbc262e8a764d22ca3a75b1423626e6e050e8a95c7c2daa75f97aaf4fb3ce23cb90d569ef3dd46893cb8185b2313c6c3cc4d246e27e9fb1f82f0cdc76315687df538f78d47bd58ae49e9b2027cfac51fce9e86831dd3f1a1d91f297e015565fd4a5df3bd2837360bbca3159cc6ee043bfcb0203010001a3533051301d0603551d0e04160414572fe2b293b466ee1498a0f451a904f447ce1fa1301f0603551d23041830168014572fe2b293b466ee1498a0f451a904f447ce1fa1300f0603551d130101ff040530030101ff300d06092a864886f70d010105050003820101002458c415e82116bbf924e79f64bb84eaf0d883dbcec3a5992bb32ebebce6a52927398abd3278710e1e20796e7ff62a44cc7b55b69ef82815598108bf345a2980750b1d951881b22da3632f12f0d4dcacf3f5a1119f4121877c9a1787b60956e002922251463d6b0d4193e3d44c38d1d14c8b61f1320bbff84ba9aa20f3aa17471479c9a6edbf67dfbdc869e5eba3530a12d679a6a58f4b659738d0ddf7037c59d57fba4556cc1c590ce15d031a25853c99699d4fdf3a6d20e200a5afcbe7185d2dff6a3f8e15ee99def6d753044abcc4c7f5f21c6c34ab7b1c2e90f230558a663f0450e0fb8186a15bc52f216
 5582aec0c4e067ffdea948497b725c4b73d8fe1'
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc2_com_android_providers_calendar_DER_cert_key}/${new_com_android_providers_calendar_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc1_com_android_providers_calendar_DER_cert_key}/${new_com_android_providers_calendar_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0001_com_android_providers_calendar_DER_cert_key}/${new_com_android_providers_calendar_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0003_com_android_providers_calendar_DER_cert_key}/${new_com_android_providers_calendar_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0002_com_android_providers_calendar_DER_cert_key}/${new_com_android_providers_calendar_DER_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+old_replicant-6.0-0004-rc2_com_android_providers_media_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqP93ZdIFXdded7wL7v9iMeftJAXnYAwKRp8mWPQ0PRYPGFCSVql1Ntv3w3WLlqlmLARwDlbs4XUGS+Zim738nEWaah20lJ+lS4kESaPWDCdOaUGuxM/Dirpt2rq0oxa7YWrisJvanQ3pMcxNgHAjDbZQtBCDl3TY5Sf5+M265EnPKuGsiw7hDqLFfWnLTULg1pCGt7MqCOMzlBrm4ANTBREzwTDvgENLKbmCLRLOVZyTK/OMEp3A8wOq/dWhy/bpD+IqIrEY0vxvQcHqxzoL2UpAxPvPfaP0w89Xjk+LXFlqXUqblG0G49kE4O/+wfLCvSrAOLzYwyT5JVWMWmhgDQIDAQAB'
+
+old_replicant-6.0-0004-rc1_com_android_providers_media_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6eNFJC5j9PKKowMmnnqgsO3NQoCJkFbfaFPPbwH2lJ4iFTaTzAo7IxURHfz5Mx+D0MmCwGBwlmj8oC/SMs8gpb7MapfXZncepmTA4JXFJbJpB8mCNBjE8aZEWLQtVTj2RwYhj/kHLORTGf5uTPPhcaLyYdK//hmGcao3yi52RgUPhWTjatXZ9Iotdi7RvjGZwF0oeu1dorfHKiOuqCPHgkt7pw2lPZDtpouY/ZiPupLP5MeV2PGRb2kM/pxqzX9iE+nPYdFG1Q0zleCn/0nhFapBwKgot/uqAXka0jKaRmD/MddKfwBSFsOtXgpRwJZ4IGGh+apFRvZTSn5wL9NrVwIDAQAB'
+
+old_replicant-6.0-0001_com_android_providers_media_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvTwkfG7rlP0WQDWCz37205wYuAUnZco7vnih0tZsKvV7tigyTiawxcCZa+FYmgBchkWjc63kzSVl6jS8nrQWS9hzexLAMclzg1MT6EjC+q1QoNn8KnOVcV+/ch/aS9yfy243byHV2rpQe4s/OyPEvmx015bjlVTYbwpRTz0hWLkcL9F/lpKNeClWyNm+Y8Dk5cpUD5t/7/aN4ijFSyigPzwfa6Dq15TfkVSJ9s0Dmhpe5B8Qto4fZzPwIi+sjhUq2SnXbhlZw5EZXh0vMeyXyuQGyNvpZ9HZ3qFCPgkySLTZvNoyinzkcWmP33YanLKXG5Xn3t/Z0JFrR1PVKsCCAwIDAQAB'
+
+old_replicant-6.0-0003_com_android_providers_media_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvTwkfG7rlP0WQDWCz37205wYuAUnZco7vnih0tZsKvV7tigyTiawxcCZa+FYmgBchkWjc63kzSVl6jS8nrQWS9hzexLAMclzg1MT6EjC+q1QoNn8KnOVcV+/ch/aS9yfy243byHV2rpQe4s/OyPEvmx015bjlVTYbwpRTz0hWLkcL9F/lpKNeClWyNm+Y8Dk5cpUD5t/7/aN4ijFSyigPzwfa6Dq15TfkVSJ9s0Dmhpe5B8Qto4fZzPwIi+sjhUq2SnXbhlZw5EZXh0vMeyXyuQGyNvpZ9HZ3qFCPgkySLTZvNoyinzkcWmP33YanLKXG5Xn3t/Z0JFrR1PVKsCCAwIDAQAB'
+
+old_replicant-6.0-0002_com_android_providers_media_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvTwkfG7rlP0WQDWCz37205wYuAUnZco7vnih0tZsKvV7tigyTiawxcCZa+FYmgBchkWjc63kzSVl6jS8nrQWS9hzexLAMclzg1MT6EjC+q1QoNn8KnOVcV+/ch/aS9yfy243byHV2rpQe4s/OyPEvmx015bjlVTYbwpRTz0hWLkcL9F/lpKNeClWyNm+Y8Dk5cpUD5t/7/aN4ijFSyigPzwfa6Dq15TfkVSJ9s0Dmhpe5B8Qto4fZzPwIi+sjhUq2SnXbhlZw5EZXh0vMeyXyuQGyNvpZ9HZ3qFCPgkySLTZvNoyinzkcWmP33YanLKXG5Xn3t/Z0JFrR1PVKsCCAwIDAQAB'
+
+new_com_android_providers_media_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqP93ZdIFXdded7wL7v9iMeftJAXnYAwKRp8mWPQ0PRYPGFCSVql1Ntv3w3WLlqlmLARwDlbs4XUGS+Zim738nEWaah20lJ+lS4kESaPWDCdOaUGuxM/Dirpt2rq0oxa7YWrisJvanQ3pMcxNgHAjDbZQtBCDl3TY5Sf5+M265EnPKuGsiw7hDqLFfWnLTULg1pCGt7MqCOMzlBrm4ANTBREzwTDvgENLKbmCLRLOVZyTK/OMEp3A8wOq/dWhy/bpD+IqIrEY0vxvQcHqxzoL2UpAxPvPfaP0w89Xjk+LXFlqXUqblG0G49kE4O/+wfLCvSrAOLzYwyT5JVWMWmhgDQIDAQAB'
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc2_com_android_providers_media_PEM_cert_key}/${new_com_android_providers_media_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc1_com_android_providers_media_PEM_cert_key}/${new_com_android_providers_media_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0001_com_android_providers_media_PEM_cert_key}/${new_com_android_providers_media_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0003_com_android_providers_media_PEM_cert_key}/${new_com_android_providers_media_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0002_com_android_providers_media_PEM_cert_key}/${new_com_android_providers_media_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+old_replicant-6.0-0004-rc2_com_android_providers_telephony_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1OieLpOFLahyvUGDoJhB0GnLNfJ7qf+VEg59vW50yhFZAj0HseFBzXSy+PVtkIAAuqIyXfPwgg0lAfnPh5oW2gvBqW6dTZC1DPH84Fg3FCqu2T+fEXpdRafpWjLG2oWfgupWWg9Yg/QH9Ft9LbTMLGiXa/OpmVfx3aJrW/EzPdUMR87xuZmJeSoTC1VCgv/lkqnft8xxJrt+43sXz5OKM56Ia3ardBIdBxrlwvDCP46Fp351rx1+RTpSBg7zDBiRaJLbRQJtcA6bEpZriylslndnACh45jXKDrYV55k0m5Dh+Zj+BRZK+/eyPk2JCZp/pgdWt6HaQvz9/wlWXhF9lQIDAQAB'
+
+old_replicant-6.0-0004-rc1_com_android_providers_telephony_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyrRx1pyLnjg5R31y5v/JDIp0HC8IvnStb9yNlu0iKVK9rH9MwRuaWXSr5p2ZgmeLuw0IrJbSyIqt4dM+PGEus0O8OQ+bYPQDQ3DonPoaCgAvqx+MSln95EVka3BCOvxtpu41M2q4ulkYSnzYEmN6pKa1iJvh7Y1ObwtJuVRhW6ZIuNq6juw8+Ac7z3EliBRsp0wQbhADvQ/jUnqQWA2UOp5aI1/2Xo6MLdPGugdTDsjyfMkaXK1nerrLruGLhaYzgnawCiVg0rOsq5EKSPl/2yBQXcGi0oJ6jg/Yzbp0d7KgE/0HqB3olONG0+BstydHi+DXEtXaJnDkzVKYjrPeywIDAQAB'
+
+old_replicant-6.0-0001_com_android_providers_telephony_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwsJlEMZcGgD339/1aMKkSSo5mL9FkPoA37Qn4BuhNrZfC3vKs9SRZ3xCLwh7lwUajuIoHfvkxeahNyvvS/i4i59MekqDOzmGaBl74Z4CAdI/B/vBeZFvW43QJcwSZRplDPELoP0n0ynKd4wGQx3GpGUlr5zETOWwMAWnWYxQwfkyfSLKj4Yu79brbvalwm4b9hwnlpqG46d6ZnmwX745xz92z99YNKBDITWVTIw/DEFiqGqYjZAekYPJK+4jeg2/1KAw7mJ54qZytGS3LPMI3h4I95vUzq/lR2wQM+xNTnHQprEsHHUWHU6h+XrYZQ80daEYVyDgawHMX4QDqYt88QIDAQAB'
+
+old_replicant-6.0-0003_com_android_providers_telephony_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwsJlEMZcGgD339/1aMKkSSo5mL9FkPoA37Qn4BuhNrZfC3vKs9SRZ3xCLwh7lwUajuIoHfvkxeahNyvvS/i4i59MekqDOzmGaBl74Z4CAdI/B/vBeZFvW43QJcwSZRplDPELoP0n0ynKd4wGQx3GpGUlr5zETOWwMAWnWYxQwfkyfSLKj4Yu79brbvalwm4b9hwnlpqG46d6ZnmwX745xz92z99YNKBDITWVTIw/DEFiqGqYjZAekYPJK+4jeg2/1KAw7mJ54qZytGS3LPMI3h4I95vUzq/lR2wQM+xNTnHQprEsHHUWHU6h+XrYZQ80daEYVyDgawHMX4QDqYt88QIDAQAB'
+
+old_replicant-6.0-0002_com_android_providers_telephony_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwsJlEMZcGgD339/1aMKkSSo5mL9FkPoA37Qn4BuhNrZfC3vKs9SRZ3xCLwh7lwUajuIoHfvkxeahNyvvS/i4i59MekqDOzmGaBl74Z4CAdI/B/vBeZFvW43QJcwSZRplDPELoP0n0ynKd4wGQx3GpGUlr5zETOWwMAWnWYxQwfkyfSLKj4Yu79brbvalwm4b9hwnlpqG46d6ZnmwX745xz92z99YNKBDITWVTIw/DEFiqGqYjZAekYPJK+4jeg2/1KAw7mJ54qZytGS3LPMI3h4I95vUzq/lR2wQM+xNTnHQprEsHHUWHU6h+XrYZQ80daEYVyDgawHMX4QDqYt88QIDAQAB'
+
+new_com_android_providers_telephony_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1OieLpOFLahyvUGDoJhB0GnLNfJ7qf+VEg59vW50yhFZAj0HseFBzXSy+PVtkIAAuqIyXfPwgg0lAfnPh5oW2gvBqW6dTZC1DPH84Fg3FCqu2T+fEXpdRafpWjLG2oWfgupWWg9Yg/QH9Ft9LbTMLGiXa/OpmVfx3aJrW/EzPdUMR87xuZmJeSoTC1VCgv/lkqnft8xxJrt+43sXz5OKM56Ia3ardBIdBxrlwvDCP46Fp351rx1+RTpSBg7zDBiRaJLbRQJtcA6bEpZriylslndnACh45jXKDrYV55k0m5Dh+Zj+BRZK+/eyPk2JCZp/pgdWt6HaQvz9/wlWXhF9lQIDAQAB'
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc2_com_android_providers_telephony_PEM_cert_key}/${new_com_android_providers_telephony_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc1_com_android_providers_telephony_PEM_cert_key}/${new_com_android_providers_telephony_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0001_com_android_providers_telephony_PEM_cert_key}/${new_com_android_providers_telephony_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0003_com_android_providers_telephony_PEM_cert_key}/${new_com_android_providers_telephony_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0002_com_android_providers_telephony_PEM_cert_key}/${new_com_android_providers_telephony_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+old_replicant-6.0-0004-rc2_com_android_contacts_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlCFk/ZMHBSA2XETCTiFuD7Q9OywxihlTmwW7TdzfvBAQbQjeFfv1ZldxXeyt+Wa17LvGFMmK3kRqEMqtdZ6PRrWTm3DJdvsOzTOV5avCx3dTjg6ew+fv3zLYfx4sa9a2rSLEN9AhnWM9aEiVSu2+wLWq2ZcBmmcGNPesOJqAgnTW0x5qTrbY+Wn8y1Aqk9Lv0SDpCLVTMs4KBU1RT/5QUFSJd+oMV3P9jnzta7v7OvXIPBV12ov/WGX1nkyTkq8PFfxgPpvjaaAFTenHyOnp7ncNsuB/1ngT7G5DtBo6NC+yO0f8HyarWI5GK3Drnry/rpWDfl/sSWJZCSEVP+8wXwIDAQAB'
+
+old_replicant-6.0-0004-rc1_com_android_contacts_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqp9zVGayfR7gCkmFlP2/HH4s4DszYyna3WOa+gouPsSJtP/3yf1arEVDXCza5JxCU5vOgvyMBcRr+JjVDYqjLdg/mj5GrWUpasfS2amN+/exynaZ86eUJVCa8SKqmFRnrhS1/begKjIyyTVXJ1gq9UxXbtzcG/GWYY/BYoTpcf9A9rWvCPFkD3NtCPZMOitbvee0VdCBiyu/THQl/TUUOdc235Fzks5PcopMeMDPaOuRodLWyObWOtvUa8tfCLbhe2oH5xzRCI+eBE8SpokodhwbdgD1aO3NzrEhJ475jlKZkrw/1FqporRcLhFbgvT5NNQrPWc+u4Z0fd53IW7lxwIDAQAB'
+
+old_replicant-6.0-0001_com_android_contacts_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyehsKXhh5k/vrKd3o3kjrdh8P/WlN42bSPqz/2BhI4TDVzG+2W2kKprL7+3PssC7yC9pF8YLYVWzzFeYtCY9Jj1B+Ry7i/itR12Uh4beDRWSYTdFGJgzb04c0+D7dgyqVGgjxMPfBKM939ni6rAwcwdXSYTg2CpFwXGvVtKghj+uVyrlnLh+FSbz9NwVzDDP8OR4veYIyksLHTYXMQFX/2RslwaAXS24ZCAZzKqsH4UQYgi1YDgtEvCMYdWV2tR0pZ/v6mPSxnK+gs4gS/hGs5HtRj+d6g5IoDeG+H43+f1Cz5efOxpGmZ3JtRPrGc8krJCP1qSc7B2fuZxwd/LzFQIDAQAB'
+
+old_replicant-6.0-0003_com_android_contacts_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyehsKXhh5k/vrKd3o3kjrdh8P/WlN42bSPqz/2BhI4TDVzG+2W2kKprL7+3PssC7yC9pF8YLYVWzzFeYtCY9Jj1B+Ry7i/itR12Uh4beDRWSYTdFGJgzb04c0+D7dgyqVGgjxMPfBKM939ni6rAwcwdXSYTg2CpFwXGvVtKghj+uVyrlnLh+FSbz9NwVzDDP8OR4veYIyksLHTYXMQFX/2RslwaAXS24ZCAZzKqsH4UQYgi1YDgtEvCMYdWV2tR0pZ/v6mPSxnK+gs4gS/hGs5HtRj+d6g5IoDeG+H43+f1Cz5efOxpGmZ3JtRPrGc8krJCP1qSc7B2fuZxwd/LzFQIDAQAB'
+
+old_replicant-6.0-0002_com_android_contacts_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyehsKXhh5k/vrKd3o3kjrdh8P/WlN42bSPqz/2BhI4TDVzG+2W2kKprL7+3PssC7yC9pF8YLYVWzzFeYtCY9Jj1B+Ry7i/itR12Uh4beDRWSYTdFGJgzb04c0+D7dgyqVGgjxMPfBKM939ni6rAwcwdXSYTg2CpFwXGvVtKghj+uVyrlnLh+FSbz9NwVzDDP8OR4veYIyksLHTYXMQFX/2RslwaAXS24ZCAZzKqsH4UQYgi1YDgtEvCMYdWV2tR0pZ/v6mPSxnK+gs4gS/hGs5HtRj+d6g5IoDeG+H43+f1Cz5efOxpGmZ3JtRPrGc8krJCP1qSc7B2fuZxwd/LzFQIDAQAB'
+
+new_com_android_contacts_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlCFk/ZMHBSA2XETCTiFuD7Q9OywxihlTmwW7TdzfvBAQbQjeFfv1ZldxXeyt+Wa17LvGFMmK3kRqEMqtdZ6PRrWTm3DJdvsOzTOV5avCx3dTjg6ew+fv3zLYfx4sa9a2rSLEN9AhnWM9aEiVSu2+wLWq2ZcBmmcGNPesOJqAgnTW0x5qTrbY+Wn8y1Aqk9Lv0SDpCLVTMs4KBU1RT/5QUFSJd+oMV3P9jnzta7v7OvXIPBV12ov/WGX1nkyTkq8PFfxgPpvjaaAFTenHyOnp7ncNsuB/1ngT7G5DtBo6NC+yO0f8HyarWI5GK3Drnry/rpWDfl/sSWJZCSEVP+8wXwIDAQAB'
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc2_com_android_contacts_PEM_cert_key}/${new_com_android_contacts_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc1_com_android_contacts_PEM_cert_key}/${new_com_android_contacts_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0001_com_android_contacts_PEM_cert_key}/${new_com_android_contacts_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0003_com_android_contacts_PEM_cert_key}/${new_com_android_contacts_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0002_com_android_contacts_PEM_cert_key}/${new_com_android_contacts_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+old_replicant-6.0-0004-rc2_com_android_providers_calendar_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAymbBgFtfbSxXVIhn8/hiOpNlrPGZy3YbhOtADa7aJyw7Kj8gSbXJ2JkdvtbVbhU9sTfH2p+HfMk2lGcyd2TVazZYIE3DhKr+arY9Bgc1sANcpLXgCLooT64+48+n9EmC/HEVvlI7OOTru8SXLTdhjdm1XG4McFisQIaMakpgCD5K6qaRaCdfVSQYTMz3Hsy8Ji6Kdk0iyjp1sUI2JubgUOipXHwtqnX5eq9Ps84jy5DVae891GiTy4GFsjE8bDzE0kbifp+x+C8M3HYxVoffU4941HvViuSemyAnz6xR/OnoaDHdPxodkfKX4BVWX9Sl3zvSg3Ngu8oxWcxu4EO/ywIDAQAB'
+
+old_replicant-6.0-0004-rc1_com_android_providers_calendar_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwdImtIP2qyCO63hMVHiEe2Klk6+98gEf0AJmEK2Q+5s1TGlvMRqPmxP6ancse/IxiQNvQKJqT8VUjL2csJu8/ELvC/zRBGp5EhBhQak5mIXPH302bWdeNHSVqZCOCxb7j+kWQcEJ3ho3/f8xtBOLdZkXg/BaTF3yDQUgrsmnafVcsJjNhQ9jLiBvGgD9SpmxE88AnkO05N4+LP85pOpecwOjCV+9b5AnskAonZvmaUcUeq0ojOCW5IoaFmYuf8XLZQCb9RAOjBrZcsQ18d9fsR/FsfxkXuMBnZSrdQe+hoouiJ+ak0wr6zAdR2h7vFBvUQ8zte8U8rUVC2Kwg+IE2QIDAQAB'
+
+old_replicant-6.0-0001_com_android_providers_calendar_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4Jndw7vHvguaT4F4MBHnralsEu8C3sSOEJP6ogSVhObWR7qaZnKQpuXKELLNli5fJjhEbUZPHNQQKiAsxrnUPSe19LtlfFFMxZ57NSbC8p2UHnLfDx7y1kwrYC52fBvI4sz4W8uUaspDJaZRrnNTk7mTnbdIRK1+1Rn1ggwRfFFMCCkXfhEO2C4ppqwzX8LKW9tJbKnyPAIUm2A7VRFoqZeaVTVTyTssUJovejzj5cEB2GNdCIf0/0lEqesdZlOUKsFwkJXRvaUfc/uHEr73WTApsCXrqEVmpoPxSlzuxv2fOk0eMg8TrmYlMGpfwBd7MdlHf9i0NdIO84khtsRi7QIDAQAB'
+
+old_replicant-6.0-0003_com_android_providers_calendar_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4Jndw7vHvguaT4F4MBHnralsEu8C3sSOEJP6ogSVhObWR7qaZnKQpuXKELLNli5fJjhEbUZPHNQQKiAsxrnUPSe19LtlfFFMxZ57NSbC8p2UHnLfDx7y1kwrYC52fBvI4sz4W8uUaspDJaZRrnNTk7mTnbdIRK1+1Rn1ggwRfFFMCCkXfhEO2C4ppqwzX8LKW9tJbKnyPAIUm2A7VRFoqZeaVTVTyTssUJovejzj5cEB2GNdCIf0/0lEqesdZlOUKsFwkJXRvaUfc/uHEr73WTApsCXrqEVmpoPxSlzuxv2fOk0eMg8TrmYlMGpfwBd7MdlHf9i0NdIO84khtsRi7QIDAQAB'
+
+old_replicant-6.0-0002_com_android_providers_calendar_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4Jndw7vHvguaT4F4MBHnralsEu8C3sSOEJP6ogSVhObWR7qaZnKQpuXKELLNli5fJjhEbUZPHNQQKiAsxrnUPSe19LtlfFFMxZ57NSbC8p2UHnLfDx7y1kwrYC52fBvI4sz4W8uUaspDJaZRrnNTk7mTnbdIRK1+1Rn1ggwRfFFMCCkXfhEO2C4ppqwzX8LKW9tJbKnyPAIUm2A7VRFoqZeaVTVTyTssUJovejzj5cEB2GNdCIf0/0lEqesdZlOUKsFwkJXRvaUfc/uHEr73WTApsCXrqEVmpoPxSlzuxv2fOk0eMg8TrmYlMGpfwBd7MdlHf9i0NdIO84khtsRi7QIDAQAB'
+
+new_com_android_providers_calendar_PEM_cert_key='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAymbBgFtfbSxXVIhn8/hiOpNlrPGZy3YbhOtADa7aJyw7Kj8gSbXJ2JkdvtbVbhU9sTfH2p+HfMk2lGcyd2TVazZYIE3DhKr+arY9Bgc1sANcpLXgCLooT64+48+n9EmC/HEVvlI7OOTru8SXLTdhjdm1XG4McFisQIaMakpgCD5K6qaRaCdfVSQYTMz3Hsy8Ji6Kdk0iyjp1sUI2JubgUOipXHwtqnX5eq9Ps84jy5DVae891GiTy4GFsjE8bDzE0kbifp+x+C8M3HYxVoffU4941HvViuSemyAnz6xR/OnoaDHdPxodkfKX4BVWX9Sl3zvSg3Ngu8oxWcxu4EO/ywIDAQAB'
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc2_com_android_providers_calendar_PEM_cert_key}/${new_com_android_providers_calendar_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0004-rc1_com_android_providers_calendar_PEM_cert_key}/${new_com_android_providers_calendar_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0001_com_android_providers_calendar_PEM_cert_key}/${new_com_android_providers_calendar_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0003_com_android_providers_calendar_PEM_cert_key}/${new_com_android_providers_calendar_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+sed \
+       
"s/${old_replicant-6.0-0002_com_android_providers_calendar_PEM_cert_key}/${new_com_android_providers_calendar_PEM_cert_key}/g"
 \
+       -i ${PACKAGES}
+
+chmod 660 ${PACKAGES}
+chown system:system ${PACKAGES}
+
+touch ${MIGRATION_DONE}
\ No newline at end of file
diff --git a/prebuilt/common/etc/init.local.rc 
b/prebuilt/common/etc/init.local.rc
index 53f972c9..e8379792 100644
--- a/prebuilt/common/etc/init.local.rc
+++ b/prebuilt/common/etc/init.local.rc
@@ -19,11 +19,18 @@ on init
     chmod 0664 /sys/fs/cgroup/bfqio/rt-display/tasks
     chmod 0220 /sys/fs/cgroup/bfqio/rt-display/cgroup.event_control
 
+service keys-migration /system/bin/sh /system/bin/keys-migration.sh
+    oneshot
+    seclabel u:r:sudaemon:s0
+    disabled
+
 on post-fs-data
     mkdir /data/ssh 0750 root shell
     mkdir /data/ssh/empty 0600 root shell
     mkdir /cache/recovery 0770 system cache
 
+    start keys-migration
+
     # Run sysinit
     start sysinit
 
-- 
2.28.0

_______________________________________________
Replicant mailing list
[email protected]
https://lists.osuosl.org/mailman/listinfo/replicant

Reply via email to