From 0b94777903161813853e9ed23022c101ea2c528b Mon Sep 17 00:00:00 2001 From: Jooyung Han Date: Thu, 24 Aug 2023 16:47:11 +0900 Subject: [PATCH 1/3] Add apexkey "com.android.hardware" This can be shared by many AOSP com.android.hardware.* APEXes defined in hardware/interfaces. Bug: 296524155 Test: m Change-Id: I8d5bf7d9cf8fe4b502af9240027529d61c9776af --- apexkey/Android.bp | 35 +++++++++++++++++ apexkey/com.android.hardware.avbpubkey | Bin 0 -> 1032 bytes apexkey/com.android.hardware.pem | 52 +++++++++++++++++++++++++ apexkey/com.android.hardware.pk8 | Bin 0 -> 2375 bytes apexkey/com.android.hardware.x509.pem | 34 ++++++++++++++++ 5 files changed, 121 insertions(+) create mode 100644 apexkey/Android.bp create mode 100644 apexkey/com.android.hardware.avbpubkey create mode 100644 apexkey/com.android.hardware.pem create mode 100644 apexkey/com.android.hardware.pk8 create mode 100644 apexkey/com.android.hardware.x509.pem diff --git a/apexkey/Android.bp b/apexkey/Android.bp new file mode 100644 index 0000000000..e74717ae3e --- /dev/null +++ b/apexkey/Android.bp @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * 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. + */ + +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "hardware_interfaces_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +apex_key { + name: "com.android.hardware.key", + public_key: "com.android.hardware.avbpubkey", + private_key: "com.android.hardware.pem", +} + +android_app_certificate { + name: "com.android.hardware.certificate", + certificate: "com.android.hardware", +} diff --git a/apexkey/com.android.hardware.avbpubkey b/apexkey/com.android.hardware.avbpubkey new file mode 100644 index 0000000000000000000000000000000000000000..12f0370a6cfe1f92b24da1b0a341678151092efe GIT binary patch literal 1032 zcmV+j1o!&@01yDM1b+dhin95Qlqt8ii(?9A5#FsbXfPpHJbcoB>B#?riGJv7(_-8L{ z!DIH7ZmQ?-O0f=O)hE>ySR!!4kIx+aqgx9OxOY?)dDs*p&Poh2<2yMVuC~YdICkp2 zn2s4yDFwo1K4V)~*xCYMi>sauYPx6BBJPM2bvq@*dU&9Bj>YAdA<9%h`56Ii0gT~ydb^t_6z4A&fAU8shrAqo5pU4FP(USC?rCP=no zpPWkg1AhNK{AbrLt;0EJ7}xStZOi|bijhFsg)TmRoHQ*(DY)7gj$AKD=POx)> z;$D$UnBzJOAsDStezS0bI5~vm-0KAjCe#{xwJSIWq!2RWT!^d}Ak#Zc5Cw!RoRPKZ z);DQJ%Nlh#U68{YibFJ;tYn89u>(J!d~HAFxsTkV`m9Op75on^Hy95ch$0zvJ(Tyf z6kKbBVzN|vQFHY@p|HuIb?>XScPg*;UZ&V_>3)p3mz@P$&3h6^YCRBfTM|qq{1FTR zmTU0F!XwS}aH2n^4e7*6am0US6t9rW0DX}~hVP91zxaN!pBiHEPm)@bTx^w554uq8 z&``+Tqw=uJbg$<*?{;GDYnSl%y?32e(&RVD^HcIj~Ps&^h7S_-0Fom2!2Q%Ne? z%}BVnP4QX?(qr6`L2lG{TB^HpyXX|^6D-gEwjMl1I@^A`I0+@nW2^cB@xd|-D_94m CLiut4 literal 0 HcmV?d00001 diff --git a/apexkey/com.android.hardware.pem b/apexkey/com.android.hardware.pem new file mode 100644 index 0000000000..4d2882b3d5 --- /dev/null +++ b/apexkey/com.android.hardware.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +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 +rWnazDdd1WkHT6+nzA/NX24OzPjiUk0= +-----END PRIVATE KEY----- diff --git a/apexkey/com.android.hardware.pk8 b/apexkey/com.android.hardware.pk8 new file mode 100644 index 0000000000000000000000000000000000000000..97007d272d989698c24f714e52ff2b7ee1c8ee37 GIT binary patch literal 2375 zcmV-N3Apw!f(b(c0RS)!1_>&LNQUwEii%!DFOii0)heo0OjKsW%rtO zLSm_%8{S5)|nx2TLI#Ko|yvN za%EdkI0-CHtN_4j)Q%bZ(!4o%uuzS13)fDyaJtTCh2=#iV~}usn+p0l1F-HZ3^^0D zhvQ8r?oTmI4Skmd%v#fweK&GXyDD=JN*p3wp_#hlnB@2~QRARD#d6 zZMyG*|IWtb{2TmjYv57WuiSfgN~7YnmAlg+cRSfygwvc%!vo;fJp(@=xdwJbqtXsC z3&D~6UTNXqQa)6H39KJT@}8bN@^;=;D=BC!1ZoU!P0FDu)MR)qea7L$LhZLA_ZY4(bn z|BUN6Zt9bBwxf%h@%~acU8wZY_J_OGgVm(|LpI#BHVtD?>@7MPyDf~?EGL^la)n;J zW77xg9(JP!SKUNAmI~6M3u{*8$%fu4S$1ngy35{MDfiMf&iB3)!=Voym{+9feo1F^=ur1~SJ^s;V9E9G8|I;j(M}y&k8IP86 z?MwP8=`3>c*DtByLVl886%9i=LGgW(9llT0IPi;^x%92B2u*^w09MiHy=1TTq&>A* zMf9T!F7YtItqi4Wi*6G;H*UC^d+qV#MioY0fj<9;QtGt=VExf*Dmu;LadtzF7|#J64{X)S=FK2S<(tUb`!~w^? zxLO;Vj;XkR9(A|bM=HE6zC~qcLg&G}I=XMzD?R3OIW?ADFLMHd0RaH}jslnT33D-$ ze!MJ@Qi@oNfXKBn#AQ4>Iu5~A{N7EPC!^1%CH51lbeEr*0W$BF-N~ns$72CEpY`s9 zk%yex(Lv&1Lmz*o!>l272KCGc!mbU=*@%Hzeq*j|Q5;4rz+&$S(n)UTDvLm{^6$Jl z+WEA)i>i5R(*Q@ugE8Qm**7g-tke7J7z$_<^63cdhL2i#g%m&bFnld+amnDO7_`lD zocjql=u^<3s^JPDrPX2Gs1Pi#`B5uN3A>}VUzz0EUN|Ufx7fy&IHl+$|4sW<&xoI| zxFHs#w#B}vQkhjMEd69@2|Nu@@jj~bBELau#~i8S&|{l>GKbQB%jOm z9FOKI783?=@^{NW zjBSnu0Dax?S}O|I904c*lFEzR={uKw%c~qke#TS?PEJYM>(+IGXxjW{nt>li<14~Z zhf(G!65RmXsX`dBFpBJ}X55(!w|g(MNrpBexOPn(|NH(0EGw)UBVH=wSs?t+d_@;C zLaO+A!+~h&FnA6W3mId^hh~1BuHQ@Y!-qae;|01ae$hFGx};A{;3`I1*VHWj5)!Cz z*jO*U5_JE{fkXFA#CogxI{Mm0jo77gm+mSS_^e74&*&b8aQp;=0)hbn0KG#GIDBVM zzz|eI2i0B#u(G9sT(TjFc~a%Gj7q`659rszE6n-ow#giar;u8blqixN(s7^eAy8C} zm@_TAHjI0`axt>b)E`Hs4p$m6e4T2$!L5n0W`K&*JiJO8SHb(ubHkJGqy13H43`yf z!O|8+p>JsYjrC3cd;#P4cHxR-H9~R?+zR_qh74+BAsiF4H}Eh<#BDLOBn4Gd&dscelac{1wDl(okJF(K*EQqwDM)~>idK}xYwUG zY7LAvM7`;*s64>+b4g;4hC9W`eMq44>O1l8ey5)uMuFlF!(5l;wc-#-n*dr`n>sWd z0(MbeHq`SlfExoNW+TO_Ci%%UZKY&VigzO$Px^}{HQ5x*T`l18kRGjTs?Fk4^lTX`Ju0Wetf`#>aMhd7cyNJHE2~0MZ2J zqlqP9L{@2mtg4A;&}a<~`Ecj2nsPhLuPmF}xH$iuV&H+~ tl{A=g_ Date: Thu, 24 Aug 2023 16:49:25 +0900 Subject: [PATCH 2/3] Mark threadnetwork HAL as updatable-via-apex Since it's not available in U, we don't have to mark it in 8.xml Bug: 296966113 Test: m Change-Id: I5ba313208c4c43c270fd4507f3e92cea6a62dc5e --- compatibility_matrices/compatibility_matrix.9.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compatibility_matrices/compatibility_matrix.9.xml b/compatibility_matrices/compatibility_matrix.9.xml index 9af095f0dc..c49421ce2b 100644 --- a/compatibility_matrices/compatibility_matrix.9.xml +++ b/compatibility_matrices/compatibility_matrix.9.xml @@ -787,7 +787,7 @@ .* - + android.hardware.threadnetwork 1 From f8bd1f0b0044c2170f6c980f0f4af067b4bed387 Mon Sep 17 00:00:00 2001 From: Jooyung Han Date: Thu, 24 Aug 2023 16:50:34 +0900 Subject: [PATCH 3/3] Move threadnetwork HAL to VAPEX com.android.hardware.threadnetwork is a new VAPEX containing threadnetwork HAL. It also includes ot-rcp. Bug: 296966113 Test: vts-tf > run vts -m VtsHalTheadNetworkTargetTest Change-Id: Id2028d755f9b0dcc06ccd817bddf3195efb5595b --- threadnetwork/aidl/default/Android.bp | 62 +++++++++++++------ ...roid.hardware.threadnetwork-service.sim.rc | 3 - threadnetwork/aidl/default/file_contexts | 4 ++ threadnetwork/aidl/default/manifest.json | 4 ++ .../aidl/default/threadnetwork-service-sim.rc | 3 + 5 files changed, 53 insertions(+), 23 deletions(-) delete mode 100644 threadnetwork/aidl/default/android.hardware.threadnetwork-service.sim.rc create mode 100644 threadnetwork/aidl/default/file_contexts create mode 100644 threadnetwork/aidl/default/manifest.json create mode 100644 threadnetwork/aidl/default/threadnetwork-service-sim.rc diff --git a/threadnetwork/aidl/default/Android.bp b/threadnetwork/aidl/default/Android.bp index bcd570498e..62c8c9e937 100644 --- a/threadnetwork/aidl/default/Android.bp +++ b/threadnetwork/aidl/default/Android.bp @@ -9,22 +9,21 @@ // in whole or in part, without the express written permission of // Google LLC. -cc_defaults { - name: "threadnetwork_service_default", - vintf_fragments: ["threadnetwork-default.xml"], +cc_binary { + name: "android.hardware.threadnetwork-service", vendor: true, relative_install_path: "hw", shared_libs: [ - "android.hardware.threadnetwork-V1-ndk", - "libbase", "libbinder_ndk", - "libcutils", "liblog", - "libutils", ], static_libs: [ + "android.hardware.threadnetwork-V1-ndk", + "libbase", + "libcutils", + "libutils", "openthread-common", "openthread-hdlc", "openthread-platform", @@ -33,6 +32,8 @@ cc_defaults { "openthread-url", ], + stl: "c++_static", + srcs: [ "main.cpp", "service.cpp", @@ -41,22 +42,10 @@ cc_defaults { ], } -cc_binary { - name: "android.hardware.threadnetwork-service.sim", - defaults: ["threadnetwork_service_default"], - init_rc: ["android.hardware.threadnetwork-service.sim.rc"], - required: ["ot-rcp"], -} - -cc_binary { - name: "android.hardware.threadnetwork-service", - defaults: ["threadnetwork_service_default"], -} - cc_fuzz { name: "android.hardware.threadnetwork-service.fuzzer", - defaults:["service_fuzzer_defaults"], + defaults: ["service_fuzzer_defaults"], shared_libs: [ "libbinder_ndk", ], @@ -85,3 +74,36 @@ cc_fuzz { ], }, } + +prebuilt_etc { + name: "threadnetwork-default.xml", + src: "threadnetwork-default.xml", + sub_dir: "vintf", + installable: false, +} + +prebuilt_etc { + name: "threadnetwork-service-sim.rc", + src: "threadnetwork-service-sim.rc", + installable: false, +} + +apex { + name: "com.android.hardware.threadnetwork", + manifest: "manifest.json", + file_contexts: "file_contexts", + key: "com.android.hardware.key", + certificate: ":com.android.hardware.certificate", + updatable: false, + vendor: true, + + binaries: [ + "android.hardware.threadnetwork-service", + "ot-rcp", + ], + prebuilts: [ + "threadnetwork-default.xml", // vintf_fragment + "threadnetwork-service-sim.rc", // init_rc + "android.hardware.thread_network.prebuilt.xml", // permission + ], +} diff --git a/threadnetwork/aidl/default/android.hardware.threadnetwork-service.sim.rc b/threadnetwork/aidl/default/android.hardware.threadnetwork-service.sim.rc deleted file mode 100644 index 2fb409cd93..0000000000 --- a/threadnetwork/aidl/default/android.hardware.threadnetwork-service.sim.rc +++ /dev/null @@ -1,3 +0,0 @@ -service vendor.threadnetwork_hal /vendor/bin/hw/android.hardware.threadnetwork-service.sim spinel+hdlc+forkpty:///vendor/bin/ot-rcp?forkpty-arg=1 - class hal - user thread_network diff --git a/threadnetwork/aidl/default/file_contexts b/threadnetwork/aidl/default/file_contexts new file mode 100644 index 0000000000..39ba3b5b3d --- /dev/null +++ b/threadnetwork/aidl/default/file_contexts @@ -0,0 +1,4 @@ +(/.*)? u:object_r:vendor_file:s0 +/etc(/.*)? u:object_r:vendor_configs_file:s0 +/bin/hw/android\.hardware\.threadnetwork-service u:object_r:hal_threadnetwork_default_exec:s0 +/bin/ot-rcp u:object_r:ot_rcp_exec:s0 diff --git a/threadnetwork/aidl/default/manifest.json b/threadnetwork/aidl/default/manifest.json new file mode 100644 index 0000000000..61e6dc1967 --- /dev/null +++ b/threadnetwork/aidl/default/manifest.json @@ -0,0 +1,4 @@ +{ + "name": "com.android.hardware.threadnetwork", + "version": 1 +} diff --git a/threadnetwork/aidl/default/threadnetwork-service-sim.rc b/threadnetwork/aidl/default/threadnetwork-service-sim.rc new file mode 100644 index 0000000000..3b889eb23a --- /dev/null +++ b/threadnetwork/aidl/default/threadnetwork-service-sim.rc @@ -0,0 +1,3 @@ +service vendor.threadnetwork_hal /apex/com.android.hardware.threadnetwork/bin/hw/android.hardware.threadnetwork-service spinel+hdlc+forkpty:///apex/com.android.hardware.threadnetwork/bin/ot-rcp?forkpty-arg=1 + class hal + user thread_network