Merge Android 12

Bug: 202323961
Merged-In: Ia0563707c50e37047031f278c89f590eeff2c1cc
Change-Id: I17176817077a865043bc510e343cebda1ef9239b
diff --git a/apex/Android.bp b/apex/Android.bp
index 602f95f..07de17d 100644
--- a/apex/Android.bp
+++ b/apex/Android.bp
@@ -44,6 +44,28 @@
 }
 
 apex_vndk {
+    name: "com.android.vndk.v31",
+    manifest: "apex_manifest.v31.json",
+    key: "com.android.vndk.v31.key",
+    certificate: ":com.android.vndk.v31.certificate",
+    vndk_version: "31",
+    system_ext_specific: true,
+    file_contexts: ":com.android.vndk-file_contexts",
+    updatable: false,
+}
+
+apex_key {
+    name: "com.android.vndk.v31.key",
+    public_key: "com.android.vndk.v31.pubkey",
+    private_key: "com.android.vndk.v31.pem",
+}
+
+android_app_certificate {
+    name: "com.android.vndk.v31.certificate",
+    certificate: "com.android.vndk.v31",
+}
+
+apex_vndk {
     name: "com.android.vndk.v30",
     manifest: "apex_manifest.v30.json",
     key: "com.android.vndk.v30.key",
diff --git a/apex/apex_manifest.v31.json b/apex/apex_manifest.v31.json
new file mode 100644
index 0000000..92a0a28
--- /dev/null
+++ b/apex/apex_manifest.v31.json
@@ -0,0 +1,4 @@
+{
+  "name": "com.android.vndk.v31",
+  "version": 1
+}
diff --git a/apex/com.android.vndk.v31.pem b/apex/com.android.vndk.v31.pem
new file mode 100644
index 0000000..7be0581
--- /dev/null
+++ b/apex/com.android.vndk.v31.pem
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+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
+-----END RSA PRIVATE KEY-----
diff --git a/apex/com.android.vndk.v31.pk8 b/apex/com.android.vndk.v31.pk8
new file mode 100644
index 0000000..1956b3b
--- /dev/null
+++ b/apex/com.android.vndk.v31.pk8
Binary files differ
diff --git a/apex/com.android.vndk.v31.pubkey b/apex/com.android.vndk.v31.pubkey
new file mode 100644
index 0000000..3db2048
--- /dev/null
+++ b/apex/com.android.vndk.v31.pubkey
Binary files differ
diff --git a/apex/com.android.vndk.v31.x509.pem b/apex/com.android.vndk.v31.x509.pem
new file mode 100644
index 0000000..1fac038
--- /dev/null
+++ b/apex/com.android.vndk.v31.x509.pem
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIIGHzCCBAegAwIBAgIUNs5peki5K2P64dt358pJy7kRtAwwDQYJKoZIhvcNAQEL
+BQAwgZ0xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQH
+DA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdBbmRyb2lkMRAwDgYDVQQLDAdBbmRy
+b2lkMRkwFwYDVQQDDBBjb20uYW5kcm9pZC52bmRrMSIwIAYJKoZIhvcNAQkBFhNh
+bmRyb2lkQGFuZHJvaWQuY29tMCAXDTIxMDQxMzE1NTYwM1oYDzQ3NTkwMzEwMTU1
+NjAzWjCBnTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNV
+BAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB0FuZHJvaWQxEDAOBgNVBAsMB0Fu
+ZHJvaWQxGTAXBgNVBAMMEGNvbS5hbmRyb2lkLnZuZGsxIjAgBgkqhkiG9w0BCQEW
+E2FuZHJvaWRAYW5kcm9pZC5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCkcNoRrjQcgtX5R4EuGXfMVCnC8l7FwjB720zze8S38mOI/YPtZCsqeWFm
+SDTpScOAV/0OSqzefWIzRIn2sZPG6kDjhRxRaNifRTEq17MyFH0rnfe2rxNfUNJj
+js5aL9zP07jL8GsDg3h/qPP9m89MGmszty9F8aXSqXg+FZFLtR0whZ1atvTQz1fd
+JYu9+jNhQYz/9ujqtVUh+HkEVj2AZwNNTjQny1g0279gZLd5B1syjwychMm47Bvq
+eWQtmxTXl+sNTgAHqa0/rIUTdSxMk2bLPZdGB2ZyBUPvWf/Pw1dwKjo013skKI9U
+HukTJMhgzvjAZGu5B5kMizkk4zyMraGqvJ6jivIwOG2+5lZKapnzqTewkoTfVRwb
+7ZRXxUjFIRuh234yZlOG80SLKNG2KTB21xnImP9ZuUgZ4Bn80/9l5uLCHPdArGTY
+0xEGNXqlNWrKcJRg4/OhaWU1I67JnUUX8EUdTliGoGQhTBJdBQ5rBmys11OaDVPC
+xQLjc5+3JtXDz4WqQUHeDDjIsgfn60e55/xkjkoUE/Lspi/Cbnae10K0pOArxFXo
+ajOpBNMTHEMmLHz4PHcwNmEymLHHMzT6TXKsXoeHbxQ7b3ispXSxhb45mlLsuae/
+tf6PvqGYXeLBEhXAu9y0FHxK6Ftukhy7Sfk/fSVzte/o2loJGQIDAQABo1MwUTAd
+BgNVHQ4EFgQUTAyOOt24T7PzfBqTtPM7OBkYT/4wHwYDVR0jBBgwFoAUTAyOOt24
+T7PzfBqTtPM7OBkYT/4wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC
+AgEAZpWtqVohh/iaJ/3swLuuqoYy8IZJATAo3Uk/l+3rRrE0QSztEqJQfmblh6ck
+rm9CeAc9YmO0vl9TysSQyiEMawir15G2dHGOfHDpcMopCNyZskr7mk5CjH3k/ArM
+aZjwmYER1sw864RIXNI6ncRIgFfdd6t+5iMOCoePq0EEcE5pzlhmRl+uRf9SmEur
+ibuV+v0uY+T9bvsbDtlJsqZzahDIv9Ahki/bw1RKy0sU+XvzlKAB6WK0zmXiqpl4
+0RHcSL3slJ/jyCIj/YT0Zu/M2zJbt7XzXwpxTK+IKCmfukg02yzHG2EDK71elmxB
+/EFxazQvJ4f4xuzsgovsg6V+qNbg8rgnQcHN53PkmdeWUuBrdzZc7LSn4sTto9b3
+Fdmh54hxrvOz3m0hZZOoJi16cpXcOpUKFWNtiRx+VHc/dGxSd5zWINTOuTD4Fa+x
+BI3zKMBGeBy37rsiLq57cFv7VhCnwaUoU8JUJq66GyrISznqO9DUG2CFza7wqoir
+4wB9jvLt7Cval4/0HAWq75hVdnq8vgGaHygNW3xWm+yY82OqC/op1U2evZgU6NQo
+X7w6WkZIPLVJgsEnWtIqyjAas1VJpqQRavJKES+4e2F+/feN2QtRQ1c+WFhBbBKU
+WT2BgR+Wx2vSOiyY7QZhj4MCsQXZd4UiXeA+mZcRK7JqT8A=
+-----END CERTIFICATE-----