├── .gitignore ├── README.md ├── angler ├── config.json ├── overlays-api26-full │ └── packages │ │ ├── apps │ │ └── CarrierConfig │ │ │ └── res │ │ │ └── xml │ │ │ └── vendor.xml │ │ └── services │ │ └── Telephony │ │ └── res │ │ └── values │ │ └── config.xml └── overlays-api26-naked │ └── packages │ ├── apps │ └── CarrierConfig │ │ └── res │ │ └── xml │ │ └── vendor.xml │ └── services │ └── Telephony │ └── res │ └── values │ └── config.xml ├── blueline └── config.json ├── bonito └── config.json ├── bullhead ├── config.json ├── overlays-api26-full │ └── packages │ │ ├── apps │ │ └── CarrierConfig │ │ │ └── res │ │ │ └── xml │ │ │ └── vendor.xml │ │ └── services │ │ └── Telephony │ │ └── res │ │ └── values │ │ └── config.xml └── overlays-api26-naked │ └── packages │ ├── apps │ └── CarrierConfig │ │ └── res │ │ └── xml │ │ └── vendor.xml │ └── services │ └── Telephony │ └── res │ └── values │ └── config.xml ├── crosshatch └── config.json ├── execute-all.sh ├── flounder └── config.json ├── hostTools ├── Darwin │ └── bin │ │ ├── dexrepair │ │ ├── jq │ │ └── simg2img ├── Java │ ├── baksmali.jar │ ├── oat2dex.jar │ └── smali.jar └── Linux │ └── bin │ ├── dexrepair │ ├── jq │ └── simg2img ├── marlin ├── config.json ├── overlays-api26-full │ └── packages │ │ ├── apps │ │ └── CarrierConfig │ │ │ └── res │ │ │ └── xml │ │ │ └── vendor.xml │ │ └── services │ │ └── Telephony │ │ └── res │ │ └── values │ │ └── config.xml └── overlays-api26-naked │ └── packages │ ├── apps │ └── CarrierConfig │ │ └── res │ │ └── xml │ │ └── vendor.xml │ └── services │ └── Telephony │ └── res │ └── values │ └── config.xml ├── sailfish ├── config.json ├── overlays-api26-full │ └── packages │ │ ├── apps │ │ └── CarrierConfig │ │ │ └── res │ │ │ └── xml │ │ │ └── vendor.xml │ │ └── services │ │ └── Telephony │ │ └── res │ │ └── values │ │ └── config.xml └── overlays-api26-naked │ └── packages │ ├── apps │ └── CarrierConfig │ │ └── res │ │ └── xml │ │ └── vendor.xml │ └── services │ └── Telephony │ └── res │ └── values │ └── config.xml ├── sargo └── config.json ├── scripts ├── common.sh ├── constants.sh ├── download-nexus-image.sh ├── extract-factory-images.sh ├── gen-prop-blobs-list.sh ├── generate-vendor.sh ├── realpath.sh └── system-img-repair.sh ├── taimen └── config.json └── walleye └── config.json /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | angler/* 4 | !angler/config.json 5 | !angler/overlays-* 6 | 7 | bullhead/* 8 | !bullhead/config.json 9 | !bullhead/overlays-* 10 | 11 | flounder/* 12 | !flounder/config.json 13 | !flounder/overlays-* 14 | 15 | sailfish/* 16 | !sailfish/config.json 17 | !sailfish/overlays-* 18 | 19 | marlin/* 20 | !marlin/config.json 21 | !marlin/overlays-* 22 | 23 | walleye/* 24 | !walleye/config.json 25 | !walleye/overlays-* 26 | 27 | taimen/* 28 | !taimen/config.json 29 | !taimen/overlays-* 30 | 31 | blueline/* 32 | !blueline/config.json 33 | !blueline/overlays-* 34 | 35 | crosshatch/* 36 | !crosshatch/config.json 37 | !crosshatch/overlays-* 38 | 39 | sargo/* 40 | !sargo/config.json 41 | !sargo/overlays-* 42 | 43 | bonito/* 44 | !bonito/config.json 45 | !bonito/overlays-* 46 | 47 | # oatdump host tools are downloaded on first run and are not part of the repo 48 | hostTools/Linux/api* 49 | hostTools/Darwin/api* 50 | -------------------------------------------------------------------------------- /angler/overlays-api26-full/packages/services/Telephony/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | 22 | 24 | 25 | 29 | 30 | false 31 | 32 | 40 | 41 | true 42 | 43 | 47 | 48 | 50 | 1 51 | 53 | 0 54 | 56 | 0 57 | 58 | 0 59 | 60 | 61 | 62 | false 63 | 64 | 70 | 71 | true 72 | 73 | 74 | false 75 | 76 | 77 | 78 | false 79 | 80 | 81 | 82 | false 83 | 84 | 86 | 87 | true 88 | 89 | 93 | 94 | true 95 | 96 | 99 | false 100 | 101 | 102 | 103 | false 104 | 105 | 116 | 117 | false 118 | 119 | 123 | 124 | false 125 | 126 | 127 | 128 | false 129 | 130 | 133 | 134 | true 135 | 136 | true 137 | 138 | true 139 | 140 | false 141 | 142 | false 143 | 144 | 145 | 146 | 147 | 148 | false 149 | 150 | 151 | com.android.dialer 152 | 153 | 154 | com.android.dialer.DialtactsActivity 155 | 156 | 157 | com.android.phone 158 | 159 | com.android.phone.NetworkSetting 160 | 161 | 162 | 163 | false 164 | 165 | 168 | 169 | false 170 | 171 | 172 | 173 | false 174 | 175 | 176 | 177 | 178 | 179 | 180 | true 181 | 182 | 183 | 184 | false 185 | 186 | 187 | true 188 | 189 | 190 | true 191 | 192 | 194 | false 195 | 196 | 198 | false 199 | 200 | 201 | false 202 | 203 | @null 204 | 205 | @null 206 | 207 | 208 | true 209 | 210 | 212 | 213 | 214 | 215 | true 216 | 217 | 218 | true 219 | 220 | 221 | false 222 | 223 | 224 | true 225 | 226 | 227 | com.android.carrierconfig 228 | 229 | -------------------------------------------------------------------------------- /angler/overlays-api26-naked/packages/apps/CarrierConfig/res/xml/vendor.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /angler/overlays-api26-naked/packages/services/Telephony/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | 22 | 24 | 25 | 29 | 30 | false 31 | 32 | 40 | 41 | true 42 | 43 | 47 | 48 | 50 | 1 51 | 53 | 0 54 | 56 | 0 57 | 58 | 0 59 | 60 | 61 | 62 | false 63 | 64 | 70 | 71 | true 72 | 73 | 74 | false 75 | 76 | 77 | 78 | false 79 | 80 | 81 | 82 | false 83 | 84 | 86 | 87 | true 88 | 89 | 93 | 94 | true 95 | 96 | 99 | false 100 | 101 | 102 | 103 | false 104 | 105 | 116 | 117 | false 118 | 119 | 123 | 124 | false 125 | 126 | 127 | 128 | false 129 | 130 | 133 | 134 | true 135 | 136 | true 137 | 138 | true 139 | 140 | false 141 | 142 | false 143 | 144 | 145 | 146 | 147 | 148 | false 149 | 150 | 151 | com.android.dialer 152 | 153 | 154 | com.android.dialer.DialtactsActivity 155 | 156 | 157 | com.android.phone 158 | 159 | com.android.phone.NetworkSetting 160 | 161 | 162 | 163 | false 164 | 165 | 168 | 169 | false 170 | 171 | 172 | 173 | false 174 | 175 | 176 | 177 | 178 | 179 | 180 | true 181 | 182 | 183 | 184 | false 185 | 186 | 187 | true 188 | 189 | 190 | true 191 | 192 | 194 | false 195 | 196 | 198 | false 199 | 200 | 201 | false 202 | 203 | @null 204 | 205 | @null 206 | 207 | 208 | true 209 | 210 | 212 | 213 | 214 | 215 | true 216 | 217 | 218 | true 219 | 220 | 221 | false 222 | 223 | 224 | true 225 | 226 | 227 | com.android.carrierconfig 228 | 229 | -------------------------------------------------------------------------------- /blueline/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "device-name": "pixel3", 3 | "device-model": "blueline", 4 | "device-aliases": [], 5 | "vendor": "google", 6 | "aosp-vendor-dir": "google_devices", 7 | "device-family": "crosshatch", 8 | "supported-apis": ["api-28"], 9 | "extra-partitions": [ 10 | "abl", 11 | "aop", 12 | "cmnlib", 13 | "cmnlib64", 14 | "devcfg", 15 | "hyp", 16 | "keymaster", 17 | "modem", 18 | "qupfw", 19 | "tz", 20 | "xbl", 21 | "xbl_config" 22 | ], 23 | "AndroidMk": "blueline/Android.mk", 24 | "BoardConfigVendorMk": "blueline/BoardConfigVendorPartial.mk", 25 | "DeviceVendorMk": "crosshatch/proprietary/device-vendor.mk", 26 | "api-28": { 27 | "naked": { 28 | "overlays-dir": "", 29 | "system-bytecode": [ 30 | "system/app/com.qualcomm.qti.services.secureui/com.qualcomm.qti.services.secureui.apk", 31 | "system/app/datastatusnotification/datastatusnotification.apk", 32 | "system/app/embms/embms.apk", 33 | "system/app/ims/ims.apk", 34 | "system/app/QAS_DVC_MSP/QAS_DVC_MSP.apk", 35 | "system/app/QtiTelephonyService/QtiTelephonyService.apk", 36 | "system/app/remotesimlockservice/remotesimlockservice.apk", 37 | "system/app/smcinvokepkgmgr/smcinvokepkgmgr.apk", 38 | "system/app/uceShimService/uceShimService.apk", 39 | "system/app/uimlpaservice/uimlpaservice.apk", 40 | "system/framework/com.qualcomm.qti.uceservice-V2.0-java.jar", 41 | "system/framework/embmslibrary.jar", 42 | "system/framework/qcrilhook.jar", 43 | "system/framework/QtiTelephonyServicelibrary.jar", 44 | "system/framework/uimlpalibrary.jar", 45 | "system/framework/uimremotesimlocklibrary.jar", 46 | "system/framework/vendor.qti.ims.callinfo-V1.0-java.jar", 47 | "system/framework/vendor.qti.hardware.alarm-V1.0-java.jar", 48 | "system/framework/vendor.qti.hardware.data.latency-V1.0-java.jar", 49 | "system/framework/vendor.qti.hardware.soter-V1.0-java.jar", 50 | "system/priv-app/CNEService/CNEService.apk", 51 | "system/priv-app/ModemService/ModemService.apk", 52 | "system/priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk", 53 | "system/priv-app/grilservice/grilservice.apk" 54 | ], 55 | "system-other": [ 56 | "system/bin/icm", 57 | "system/bin/pktlogconf", 58 | "system/bin/seempd", 59 | "system/bin/smcinvoked", 60 | "system/bin/vendor_cmd_tool", 61 | "system/etc/firmware/dnd.descriptor", 62 | "system/etc/firmware/dnd.sound_model", 63 | "system/etc/firmware/music_detector.descriptor", 64 | "system/etc/firmware/music_detector.sound_model", 65 | "system/etc/permissions/cneapiclient.xml", 66 | "system/etc/permissions/com.google.modemservice.xml", 67 | "system/etc/permissions/com.qualcomm.qti.imscmservice.xml", 68 | "system/etc/permissions/com.quicinc.cne.xml", 69 | "system/etc/permissions/embms.xml", 70 | "system/etc/permissions/lpa.xml", 71 | "system/etc/permissions/LteDirectDiscovery.xml", 72 | "system/etc/permissions/qcrilhook.xml", 73 | "system/etc/permissions/privapp-permissions-bluecross.xml", 74 | "system/etc/permissions/RemoteSimlock.xml", 75 | "system/etc/permissions/telephonyservice.xml", 76 | "system/etc/permissions/UimService.xml", 77 | "system/lib64/com.qualcomm.qti.ant@1.0.so", 78 | "system/lib64/com.qualcomm.qti.imscmservice@1.0.so", 79 | "system/lib64/com.qualcomm.qti.uceservice@2.0.so", 80 | "system/lib64/libaptX_encoder.so", 81 | "system/lib64/libaptXHD_encoder.so", 82 | "system/lib64/libadsprpc_system.so", 83 | "system/lib64/libbarhopper.so", 84 | "system/lib64/libcdsprpc_system.so", 85 | "system/lib64/libdiag_system.so", 86 | "system/lib64/libGPQTEEC_system.so", 87 | "system/lib64/libGPTEE_system.so", 88 | "system/lib64/lib-imsvideocodec.so", 89 | "system/lib64/lib-imsvtextutils.so", 90 | "system/lib64/lib-imsvt.so", 91 | "system/lib64/lib-imsvtutils.so", 92 | "system/lib64/liblistenjni.so", 93 | "system/lib64/liblistensoundmodel2.so", 94 | "system/lib64/liblpmdeviceutils.so", 95 | "system/lib64/libmdsprpc_system.so", 96 | "system/lib64/libOpenCL_system.so", 97 | "system/lib64/libqcbor.so", 98 | "system/lib64/libQTEEConnector_system.so", 99 | "system/lib64/librcc.so", 100 | "system/lib64/libsdm-disp-apis.so", 101 | "system/lib64/libsdsprpc_system.so", 102 | "system/lib64/libsecureuisvc_jni.so", 103 | "system/lib64/libsecureui_svcsock_system.so", 104 | "system/lib64/libsensorslog.so", 105 | "system/lib64/libsmcinvokecred.so", 106 | "system/lib64/libsns_low_lat_stream_stub.so", 107 | "system/lib64/libtzcom.so", 108 | "system/lib64/vendor.display.color@1.0.so", 109 | "system/lib64/vendor.display.color@1.1.so", 110 | "system/lib64/vendor.display.config@1.0.so", 111 | "system/lib64/vendor.display.postproc@1.0.so", 112 | "system/lib64/vendor.google.wireless_charger@1.0.so", 113 | "system/lib64/vendor.qti.esepowermanager@1.0.so", 114 | "system/lib64/vendor.qti.hardware.alarm@1.0.so", 115 | "system/lib64/vendor.qti.hardware.data.latency@1.0.so", 116 | "system/lib64/vendor.qti.hardware.iop@1.0.so", 117 | "system/lib64/vendor.qti.hardware.iop@2.0.so", 118 | "system/lib64/vendor.qti.hardware.perf@1.0.so", 119 | "system/lib64/vendor.qti.hardware.qdutils_disp@1.0.so", 120 | "system/lib64/vendor.qti.hardware.qteeconnector@1.0.so", 121 | "system/lib64/vendor.qti.hardware.radio.am@1.0.so", 122 | "system/lib64/vendor.qti.hardware.radio.ims@1.0.so", 123 | "system/lib64/vendor.qti.hardware.radio.ims@1.1.so", 124 | "system/lib64/vendor.qti.hardware.radio.ims@1.2.so", 125 | "system/lib64/vendor.qti.hardware.radio.lpa@1.0.so", 126 | "system/lib64/vendor.qti.hardware.radio.qcrilhook@1.0.so", 127 | "system/lib64/vendor.qti.hardware.radio.qtiradio@1.0.so", 128 | "system/lib64/vendor.qti.hardware.radio.uim@1.0.so", 129 | "system/lib64/vendor.qti.hardware.radio.uim_remote_client@1.0.so", 130 | "system/lib64/vendor.qti.hardware.radio.uim_remote_server@1.0.so", 131 | "system/lib64/vendor.qti.hardware.soter@1.0.so", 132 | "system/lib64/vendor.qti.hardware.tui_comm@1.0.so", 133 | "system/lib64/vendor.qti.hardware.vpp@1.1.so", 134 | "system/lib64/vendor.qti.ims.callinfo@1.0.so", 135 | "system/lib64/vendor.qti.imsrtpservice@1.0.so", 136 | "system/lib64/vendor.qti.voiceprint@1.0.so", 137 | "system/lib/com.qualcomm.qti.ant@1.0.so", 138 | "system/lib/com.qualcomm.qti.imscmservice@1.0.so", 139 | "system/lib/com.qualcomm.qti.uceservice@2.0.so", 140 | "system/lib/libadsprpc_system.so", 141 | "system/lib/libcdsprpc_system.so", 142 | "system/lib/libdiag_system.so", 143 | "system/lib/libGPQTEEC_system.so", 144 | "system/lib/libGPTEE_system.so", 145 | "system/lib/libimscamera_jni.so", 146 | "system/lib/libimsmedia_jni.so", 147 | "system/lib/lib-imsvideocodec.so", 148 | "system/lib/lib-imsvtextutils.so", 149 | "system/lib/lib-imsvt.so", 150 | "system/lib/lib-imsvtutils.so", 151 | "system/lib/liblistenjni.so", 152 | "system/lib/liblistensoundmodel2.so", 153 | "system/lib/libmdsprpc_system.so", 154 | "system/lib/libOpenCL_system.so", 155 | "system/lib/libqcbor.so", 156 | "system/lib/libqct_resampler.so", 157 | "system/lib/libQTEEConnector_system.so", 158 | "system/lib/librcc.so", 159 | "system/lib/libsdm-disp-apis.so", 160 | "system/lib/libsdsprpc_system.so", 161 | "system/lib/libsecureuisvc_jni.so", 162 | "system/lib/libsecureui_svcsock_system.so", 163 | "system/lib/libsensorslog.so", 164 | "system/lib/libsmcinvokecred.so", 165 | "system/lib/libsns_low_lat_stream_stub.so", 166 | "system/lib/libtzcom.so", 167 | "system/lib/rfsa/adsp/libsns_low_lat_stream_skel.so", 168 | "system/lib/vendor.display.color@1.0.so", 169 | "system/lib/vendor.display.color@1.1.so", 170 | "system/lib/vendor.display.config@1.0.so", 171 | "system/lib/vendor.display.postproc@1.0.so", 172 | "system/lib/vendor.google.wireless_charger@1.0.so", 173 | "system/lib/vendor.qti.esepowermanager@1.0.so", 174 | "system/lib/vendor.qti.hardware.alarm@1.0.so", 175 | "system/lib/vendor.qti.hardware.data.latency@1.0.so", 176 | "system/lib/vendor.qti.hardware.iop@1.0.so", 177 | "system/lib/vendor.qti.hardware.iop@2.0.so", 178 | "system/lib/vendor.qti.hardware.perf@1.0.so", 179 | "system/lib/vendor.qti.hardware.qdutils_disp@1.0.so", 180 | "system/lib/vendor.qti.hardware.qteeconnector@1.0.so", 181 | "system/lib/vendor.qti.hardware.radio.am@1.0.so", 182 | "system/lib/vendor.qti.hardware.radio.ims@1.0.so", 183 | "system/lib/vendor.qti.hardware.radio.ims@1.1.so", 184 | "system/lib/vendor.qti.hardware.radio.ims@1.2.so", 185 | "system/lib/vendor.qti.hardware.radio.lpa@1.0.so", 186 | "system/lib/vendor.qti.hardware.radio.qcrilhook@1.0.so", 187 | "system/lib/vendor.qti.hardware.radio.qtiradio@1.0.so", 188 | "system/lib/vendor.qti.hardware.radio.uim@1.0.so", 189 | "system/lib/vendor.qti.hardware.radio.uim_remote_client@1.0.so", 190 | "system/lib/vendor.qti.hardware.radio.uim_remote_server@1.0.so", 191 | "system/lib/vendor.qti.hardware.soter@1.0.so", 192 | "system/lib/vendor.qti.hardware.tui_comm@1.0.so", 193 | "system/lib/vendor.qti.hardware.vpp@1.1.so", 194 | "system/lib/vendor.qti.ims.callinfo@1.0.so", 195 | "system/lib/vendor.qti.imsrtpservice@1.0.so", 196 | "system/lib/vendor.qti.voiceprint@1.0.so" 197 | ], 198 | "forced-modules": [ 199 | "android.hardware.radio@1.0", 200 | "android.hardware.radio@1.1", 201 | "android.hardware.radio@1.2", 202 | "android.hardware.radio.config@1.0", 203 | "android.hardware.radio.deprecated@1.0", 204 | "android.hardware.secure_element@1.0", 205 | "com.android.ims.rcsmanager", 206 | "libminui", 207 | "libprotobuf-cpp-full-rtti", 208 | "libprotobuf-cpp-full", 209 | "RcsService" 210 | ], 211 | "new-modules": [], 212 | "dep-dso": [], 213 | "BoardConfigVendor": [], 214 | "device-vendor": [] 215 | }, 216 | "full": { 217 | "overlays-dir": "", 218 | "system-bytecode": [ 219 | "system/app/EaselServicePrebuilt/EaselServicePrebuilt.apk::PRESIGNED", 220 | "system/app/QAS_DVC_MSP_VZW/QAS_DVC_MSP_VZW.apk", 221 | "system/app/vzw_msdc_api/vzw_msdc_api.apk", 222 | "system/framework/LowPowerMonitorDeviceInterface.jar", 223 | "system/framework/LowPowerMonitorDeviceRpm.jar", 224 | "system/framework/PowerAnomalyDataModemInterface.jar", 225 | "system/framework/PowerAnomalyQcril.jar", 226 | "system/framework/VerizonUnifiedSettings.jar", 227 | "system/priv-app/AmbientSensePrebuilt/AmbientSensePrebuilt.apk::PRESIGNED", 228 | "system/priv-app/EuiccGoogle/EuiccGoogle.apk::PRESIGNED", 229 | "system/priv-app/HotwordEnrollmentOKGoogleWCD9340/HotwordEnrollmentOKGoogleWCD9340.apk::PRESIGNED", 230 | "system/priv-app/HotwordEnrollmentTGoogleWCD9340/HotwordEnrollmentTGoogleWCD9340.apk::PRESIGNED", 231 | "system/priv-app/HotwordEnrollmentXGoogleWCD9340/HotwordEnrollmentXGoogleWCD9340.apk::PRESIGNED", 232 | "system/priv-app/OemDmTrigger/OemDmTrigger.apk", 233 | "system/priv-app/SprintDM/SprintDM.apk", 234 | "system/priv-app/SprintHM/SprintHM.apk", 235 | "system/priv-app/VerizonAuthDialog/VerizonAuthDialog.apk" 236 | ], 237 | "system-other": [ 238 | "system/etc/ambient/matcher_tah.leveldb", 239 | "system/etc/permissions/android.hardware.telephony.euicc.xml", 240 | "system/etc/permissions/com.android.omadm.service.xml", 241 | "system/etc/permissions/com.android.sdm.plugins.sprintdm.xml", 242 | "system/etc/permissions/com.google.omadm.trigger.xml", 243 | "system/etc/permissions/com.verizon.embms.xml", 244 | "system/etc/permissions/com.verizon.provider.xml", 245 | "system/etc/permissions/features-verizon.xml", 246 | "system/etc/permissions/privapp-permissions-google.xml", 247 | "system/etc/scone/country_border.leveldb", 248 | "system/etc/sysconfig/google_build.xml", 249 | "system/etc/sysconfig/google-hiddenapi-package-whitelist.xml", 250 | "system/etc/sysconfig/google_vr_build.xml", 251 | "system/etc/sysconfig/google.xml", 252 | "system/etc/sysconfig/nexus.xml", 253 | "system/etc/sysconfig/pixel_2018_exclusive.xml", 254 | "system/etc/sysconfig/pixel_experience_2017.xml", 255 | "system/etc/sysconfig/pixel_experience_2018.xml", 256 | "system/etc/sysconfig/whitelist_com.android.omadm.service.xml", 257 | "system/lib64/libsketchology_native.so", 258 | "system/priv-app/EuiccGoogle/esim-full-v0.img", 259 | "system/priv-app/EuiccGoogle/esim-v1.img" 260 | ], 261 | "forced-modules": [ 262 | "bufferhubd", 263 | "com.google.vr.platform", 264 | "com.google.vr.platform.xml", 265 | "libdvr", 266 | "libdvr_loader", 267 | "libvr_hwc-hal", 268 | "performanced", 269 | "virtual_touchpad", 270 | "vr_hwc" 271 | ], 272 | "new-modules": [], 273 | "dep-dso": [], 274 | "BoardConfigVendor": [], 275 | "device-vendor": [] 276 | } 277 | } 278 | } 279 | -------------------------------------------------------------------------------- /bonito/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "device-name": "pixel3a-xl", 3 | "device-model": "bonito", 4 | "device-aliases": [], 5 | "vendor": "google", 6 | "aosp-vendor-dir": "google_devices", 7 | "device-family": "bonito", 8 | "supported-apis": ["api-28"], 9 | "extra-partitions": [ 10 | "abl", 11 | "aop", 12 | "cmnlib", 13 | "cmnlib64", 14 | "devcfg", 15 | "hyp", 16 | "keymaster", 17 | "modem", 18 | "qupfw", 19 | "tz", 20 | "xbl", 21 | "xbl_config" 22 | ], 23 | "AndroidMk": "bonito/Android.mk", 24 | "BoardConfigVendorMk": "bonito/BoardConfigVendorPartial.mk", 25 | "DeviceVendorMk": "bonito/proprietary/device-vendor.mk", 26 | "api-28": { 27 | "naked": { 28 | "overlays-dir": "", 29 | "system-bytecode": [ 30 | "system/app/QAS_DVC_MSP/QAS_DVC_MSP.apk", 31 | "system/app/QtiTelephonyService/QtiTelephonyService.apk", 32 | "system/app/datastatusnotification/datastatusnotification.apk", 33 | "system/app/embms/embms.apk", 34 | "system/app/ims/ims.apk", 35 | "system/app/remotesimlockservice/remotesimlockservice.apk", 36 | "system/app/smcinvokepkgmgr/smcinvokepkgmgr.apk", 37 | "system/app/uceShimService/uceShimService.apk", 38 | "system/app/uimlpaservice/uimlpaservice.apk", 39 | "system/framework/QtiTelephonyServicelibrary.jar", 40 | "system/framework/com.qualcomm.qti.uceservice-V2.0-java.jar", 41 | "system/framework/embmslibrary.jar", 42 | "system/framework/qcrilhook.jar", 43 | "system/framework/uimlpalibrary.jar", 44 | "system/framework/uimremotesimlocklibrary.jar", 45 | "system/framework/vendor.qti.hardware.alarm-V1.0-java.jar", 46 | "system/framework/vendor.qti.hardware.data.latency-V1.0-java.jar", 47 | "system/framework/vendor.qti.hardware.fingerprint-V1.0-java.jar", 48 | "system/framework/vendor.qti.hardware.soter-V1.0-java.jar", 49 | "system/framework/vendor.qti.hardware.wigig.netperftuner-V1.0-java.jar", 50 | "system/framework/vendor.qti.hardware.wigig.supptunnel-V1.0-java.jar", 51 | "system/framework/vendor.qti.ims.callinfo-V1.0-java.jar", 52 | "system/framework/vendor.qti.voiceprint-V1.0-java.jar", 53 | "system/priv-app/CNEService/CNEService.apk", 54 | "system/priv-app/ModemService/ModemService.apk", 55 | "system/priv-app/grilservice/grilservice.apk", 56 | "system/priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk", 57 | "system/product/app/SSRestartDetector/SSRestartDetector.apk", 58 | "system/product/app/com.qualcomm.qti.services.secureui/com.qualcomm.qti.services.secureui.apk" 59 | ], 60 | "system-other": [ 61 | "system/bin/icm", 62 | "system/bin/move_time_data.sh", 63 | "system/bin/pktlogconf", 64 | "system/bin/smcinvoked", 65 | "system/bin/vendor_cmd_tool", 66 | "system/etc/cne/andsfCne.xml", 67 | "system/etc/firmware/music_detector.descriptor", 68 | "system/etc/firmware/music_detector.sound_model", 69 | "system/etc/permissions/LteDirectDiscovery.xml", 70 | "system/etc/permissions/RemoteSimlock.xml", 71 | "system/etc/permissions/UimService.xml", 72 | "system/etc/permissions/cneapiclient.xml", 73 | "system/etc/permissions/com.google.modemservice.xml", 74 | "system/etc/permissions/com.qualcomm.qti.imscmservice.xml", 75 | "system/etc/permissions/com.quicinc.cne.xml", 76 | "system/etc/permissions/embms.xml", 77 | "system/etc/permissions/lpa.xml", 78 | "system/etc/permissions/privapp-permissions-bonito.xml", 79 | "system/etc/permissions/qcrilhook.xml", 80 | "system/etc/permissions/telephonyservice.xml", 81 | "system/lib/com.qualcomm.qti.ant@1.0.so", 82 | "system/lib/com.qualcomm.qti.imscmservice@1.0.so", 83 | "system/lib/com.qualcomm.qti.uceservice@2.0.so", 84 | "system/lib/com.quicinc.cne.server@1.0.so", 85 | "system/lib/lib-imsvideocodec.so", 86 | "system/lib/lib-imsvt.so", 87 | "system/lib/lib-imsvtextutils.so", 88 | "system/lib/lib-imsvtutils.so", 89 | "system/lib/libFidoCrypto_system.so", 90 | "system/lib/libGPQTEEC_system.so", 91 | "system/lib/libGPTEE_system.so", 92 | "system/lib/libOpenCL_system.so", 93 | "system/lib/libQTEEConnector_system.so", 94 | "system/lib/libadsprpc_system.so", 95 | "system/lib/libcdsprpc_system.so", 96 | "system/lib/libdiag_system.so", 97 | "system/lib/libdisplayconfig.so", 98 | "system/lib/libimscamera_jni.so", 99 | "system/lib/libimsmedia_jni.so", 100 | "system/lib/liblistenjni.so", 101 | "system/lib/liblistensoundmodel2.so", 102 | "system/lib/libmdsprpc_system.so", 103 | "system/lib/libqcbor_system.so", 104 | "system/lib/libqct_resampler.so", 105 | "system/lib/libqsap_sdk.so", 106 | "system/lib/librcc.so", 107 | "system/lib/libsdm-disp-apis.so", 108 | "system/lib/libsdsprpc_system.so", 109 | "system/lib/libseccam.so", 110 | "system/lib/libsecureui_svcsock_system.so", 111 | "system/lib/libsensorslog.so", 112 | "system/lib/libsmcinvokecred.so", 113 | "system/lib/libsns_device_mode_stub.so", 114 | "system/lib/libsns_fastRPC_util.so", 115 | "system/lib/libsns_low_lat_stream_stub.so", 116 | "system/lib/libtzcom.so", 117 | "system/lib/rfsa/adsp/libsns_low_lat_stream_skel.so", 118 | "system/lib/vendor.display.color@1.0.so", 119 | "system/lib/vendor.display.color@1.1.so", 120 | "system/lib/vendor.display.color@1.2.so", 121 | "system/lib/vendor.display.config@1.0.so", 122 | "system/lib/vendor.display.config@1.1.so", 123 | "system/lib/vendor.display.config@1.2.so", 124 | "system/lib/vendor.display.config@1.3.so", 125 | "system/lib/vendor.display.config@1.4.so", 126 | "system/lib/vendor.display.config@1.5.so", 127 | "system/lib/vendor.display.postproc@1.0.so", 128 | "system/lib/vendor.qti.esepowermanager@1.0.so", 129 | "system/lib/vendor.qti.hardware.alarm@1.0.so", 130 | "system/lib/vendor.qti.hardware.biometrics.face@1.0-adapter-helper.so", 131 | "system/lib/vendor.qti.hardware.biometrics.face@1.0.so", 132 | "system/lib/vendor.qti.hardware.data.latency@1.0.so", 133 | "system/lib/vendor.qti.hardware.fingerprint@1.0.so", 134 | "system/lib/vendor.qti.hardware.iop@1.0.so", 135 | "system/lib/vendor.qti.hardware.iop@2.0.so", 136 | "system/lib/vendor.qti.hardware.perf@1.0.so", 137 | "system/lib/vendor.qti.hardware.qdutils_disp@1.0.so", 138 | "system/lib/vendor.qti.hardware.qteeconnector@1.0.so", 139 | "system/lib/vendor.qti.hardware.radio.am@1.0.so", 140 | "system/lib/vendor.qti.hardware.radio.ims@1.0.so", 141 | "system/lib/vendor.qti.hardware.radio.ims@1.1.so", 142 | "system/lib/vendor.qti.hardware.radio.ims@1.2.so", 143 | "system/lib/vendor.qti.hardware.radio.ims@1.3.so", 144 | "system/lib/vendor.qti.hardware.radio.ims@1.4.so", 145 | "system/lib/vendor.qti.hardware.radio.lpa@1.0.so", 146 | "system/lib/vendor.qti.hardware.radio.qcrilhook@1.0.so", 147 | "system/lib/vendor.qti.hardware.radio.qtiradio@1.0.so", 148 | "system/lib/vendor.qti.hardware.radio.qtiradio@2.0.so", 149 | "system/lib/vendor.qti.hardware.radio.uim@1.0.so", 150 | "system/lib/vendor.qti.hardware.radio.uim_remote_client@1.0.so", 151 | "system/lib/vendor.qti.hardware.radio.uim_remote_server@1.0.so", 152 | "system/lib/vendor.qti.hardware.scve.objecttracker@1.0-adapter-helper.so", 153 | "system/lib/vendor.qti.hardware.scve.objecttracker@1.0.so", 154 | "system/lib/vendor.qti.hardware.scve.panorama@1.0-adapter-helper.so", 155 | "system/lib/vendor.qti.hardware.scve.panorama@1.0.so", 156 | "system/lib/vendor.qti.hardware.seccam@1.0.so", 157 | "system/lib/vendor.qti.hardware.soter@1.0.so", 158 | "system/lib/vendor.qti.hardware.tui_comm@1.0.so", 159 | "system/lib/vendor.qti.hardware.vpp@1.1.so", 160 | "system/lib/vendor.qti.hardware.vpp@1.2.so", 161 | "system/lib/vendor.qti.hardware.wigig.netperftuner@1.0.so", 162 | "system/lib/vendor.qti.hardware.wigig.supptunnel@1.0.so", 163 | "system/lib/vendor.qti.ims.callinfo@1.0.so", 164 | "system/lib/vendor.qti.imsrtpservice@1.0.so", 165 | "system/lib/vendor.qti.voiceprint@1.0.so", 166 | "system/lib64/com.qualcomm.qti.ant@1.0.so", 167 | "system/lib64/com.qualcomm.qti.imscmservice@1.0.so", 168 | "system/lib64/com.qualcomm.qti.uceservice@2.0.so", 169 | "system/lib64/com.quicinc.cne.server@1.0.so", 170 | "system/lib64/lib-imsvideocodec.so", 171 | "system/lib64/lib-imsvt.so", 172 | "system/lib64/lib-imsvtextutils.so", 173 | "system/lib64/lib-imsvtutils.so", 174 | "system/lib64/libFidoCrypto_system.so", 175 | "system/lib64/libGPQTEEC_system.so", 176 | "system/lib64/libGPTEE_system.so", 177 | "system/lib64/libOpenCL_system.so", 178 | "system/lib64/libQTEEConnector_system.so", 179 | "system/lib64/libadsprpc_system.so", 180 | "system/lib64/libaptXHD_encoder.so", 181 | "system/lib64/libaptX_encoder.so", 182 | "system/lib64/libbarhopper.so", 183 | "system/lib64/libcdsprpc_system.so", 184 | "system/lib64/libdiag_system.so", 185 | "system/lib64/libdisplayconfig.so", 186 | "system/lib64/liblistenjni.so", 187 | "system/lib64/liblistensoundmodel2.so", 188 | "system/lib64/liblpmdeviceutils.so", 189 | "system/lib64/libmdsprpc_system.so", 190 | "system/lib64/libqcbor_system.so", 191 | "system/lib64/libqsap_sdk.so", 192 | "system/lib64/librcc.so", 193 | "system/lib64/libsdm-disp-apis.so", 194 | "system/lib64/libsdsprpc_system.so", 195 | "system/lib64/libseccam.so", 196 | "system/lib64/libsecureui_svcsock_system.so", 197 | "system/lib64/libsensorslog.so", 198 | "system/lib64/libsmcinvokecred.so", 199 | "system/lib64/libsns_device_mode_stub.so", 200 | "system/lib64/libsns_fastRPC_util.so", 201 | "system/lib64/libsns_low_lat_stream_stub.so", 202 | "system/lib64/libtzcom.so", 203 | "system/lib64/vendor.display.color@1.0.so", 204 | "system/lib64/vendor.display.color@1.1.so", 205 | "system/lib64/vendor.display.color@1.2.so", 206 | "system/lib64/vendor.display.config@1.0.so", 207 | "system/lib64/vendor.display.config@1.1.so", 208 | "system/lib64/vendor.display.config@1.2.so", 209 | "system/lib64/vendor.display.config@1.3.so", 210 | "system/lib64/vendor.display.config@1.4.so", 211 | "system/lib64/vendor.display.config@1.5.so", 212 | "system/lib64/vendor.display.postproc@1.0.so", 213 | "system/lib64/vendor.qti.esepowermanager@1.0.so", 214 | "system/lib64/vendor.qti.hardware.alarm@1.0.so", 215 | "system/lib64/vendor.qti.hardware.biometrics.face@1.0-adapter-helper.so", 216 | "system/lib64/vendor.qti.hardware.biometrics.face@1.0.so", 217 | "system/lib64/vendor.qti.hardware.data.latency@1.0.so", 218 | "system/lib64/vendor.qti.hardware.fingerprint@1.0.so", 219 | "system/lib64/vendor.qti.hardware.iop@1.0.so", 220 | "system/lib64/vendor.qti.hardware.iop@2.0.so", 221 | "system/lib64/vendor.qti.hardware.perf@1.0.so", 222 | "system/lib64/vendor.qti.hardware.qdutils_disp@1.0.so", 223 | "system/lib64/vendor.qti.hardware.qteeconnector@1.0.so", 224 | "system/lib64/vendor.qti.hardware.radio.am@1.0.so", 225 | "system/lib64/vendor.qti.hardware.radio.ims@1.0.so", 226 | "system/lib64/vendor.qti.hardware.radio.ims@1.1.so", 227 | "system/lib64/vendor.qti.hardware.radio.ims@1.2.so", 228 | "system/lib64/vendor.qti.hardware.radio.ims@1.3.so", 229 | "system/lib64/vendor.qti.hardware.radio.ims@1.4.so", 230 | "system/lib64/vendor.qti.hardware.radio.lpa@1.0.so", 231 | "system/lib64/vendor.qti.hardware.radio.qcrilhook@1.0.so", 232 | "system/lib64/vendor.qti.hardware.radio.qtiradio@1.0.so", 233 | "system/lib64/vendor.qti.hardware.radio.qtiradio@2.0.so", 234 | "system/lib64/vendor.qti.hardware.radio.uim@1.0.so", 235 | "system/lib64/vendor.qti.hardware.radio.uim_remote_client@1.0.so", 236 | "system/lib64/vendor.qti.hardware.radio.uim_remote_server@1.0.so", 237 | "system/lib64/vendor.qti.hardware.scve.objecttracker@1.0-adapter-helper.so", 238 | "system/lib64/vendor.qti.hardware.scve.objecttracker@1.0.so", 239 | "system/lib64/vendor.qti.hardware.scve.panorama@1.0-adapter-helper.so", 240 | "system/lib64/vendor.qti.hardware.scve.panorama@1.0.so", 241 | "system/lib64/vendor.qti.hardware.seccam@1.0.so", 242 | "system/lib64/vendor.qti.hardware.soter@1.0.so", 243 | "system/lib64/vendor.qti.hardware.tui_comm@1.0.so", 244 | "system/lib64/vendor.qti.hardware.vpp@1.1.so", 245 | "system/lib64/vendor.qti.hardware.vpp@1.2.so", 246 | "system/lib64/vendor.qti.hardware.wigig.netperftuner@1.0.so", 247 | "system/lib64/vendor.qti.hardware.wigig.supptunnel@1.0.so", 248 | "system/lib64/vendor.qti.ims.callinfo@1.0.so", 249 | "system/lib64/vendor.qti.imsrtpservice@1.0.so", 250 | "system/lib64/vendor.qti.voiceprint@1.0.so", 251 | "system/product/etc/permissions/com.qti.snapdragon.sdk.display.xml", 252 | "system/product/lib/libsecureuisvc_jni.so", 253 | "system/product/lib64/libsecureuisvc_jni.so" 254 | ], 255 | "forced-modules": [ 256 | "RcsService", 257 | "android.hardware.biometrics.fingerprint@2.1", 258 | "android.hardware.radio.config@1.0", 259 | "android.hardware.radio.deprecated@1.0", 260 | "android.hardware.radio@1.0", 261 | "android.hardware.radio@1.1", 262 | "android.hardware.radio@1.2", 263 | "android.hardware.secure_element@1.0", 264 | "com.android.ims.rcsmanager", 265 | "libminui", 266 | "libprotobuf-cpp-full", 267 | "libprotobuf-cpp-full-rtti" 268 | ], 269 | "new-modules": [], 270 | "dep-dso": [], 271 | "BoardConfigVendor": [], 272 | "device-vendor": [] 273 | }, 274 | "full": { 275 | "overlays-dir": "", 276 | "system-bytecode": [ 277 | "system/app/DiagnosticsToolPrebuilt/DiagnosticsToolPrebuilt.apk::PRESIGNED", 278 | "system/app/EaselServicePrebuilt/EaselServicePrebuilt.apk::PRESIGNED", 279 | "system/app/QAS_DVC_MSP_VZW/QAS_DVC_MSP_VZW.apk", 280 | "system/app/VZWAPNLib/VZWAPNLib.apk", 281 | "system/app/vzw_msdc_api/vzw_msdc_api.apk", 282 | "system/framework/LowPowerMonitorDeviceInterface.jar", 283 | "system/framework/LowPowerMonitorDeviceRpm.jar", 284 | "system/framework/PowerAnomalyDataModemInterface.jar", 285 | "system/framework/PowerAnomalyQcril.jar", 286 | "system/framework/VerizonUnifiedSettings.jar", 287 | "system/priv-app/AmbientSensePrebuilt/AmbientSensePrebuilt.apk::PRESIGNED", 288 | "system/priv-app/AppDirectedSMSService/AppDirectedSMSService.apk", 289 | "system/priv-app/ConnMO/ConnMO.apk", 290 | "system/priv-app/DCMO/DCMO.apk", 291 | "system/priv-app/DiagMon/DiagMon.apk", 292 | "system/priv-app/EuiccGoogle/EuiccGoogle.apk::PRESIGNED", 293 | "system/priv-app/HotwordEnrollmentOKGoogleRT5514/HotwordEnrollmentOKGoogleRT5514.apk::PRESIGNED", 294 | "system/priv-app/HotwordEnrollmentXGoogleRT5514/HotwordEnrollmentXGoogleRT5514.apk::PRESIGNED", 295 | "system/priv-app/LLKAgent/LLKAgent.apk", 296 | "system/priv-app/MyVerizonServices/MyVerizonServices.apk", 297 | "system/priv-app/OBDM_Permissions/OBDM_Permissions.apk", 298 | "system/priv-app/OemDmTrigger/OemDmTrigger.apk", 299 | "system/priv-app/Showcase/Showcase.apk", 300 | "system/priv-app/SprintDM/SprintDM.apk", 301 | "system/priv-app/SprintHM/SprintHM.apk", 302 | "system/priv-app/VerizonAuthDialog/VerizonAuthDialog.apk", 303 | "system/priv-app/VzwOmaTrigger/VzwOmaTrigger.apk", 304 | "system/priv-app/obdm_stub/obdm_stub.apk" 305 | ], 306 | "system-other": [ 307 | "system/etc/ambient/matcher_tah.leveldb", 308 | "system/etc/permissions/android.hardware.telephony.euicc.xml", 309 | "system/etc/permissions/com.android.omadm.service.xml", 310 | "system/etc/permissions/com.android.sdm.plugins.connmo.xml", 311 | "system/etc/permissions/com.android.sdm.plugins.sprintdm.xml", 312 | "system/etc/permissions/com.android.vzwomatrigger.xml", 313 | "system/etc/permissions/com.customermobile.preload.vzw.xml", 314 | "system/etc/permissions/com.google.omadm.trigger.xml", 315 | "system/etc/permissions/com.verizon.apn.xml", 316 | "system/etc/permissions/com.verizon.embms.xml", 317 | "system/etc/permissions/com.verizon.llkagent.xml", 318 | "system/etc/permissions/com.verizon.provider.xml", 319 | "system/etc/permissions/com.verizon.services.xml", 320 | "system/etc/permissions/features-verizon.xml", 321 | "system/etc/permissions/obdm_permissions.xml", 322 | "system/etc/permissions/privapp-permissions-google.xml", 323 | "system/etc/permissions/vzw_mvs_permissions.xml", 324 | "system/etc/scone/country_border.leveldb", 325 | "system/etc/sysconfig/google-hiddenapi-package-whitelist.xml", 326 | "system/etc/sysconfig/google.xml", 327 | "system/etc/sysconfig/google_build.xml", 328 | "system/etc/sysconfig/nexus.xml", 329 | "system/etc/sysconfig/pixel_2019_midyear_exclusive.xml", 330 | "system/etc/sysconfig/pixel_experience_2017.xml", 331 | "system/etc/sysconfig/pixel_experience_2018.xml", 332 | "system/etc/sysconfig/pixel_experience_2019_midyear.xml", 333 | "system/etc/sysconfig/whitelist_com.android.omadm.service.xml", 334 | "system/lib64/libsketchology_native.so", 335 | "system/priv-app/EuiccGoogle/esim-full-v0.img", 336 | "system/priv-app/EuiccGoogle/esim-v1.img" 337 | ], 338 | "forced-modules": [], 339 | "new-modules": [], 340 | "dep-dso": [], 341 | "BoardConfigVendor": [], 342 | "device-vendor": [] 343 | } 344 | } 345 | } 346 | -------------------------------------------------------------------------------- /bullhead/overlays-api26-full/packages/apps/CarrierConfig/res/xml/vendor.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | ServerID 10 | com.android.omadm.service.CONFIGURATION_UPDATE 11 | com.vzwdmserver 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | ServerID 21 | com.android.omadm.service.CONFIGURATION_UPDATE 22 | com.vzwdmserver 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | ServerID 32 | com.android.omadm.service.CONFIGURATION_UPDATE 33 | com.vzwdmserver 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | -------------------------------------------------------------------------------- /bullhead/overlays-api26-full/packages/services/Telephony/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | 22 | 24 | 25 | 29 | 30 | false 31 | 32 | 40 | 41 | true 42 | 43 | 47 | 48 | 50 | 1 51 | 53 | 0 54 | 56 | 0 57 | 58 | 0 59 | 60 | 61 | 62 | false 63 | 64 | 70 | 71 | true 72 | 73 | 74 | false 75 | 76 | 77 | 78 | false 79 | 80 | 81 | 82 | false 83 | 84 | 86 | 87 | true 88 | 89 | 93 | 94 | true 95 | 96 | 99 | false 100 | 101 | 102 | 103 | false 104 | 105 | 116 | 117 | false 118 | 119 | 123 | 124 | false 125 | 126 | 127 | 128 | false 129 | 130 | 133 | 134 | true 135 | 136 | true 137 | 138 | true 139 | 140 | false 141 | 142 | false 143 | 144 | 145 | 146 | 147 | 148 | false 149 | 150 | 151 | com.android.dialer 152 | 153 | 154 | com.android.dialer.DialtactsActivity 155 | 156 | 157 | com.android.phone 158 | 159 | com.android.phone.NetworkSetting 160 | 161 | 162 | 163 | false 164 | 165 | 168 | 169 | false 170 | 171 | 172 | 173 | false 174 | 175 | 176 | 177 | 178 | 179 | 180 | true 181 | 182 | 183 | 184 | false 185 | 186 | 187 | true 188 | 189 | 190 | true 191 | 192 | 194 | false 195 | 196 | 198 | false 199 | 200 | 201 | false 202 | 203 | @null 204 | 205 | @null 206 | 207 | 208 | true 209 | 210 | 212 | 213 | 214 | 215 | true 216 | 217 | 218 | true 219 | 220 | 221 | false 222 | 223 | 224 | true 225 | 226 | 227 | com.android.carrierconfig 228 | 229 | -------------------------------------------------------------------------------- /bullhead/overlays-api26-naked/packages/apps/CarrierConfig/res/xml/vendor.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /bullhead/overlays-api26-naked/packages/services/Telephony/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | 22 | 24 | 25 | 29 | 30 | false 31 | 32 | 40 | 41 | true 42 | 43 | 47 | 48 | 50 | 1 51 | 53 | 0 54 | 56 | 0 57 | 58 | 0 59 | 60 | 61 | 62 | false 63 | 64 | 70 | 71 | true 72 | 73 | 74 | false 75 | 76 | 77 | 78 | false 79 | 80 | 81 | 82 | false 83 | 84 | 86 | 87 | true 88 | 89 | 93 | 94 | true 95 | 96 | 99 | false 100 | 101 | 102 | 103 | false 104 | 105 | 116 | 117 | false 118 | 119 | 123 | 124 | false 125 | 126 | 127 | 128 | false 129 | 130 | 133 | 134 | true 135 | 136 | true 137 | 138 | true 139 | 140 | false 141 | 142 | false 143 | 144 | 145 | 146 | 147 | 148 | false 149 | 150 | 151 | com.android.dialer 152 | 153 | 154 | com.android.dialer.DialtactsActivity 155 | 156 | 157 | com.android.phone 158 | 159 | com.android.phone.NetworkSetting 160 | 161 | 162 | 163 | false 164 | 165 | 168 | 169 | false 170 | 171 | 172 | 173 | false 174 | 175 | 176 | 177 | 178 | 179 | 180 | true 181 | 182 | 183 | 184 | false 185 | 186 | 187 | true 188 | 189 | 190 | true 191 | 192 | 194 | false 195 | 196 | 198 | false 199 | 200 | 201 | false 202 | 203 | @null 204 | 205 | @null 206 | 207 | 208 | true 209 | 210 | 212 | 213 | 214 | 215 | true 216 | 217 | 218 | true 219 | 220 | 221 | false 222 | 223 | 224 | true 225 | 226 | 227 | com.android.carrierconfig 228 | 229 | -------------------------------------------------------------------------------- /crosshatch/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "device-name": "pixel3-xl", 3 | "device-model": "crosshatch", 4 | "device-aliases": [], 5 | "vendor": "google", 6 | "aosp-vendor-dir": "google_devices", 7 | "device-family": "crosshatch", 8 | "supported-apis": ["api-28"], 9 | "extra-partitions": [ 10 | "abl", 11 | "aop", 12 | "cmnlib", 13 | "cmnlib64", 14 | "devcfg", 15 | "hyp", 16 | "keymaster", 17 | "modem", 18 | "qupfw", 19 | "tz", 20 | "xbl", 21 | "xbl_config" 22 | ], 23 | "AndroidMk": "crosshatch/Android.mk", 24 | "BoardConfigVendorMk": "crosshatch/BoardConfigVendorPartial.mk", 25 | "DeviceVendorMk": "crosshatch/proprietary/device-vendor.mk", 26 | "api-28": { 27 | "naked": { 28 | "overlays-dir": "", 29 | "system-bytecode": [ 30 | "system/app/com.qualcomm.qti.services.secureui/com.qualcomm.qti.services.secureui.apk", 31 | "system/app/datastatusnotification/datastatusnotification.apk", 32 | "system/app/embms/embms.apk", 33 | "system/app/ims/ims.apk", 34 | "system/app/QAS_DVC_MSP/QAS_DVC_MSP.apk", 35 | "system/app/QtiTelephonyService/QtiTelephonyService.apk", 36 | "system/app/remotesimlockservice/remotesimlockservice.apk", 37 | "system/app/smcinvokepkgmgr/smcinvokepkgmgr.apk", 38 | "system/app/uceShimService/uceShimService.apk", 39 | "system/app/uimlpaservice/uimlpaservice.apk", 40 | "system/framework/com.qualcomm.qti.uceservice-V2.0-java.jar", 41 | "system/framework/embmslibrary.jar", 42 | "system/framework/qcrilhook.jar", 43 | "system/framework/QtiTelephonyServicelibrary.jar", 44 | "system/framework/uimlpalibrary.jar", 45 | "system/framework/uimremotesimlocklibrary.jar", 46 | "system/framework/vendor.qti.ims.callinfo-V1.0-java.jar", 47 | "system/framework/vendor.qti.hardware.alarm-V1.0-java.jar", 48 | "system/framework/vendor.qti.hardware.data.latency-V1.0-java.jar", 49 | "system/framework/vendor.qti.hardware.soter-V1.0-java.jar", 50 | "system/priv-app/CNEService/CNEService.apk", 51 | "system/priv-app/ModemService/ModemService.apk", 52 | "system/priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk", 53 | "system/priv-app/grilservice/grilservice.apk" 54 | ], 55 | "system-other": [ 56 | "system/bin/icm", 57 | "system/bin/pktlogconf", 58 | "system/bin/seempd", 59 | "system/bin/smcinvoked", 60 | "system/bin/vendor_cmd_tool", 61 | "system/etc/firmware/dnd.descriptor", 62 | "system/etc/firmware/dnd.sound_model", 63 | "system/etc/firmware/music_detector.descriptor", 64 | "system/etc/firmware/music_detector.sound_model", 65 | "system/etc/permissions/cneapiclient.xml", 66 | "system/etc/permissions/com.google.modemservice.xml", 67 | "system/etc/permissions/com.qualcomm.qti.imscmservice.xml", 68 | "system/etc/permissions/com.quicinc.cne.xml", 69 | "system/etc/permissions/embms.xml", 70 | "system/etc/permissions/lpa.xml", 71 | "system/etc/permissions/LteDirectDiscovery.xml", 72 | "system/etc/permissions/qcrilhook.xml", 73 | "system/etc/permissions/privapp-permissions-bluecross.xml", 74 | "system/etc/permissions/RemoteSimlock.xml", 75 | "system/etc/permissions/telephonyservice.xml", 76 | "system/etc/permissions/UimService.xml", 77 | "system/lib64/com.qualcomm.qti.ant@1.0.so", 78 | "system/lib64/com.qualcomm.qti.imscmservice@1.0.so", 79 | "system/lib64/com.qualcomm.qti.uceservice@2.0.so", 80 | "system/lib64/libaptX_encoder.so", 81 | "system/lib64/libaptXHD_encoder.so", 82 | "system/lib64/libadsprpc_system.so", 83 | "system/lib64/libbarhopper.so", 84 | "system/lib64/libcdsprpc_system.so", 85 | "system/lib64/libdiag_system.so", 86 | "system/lib64/libGPQTEEC_system.so", 87 | "system/lib64/libGPTEE_system.so", 88 | "system/lib64/lib-imsvideocodec.so", 89 | "system/lib64/lib-imsvtextutils.so", 90 | "system/lib64/lib-imsvt.so", 91 | "system/lib64/lib-imsvtutils.so", 92 | "system/lib64/liblistenjni.so", 93 | "system/lib64/liblistensoundmodel2.so", 94 | "system/lib64/liblpmdeviceutils.so", 95 | "system/lib64/libmdsprpc_system.so", 96 | "system/lib64/libOpenCL_system.so", 97 | "system/lib64/libqcbor.so", 98 | "system/lib64/libQTEEConnector_system.so", 99 | "system/lib64/librcc.so", 100 | "system/lib64/libsdm-disp-apis.so", 101 | "system/lib64/libsdsprpc_system.so", 102 | "system/lib64/libsecureuisvc_jni.so", 103 | "system/lib64/libsecureui_svcsock_system.so", 104 | "system/lib64/libsensorslog.so", 105 | "system/lib64/libsmcinvokecred.so", 106 | "system/lib64/libsns_low_lat_stream_stub.so", 107 | "system/lib64/libtzcom.so", 108 | "system/lib64/vendor.display.color@1.0.so", 109 | "system/lib64/vendor.display.color@1.1.so", 110 | "system/lib64/vendor.display.config@1.0.so", 111 | "system/lib64/vendor.display.postproc@1.0.so", 112 | "system/lib64/vendor.google.wireless_charger@1.0.so", 113 | "system/lib64/vendor.qti.esepowermanager@1.0.so", 114 | "system/lib64/vendor.qti.hardware.alarm@1.0.so", 115 | "system/lib64/vendor.qti.hardware.data.latency@1.0.so", 116 | "system/lib64/vendor.qti.hardware.iop@1.0.so", 117 | "system/lib64/vendor.qti.hardware.iop@2.0.so", 118 | "system/lib64/vendor.qti.hardware.perf@1.0.so", 119 | "system/lib64/vendor.qti.hardware.qdutils_disp@1.0.so", 120 | "system/lib64/vendor.qti.hardware.qteeconnector@1.0.so", 121 | "system/lib64/vendor.qti.hardware.radio.am@1.0.so", 122 | "system/lib64/vendor.qti.hardware.radio.ims@1.0.so", 123 | "system/lib64/vendor.qti.hardware.radio.ims@1.1.so", 124 | "system/lib64/vendor.qti.hardware.radio.ims@1.2.so", 125 | "system/lib64/vendor.qti.hardware.radio.lpa@1.0.so", 126 | "system/lib64/vendor.qti.hardware.radio.qcrilhook@1.0.so", 127 | "system/lib64/vendor.qti.hardware.radio.qtiradio@1.0.so", 128 | "system/lib64/vendor.qti.hardware.radio.uim@1.0.so", 129 | "system/lib64/vendor.qti.hardware.radio.uim_remote_client@1.0.so", 130 | "system/lib64/vendor.qti.hardware.radio.uim_remote_server@1.0.so", 131 | "system/lib64/vendor.qti.hardware.soter@1.0.so", 132 | "system/lib64/vendor.qti.hardware.tui_comm@1.0.so", 133 | "system/lib64/vendor.qti.hardware.vpp@1.1.so", 134 | "system/lib64/vendor.qti.ims.callinfo@1.0.so", 135 | "system/lib64/vendor.qti.imsrtpservice@1.0.so", 136 | "system/lib64/vendor.qti.voiceprint@1.0.so", 137 | "system/lib/com.qualcomm.qti.ant@1.0.so", 138 | "system/lib/com.qualcomm.qti.imscmservice@1.0.so", 139 | "system/lib/com.qualcomm.qti.uceservice@2.0.so", 140 | "system/lib/libadsprpc_system.so", 141 | "system/lib/libcdsprpc_system.so", 142 | "system/lib/libdiag_system.so", 143 | "system/lib/libGPQTEEC_system.so", 144 | "system/lib/libGPTEE_system.so", 145 | "system/lib/libimscamera_jni.so", 146 | "system/lib/libimsmedia_jni.so", 147 | "system/lib/lib-imsvideocodec.so", 148 | "system/lib/lib-imsvtextutils.so", 149 | "system/lib/lib-imsvt.so", 150 | "system/lib/lib-imsvtutils.so", 151 | "system/lib/liblistenjni.so", 152 | "system/lib/liblistensoundmodel2.so", 153 | "system/lib/libmdsprpc_system.so", 154 | "system/lib/libOpenCL_system.so", 155 | "system/lib/libqcbor.so", 156 | "system/lib/libqct_resampler.so", 157 | "system/lib/libQTEEConnector_system.so", 158 | "system/lib/librcc.so", 159 | "system/lib/libsdm-disp-apis.so", 160 | "system/lib/libsdsprpc_system.so", 161 | "system/lib/libsecureuisvc_jni.so", 162 | "system/lib/libsecureui_svcsock_system.so", 163 | "system/lib/libsensorslog.so", 164 | "system/lib/libsmcinvokecred.so", 165 | "system/lib/libsns_low_lat_stream_stub.so", 166 | "system/lib/libtzcom.so", 167 | "system/lib/rfsa/adsp/libsns_low_lat_stream_skel.so", 168 | "system/lib/vendor.display.color@1.0.so", 169 | "system/lib/vendor.display.color@1.1.so", 170 | "system/lib/vendor.display.config@1.0.so", 171 | "system/lib/vendor.display.postproc@1.0.so", 172 | "system/lib/vendor.google.wireless_charger@1.0.so", 173 | "system/lib/vendor.qti.esepowermanager@1.0.so", 174 | "system/lib/vendor.qti.hardware.alarm@1.0.so", 175 | "system/lib/vendor.qti.hardware.data.latency@1.0.so", 176 | "system/lib/vendor.qti.hardware.iop@1.0.so", 177 | "system/lib/vendor.qti.hardware.iop@2.0.so", 178 | "system/lib/vendor.qti.hardware.perf@1.0.so", 179 | "system/lib/vendor.qti.hardware.qdutils_disp@1.0.so", 180 | "system/lib/vendor.qti.hardware.qteeconnector@1.0.so", 181 | "system/lib/vendor.qti.hardware.radio.am@1.0.so", 182 | "system/lib/vendor.qti.hardware.radio.ims@1.0.so", 183 | "system/lib/vendor.qti.hardware.radio.ims@1.1.so", 184 | "system/lib/vendor.qti.hardware.radio.ims@1.2.so", 185 | "system/lib/vendor.qti.hardware.radio.lpa@1.0.so", 186 | "system/lib/vendor.qti.hardware.radio.qcrilhook@1.0.so", 187 | "system/lib/vendor.qti.hardware.radio.qtiradio@1.0.so", 188 | "system/lib/vendor.qti.hardware.radio.uim@1.0.so", 189 | "system/lib/vendor.qti.hardware.radio.uim_remote_client@1.0.so", 190 | "system/lib/vendor.qti.hardware.radio.uim_remote_server@1.0.so", 191 | "system/lib/vendor.qti.hardware.soter@1.0.so", 192 | "system/lib/vendor.qti.hardware.tui_comm@1.0.so", 193 | "system/lib/vendor.qti.hardware.vpp@1.1.so", 194 | "system/lib/vendor.qti.ims.callinfo@1.0.so", 195 | "system/lib/vendor.qti.imsrtpservice@1.0.so", 196 | "system/lib/vendor.qti.voiceprint@1.0.so" 197 | ], 198 | "forced-modules": [ 199 | "android.hardware.radio@1.0", 200 | "android.hardware.radio@1.1", 201 | "android.hardware.radio@1.2", 202 | "android.hardware.radio.config@1.0", 203 | "android.hardware.radio.deprecated@1.0", 204 | "android.hardware.secure_element@1.0", 205 | "com.android.ims.rcsmanager", 206 | "libminui", 207 | "libprotobuf-cpp-full-rtti", 208 | "libprotobuf-cpp-full", 209 | "RcsService" 210 | ], 211 | "new-modules": [], 212 | "dep-dso": [], 213 | "BoardConfigVendor": [], 214 | "device-vendor": [] 215 | }, 216 | "full": { 217 | "overlays-dir": "", 218 | "system-bytecode": [ 219 | "system/app/EaselServicePrebuilt/EaselServicePrebuilt.apk::PRESIGNED", 220 | "system/app/QAS_DVC_MSP_VZW/QAS_DVC_MSP_VZW.apk", 221 | "system/app/vzw_msdc_api/vzw_msdc_api.apk", 222 | "system/framework/LowPowerMonitorDeviceInterface.jar", 223 | "system/framework/LowPowerMonitorDeviceRpm.jar", 224 | "system/framework/PowerAnomalyDataModemInterface.jar", 225 | "system/framework/PowerAnomalyQcril.jar", 226 | "system/framework/VerizonUnifiedSettings.jar", 227 | "system/priv-app/AmbientSensePrebuilt/AmbientSensePrebuilt.apk::PRESIGNED", 228 | "system/priv-app/EuiccGoogle/EuiccGoogle.apk::PRESIGNED", 229 | "system/priv-app/HotwordEnrollmentOKGoogleWCD9340/HotwordEnrollmentOKGoogleWCD9340.apk::PRESIGNED", 230 | "system/priv-app/HotwordEnrollmentTGoogleWCD9340/HotwordEnrollmentTGoogleWCD9340.apk::PRESIGNED", 231 | "system/priv-app/HotwordEnrollmentXGoogleWCD9340/HotwordEnrollmentXGoogleWCD9340.apk::PRESIGNED", 232 | "system/priv-app/OemDmTrigger/OemDmTrigger.apk", 233 | "system/priv-app/SprintDM/SprintDM.apk", 234 | "system/priv-app/SprintHM/SprintHM.apk", 235 | "system/priv-app/VerizonAuthDialog/VerizonAuthDialog.apk" 236 | ], 237 | "system-other": [ 238 | "system/etc/ambient/matcher_tah.leveldb", 239 | "system/etc/permissions/android.hardware.telephony.euicc.xml", 240 | "system/etc/permissions/com.android.omadm.service.xml", 241 | "system/etc/permissions/com.android.sdm.plugins.sprintdm.xml", 242 | "system/etc/permissions/com.google.omadm.trigger.xml", 243 | "system/etc/permissions/com.verizon.embms.xml", 244 | "system/etc/permissions/com.verizon.provider.xml", 245 | "system/etc/permissions/features-verizon.xml", 246 | "system/etc/permissions/privapp-permissions-google.xml", 247 | "system/etc/scone/country_border.leveldb", 248 | "system/etc/sysconfig/google_build.xml", 249 | "system/etc/sysconfig/google-hiddenapi-package-whitelist.xml", 250 | "system/etc/sysconfig/google_vr_build.xml", 251 | "system/etc/sysconfig/google.xml", 252 | "system/etc/sysconfig/nexus.xml", 253 | "system/etc/sysconfig/pixel_2018_exclusive.xml", 254 | "system/etc/sysconfig/pixel_experience_2017.xml", 255 | "system/etc/sysconfig/pixel_experience_2018.xml", 256 | "system/etc/sysconfig/whitelist_com.android.omadm.service.xml", 257 | "system/lib64/libsketchology_native.so", 258 | "system/priv-app/EuiccGoogle/esim-full-v0.img", 259 | "system/priv-app/EuiccGoogle/esim-v1.img" 260 | ], 261 | "forced-modules": [ 262 | "bufferhubd", 263 | "com.google.vr.platform", 264 | "com.google.vr.platform.xml", 265 | "libdvr", 266 | "libdvr_loader", 267 | "libvr_hwc-hal", 268 | "performanced", 269 | "virtual_touchpad", 270 | "vr_hwc" 271 | ], 272 | "new-modules": [], 273 | "dep-dso": [], 274 | "BoardConfigVendor": [], 275 | "device-vendor": [] 276 | } 277 | } 278 | } 279 | -------------------------------------------------------------------------------- /flounder/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "device-name": "nexus-9", 3 | "device-model": "flounder", 4 | "device-aliases": ["volantis", "volantisg"], 5 | "vendor": "htc", 6 | "aosp-vendor-dir": "htc", 7 | "device-family": "flounder", 8 | "supported-apis": ["api-23", "api-24", "api-25"], 9 | "extra-partitions": [], 10 | "AndroidMk": "flounder/Android.mk", 11 | "BoardConfigVendorMk": "flounder/BoardConfigVendor.mk", 12 | "DeviceVendorMk": "flounder/device-vendor.mk", 13 | "api-23": { 14 | "naked": { 15 | "overlays-dir": "", 16 | "system-bytecode": [], 17 | "system-other": [ 18 | "system/etc/RT5506", 19 | "system/etc/fmas_eq.dat", 20 | "system/lib/soundfx/libfmas.so" 21 | ], 22 | "forced-modules": [], 23 | "new-modules": [], 24 | "dep-dso": [], 25 | "BoardConfigVendor": [], 26 | "device-vendor": [] 27 | }, 28 | "full": { 29 | "overlays-dir": "", 30 | "system-bytecode": [], 31 | "system-other": [], 32 | "forced-modules": [], 33 | "new-modules": [], 34 | "dep-dso": [], 35 | "BoardConfigVendor": [], 36 | "device-vendor": [] 37 | } 38 | }, 39 | "api-24": { 40 | "naked": { 41 | "overlays-dir": "", 42 | "system-bytecode": [], 43 | "system-other": [ 44 | "system/etc/RT5506", 45 | "system/etc/fmas_eq.dat", 46 | "system/lib/soundfx/libfmas.so" 47 | ], 48 | "forced-modules": [], 49 | "new-modules": [], 50 | "dep-dso": [], 51 | "BoardConfigVendor": [], 52 | "device-vendor": [] 53 | }, 54 | "full": { 55 | "overlays-dir": "", 56 | "system-bytecode": [], 57 | "system-other": [], 58 | "forced-modules": [], 59 | "new-modules": [], 60 | "dep-dso": [], 61 | "BoardConfigVendor": [], 62 | "device-vendor": [] 63 | } 64 | }, 65 | "api-25": { 66 | "naked": { 67 | "overlays-dir": "", 68 | "system-bytecode": [], 69 | "system-other": [ 70 | "system/etc/RT5506", 71 | "system/etc/fmas_eq.dat", 72 | "system/lib/soundfx/libfmas.so" 73 | ], 74 | "forced-modules": [], 75 | "new-modules": [], 76 | "dep-dso": [], 77 | "BoardConfigVendor": [], 78 | "device-vendor": [] 79 | }, 80 | "full": { 81 | "overlays-dir": "", 82 | "system-bytecode": [], 83 | "system-other": [], 84 | "forced-modules": [], 85 | "new-modules": [], 86 | "dep-dso": [], 87 | "BoardConfigVendor": [], 88 | "device-vendor": [] 89 | } 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /hostTools/Darwin/bin/dexrepair: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anestisb/android-prepare-vendor/9dc54437d3152760c0aff2d2c309a474550e6cba/hostTools/Darwin/bin/dexrepair -------------------------------------------------------------------------------- /hostTools/Darwin/bin/jq: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anestisb/android-prepare-vendor/9dc54437d3152760c0aff2d2c309a474550e6cba/hostTools/Darwin/bin/jq -------------------------------------------------------------------------------- /hostTools/Darwin/bin/simg2img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anestisb/android-prepare-vendor/9dc54437d3152760c0aff2d2c309a474550e6cba/hostTools/Darwin/bin/simg2img -------------------------------------------------------------------------------- /hostTools/Java/baksmali.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anestisb/android-prepare-vendor/9dc54437d3152760c0aff2d2c309a474550e6cba/hostTools/Java/baksmali.jar -------------------------------------------------------------------------------- /hostTools/Java/oat2dex.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anestisb/android-prepare-vendor/9dc54437d3152760c0aff2d2c309a474550e6cba/hostTools/Java/oat2dex.jar -------------------------------------------------------------------------------- /hostTools/Java/smali.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anestisb/android-prepare-vendor/9dc54437d3152760c0aff2d2c309a474550e6cba/hostTools/Java/smali.jar -------------------------------------------------------------------------------- /hostTools/Linux/bin/dexrepair: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anestisb/android-prepare-vendor/9dc54437d3152760c0aff2d2c309a474550e6cba/hostTools/Linux/bin/dexrepair -------------------------------------------------------------------------------- /hostTools/Linux/bin/jq: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anestisb/android-prepare-vendor/9dc54437d3152760c0aff2d2c309a474550e6cba/hostTools/Linux/bin/jq -------------------------------------------------------------------------------- /hostTools/Linux/bin/simg2img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anestisb/android-prepare-vendor/9dc54437d3152760c0aff2d2c309a474550e6cba/hostTools/Linux/bin/simg2img -------------------------------------------------------------------------------- /marlin/overlays-api26-full/packages/services/Telephony/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | 22 | 24 | 25 | 29 | 30 | false 31 | 32 | 40 | 41 | true 42 | 43 | 47 | 48 | 50 | 1 51 | 53 | 0 54 | 56 | 0 57 | 58 | 0 59 | 60 | 61 | 62 | false 63 | 64 | 70 | 71 | true 72 | 73 | 74 | false 75 | 76 | 77 | 78 | false 79 | 80 | 81 | 82 | false 83 | 84 | 86 | 87 | true 88 | 89 | 93 | 94 | true 95 | 96 | 99 | false 100 | 101 | 102 | 103 | false 104 | 105 | 116 | 117 | false 118 | 119 | 123 | 124 | false 125 | 126 | 127 | 128 | false 129 | 130 | 133 | 134 | true 135 | 136 | true 137 | 138 | true 139 | 140 | false 141 | 142 | false 143 | 144 | 145 | 146 | 147 | 148 | false 149 | 150 | 151 | com.android.dialer 152 | 153 | 154 | com.android.dialer.DialtactsActivity 155 | 156 | 157 | com.android.phone 158 | 159 | com.android.phone.NetworkSetting 160 | 161 | 162 | 163 | false 164 | 165 | 168 | 169 | false 170 | 171 | 172 | 173 | false 174 | 175 | 176 | 177 | 178 | 179 | 180 | true 181 | 182 | 183 | 184 | false 185 | 186 | 187 | true 188 | 189 | 190 | true 191 | 192 | 194 | false 195 | 196 | 198 | false 199 | 200 | 201 | false 202 | 203 | @null 204 | 205 | @null 206 | 207 | 208 | true 209 | 210 | 212 | 213 | 214 | 215 | true 216 | 217 | 218 | true 219 | 220 | 221 | false 222 | 223 | 224 | true 225 | 226 | 227 | com.android.carrierconfig 228 | 229 | -------------------------------------------------------------------------------- /marlin/overlays-api26-naked/packages/apps/CarrierConfig/res/xml/vendor.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /marlin/overlays-api26-naked/packages/services/Telephony/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | 22 | 24 | 25 | 29 | 30 | false 31 | 32 | 40 | 41 | true 42 | 43 | 47 | 48 | 50 | 1 51 | 53 | 0 54 | 56 | 0 57 | 58 | 0 59 | 60 | 61 | 62 | false 63 | 64 | 70 | 71 | true 72 | 73 | 74 | false 75 | 76 | 77 | 78 | false 79 | 80 | 81 | 82 | false 83 | 84 | 86 | 87 | true 88 | 89 | 93 | 94 | true 95 | 96 | 99 | false 100 | 101 | 102 | 103 | false 104 | 105 | 116 | 117 | false 118 | 119 | 123 | 124 | false 125 | 126 | 127 | 128 | false 129 | 130 | 133 | 134 | true 135 | 136 | true 137 | 138 | true 139 | 140 | false 141 | 142 | false 143 | 144 | 145 | 146 | 147 | 148 | false 149 | 150 | 151 | com.android.dialer 152 | 153 | 154 | com.android.dialer.DialtactsActivity 155 | 156 | 157 | com.android.phone 158 | 159 | com.android.phone.NetworkSetting 160 | 161 | 162 | 163 | false 164 | 165 | 168 | 169 | false 170 | 171 | 172 | 173 | false 174 | 175 | 176 | 177 | 178 | 179 | 180 | true 181 | 182 | 183 | 184 | false 185 | 186 | 187 | true 188 | 189 | 190 | true 191 | 192 | 194 | false 195 | 196 | 198 | false 199 | 200 | 201 | false 202 | 203 | @null 204 | 205 | @null 206 | 207 | 208 | true 209 | 210 | 212 | 213 | 214 | 215 | true 216 | 217 | 218 | true 219 | 220 | 221 | false 222 | 223 | 224 | true 225 | 226 | 227 | com.android.carrierconfig 228 | 229 | -------------------------------------------------------------------------------- /sailfish/overlays-api26-full/packages/services/Telephony/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | 22 | 24 | 25 | 29 | 30 | false 31 | 32 | 40 | 41 | true 42 | 43 | 47 | 48 | 50 | 1 51 | 53 | 0 54 | 56 | 0 57 | 58 | 0 59 | 60 | 61 | 62 | false 63 | 64 | 70 | 71 | true 72 | 73 | 74 | false 75 | 76 | 77 | 78 | false 79 | 80 | 81 | 82 | false 83 | 84 | 86 | 87 | true 88 | 89 | 93 | 94 | true 95 | 96 | 99 | false 100 | 101 | 102 | 103 | false 104 | 105 | 116 | 117 | false 118 | 119 | 123 | 124 | false 125 | 126 | 127 | 128 | false 129 | 130 | 133 | 134 | true 135 | 136 | true 137 | 138 | true 139 | 140 | false 141 | 142 | false 143 | 144 | 145 | 146 | 147 | 148 | false 149 | 150 | 151 | com.android.dialer 152 | 153 | 154 | com.android.dialer.DialtactsActivity 155 | 156 | 157 | com.android.phone 158 | 159 | com.android.phone.NetworkSetting 160 | 161 | 162 | 163 | false 164 | 165 | 168 | 169 | false 170 | 171 | 172 | 173 | false 174 | 175 | 176 | 177 | 178 | 179 | 180 | true 181 | 182 | 183 | 184 | false 185 | 186 | 187 | true 188 | 189 | 190 | true 191 | 192 | 194 | false 195 | 196 | 198 | false 199 | 200 | 201 | false 202 | 203 | @null 204 | 205 | @null 206 | 207 | 208 | true 209 | 210 | 212 | 213 | 214 | 215 | true 216 | 217 | 218 | true 219 | 220 | 221 | false 222 | 223 | 224 | true 225 | 226 | 227 | com.android.carrierconfig 228 | 229 | -------------------------------------------------------------------------------- /sailfish/overlays-api26-naked/packages/apps/CarrierConfig/res/xml/vendor.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /sailfish/overlays-api26-naked/packages/services/Telephony/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | 22 | 24 | 25 | 29 | 30 | false 31 | 32 | 40 | 41 | true 42 | 43 | 47 | 48 | 50 | 1 51 | 53 | 0 54 | 56 | 0 57 | 58 | 0 59 | 60 | 61 | 62 | false 63 | 64 | 70 | 71 | true 72 | 73 | 74 | false 75 | 76 | 77 | 78 | false 79 | 80 | 81 | 82 | false 83 | 84 | 86 | 87 | true 88 | 89 | 93 | 94 | true 95 | 96 | 99 | false 100 | 101 | 102 | 103 | false 104 | 105 | 116 | 117 | false 118 | 119 | 123 | 124 | false 125 | 126 | 127 | 128 | false 129 | 130 | 133 | 134 | true 135 | 136 | true 137 | 138 | true 139 | 140 | false 141 | 142 | false 143 | 144 | 145 | 146 | 147 | 148 | false 149 | 150 | 151 | com.android.dialer 152 | 153 | 154 | com.android.dialer.DialtactsActivity 155 | 156 | 157 | com.android.phone 158 | 159 | com.android.phone.NetworkSetting 160 | 161 | 162 | 163 | false 164 | 165 | 168 | 169 | false 170 | 171 | 172 | 173 | false 174 | 175 | 176 | 177 | 178 | 179 | 180 | true 181 | 182 | 183 | 184 | false 185 | 186 | 187 | true 188 | 189 | 190 | true 191 | 192 | 194 | false 195 | 196 | 198 | false 199 | 200 | 201 | false 202 | 203 | @null 204 | 205 | @null 206 | 207 | 208 | true 209 | 210 | 212 | 213 | 214 | 215 | true 216 | 217 | 218 | true 219 | 220 | 221 | false 222 | 223 | 224 | true 225 | 226 | 227 | com.android.carrierconfig 228 | 229 | -------------------------------------------------------------------------------- /sargo/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "device-name": "pixel3a", 3 | "device-model": "sargo", 4 | "device-aliases": [], 5 | "vendor": "google", 6 | "aosp-vendor-dir": "google_devices", 7 | "device-family": "bonito", 8 | "supported-apis": ["api-28"], 9 | "extra-partitions": [ 10 | "abl", 11 | "aop", 12 | "cmnlib", 13 | "cmnlib64", 14 | "devcfg", 15 | "hyp", 16 | "keymaster", 17 | "modem", 18 | "qupfw", 19 | "tz", 20 | "xbl", 21 | "xbl_config" 22 | ], 23 | "AndroidMk": "sargo/Android.mk", 24 | "BoardConfigVendorMk": "sargo/BoardConfigVendorPartial.mk", 25 | "DeviceVendorMk": "bonito/proprietary/device-vendor.mk", 26 | "api-28": { 27 | "naked": { 28 | "overlays-dir": "", 29 | "system-bytecode": [ 30 | "system/app/QAS_DVC_MSP/QAS_DVC_MSP.apk", 31 | "system/app/QtiTelephonyService/QtiTelephonyService.apk", 32 | "system/app/datastatusnotification/datastatusnotification.apk", 33 | "system/app/embms/embms.apk", 34 | "system/app/ims/ims.apk", 35 | "system/app/remotesimlockservice/remotesimlockservice.apk", 36 | "system/app/smcinvokepkgmgr/smcinvokepkgmgr.apk", 37 | "system/app/uceShimService/uceShimService.apk", 38 | "system/app/uimlpaservice/uimlpaservice.apk", 39 | "system/framework/QtiTelephonyServicelibrary.jar", 40 | "system/framework/com.qualcomm.qti.uceservice-V2.0-java.jar", 41 | "system/framework/embmslibrary.jar", 42 | "system/framework/qcrilhook.jar", 43 | "system/framework/uimlpalibrary.jar", 44 | "system/framework/uimremotesimlocklibrary.jar", 45 | "system/framework/vendor.qti.hardware.alarm-V1.0-java.jar", 46 | "system/framework/vendor.qti.hardware.data.latency-V1.0-java.jar", 47 | "system/framework/vendor.qti.hardware.fingerprint-V1.0-java.jar", 48 | "system/framework/vendor.qti.hardware.soter-V1.0-java.jar", 49 | "system/framework/vendor.qti.hardware.wigig.netperftuner-V1.0-java.jar", 50 | "system/framework/vendor.qti.hardware.wigig.supptunnel-V1.0-java.jar", 51 | "system/framework/vendor.qti.ims.callinfo-V1.0-java.jar", 52 | "system/framework/vendor.qti.voiceprint-V1.0-java.jar", 53 | "system/priv-app/CNEService/CNEService.apk", 54 | "system/priv-app/ModemService/ModemService.apk", 55 | "system/priv-app/grilservice/grilservice.apk", 56 | "system/priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk", 57 | "system/product/app/SSRestartDetector/SSRestartDetector.apk", 58 | "system/product/app/com.qualcomm.qti.services.secureui/com.qualcomm.qti.services.secureui.apk" 59 | ], 60 | "system-other": [ 61 | "system/bin/icm", 62 | "system/bin/move_time_data.sh", 63 | "system/bin/pktlogconf", 64 | "system/bin/smcinvoked", 65 | "system/bin/vendor_cmd_tool", 66 | "system/etc/cne/andsfCne.xml", 67 | "system/etc/firmware/music_detector.descriptor", 68 | "system/etc/firmware/music_detector.sound_model", 69 | "system/etc/permissions/LteDirectDiscovery.xml", 70 | "system/etc/permissions/RemoteSimlock.xml", 71 | "system/etc/permissions/UimService.xml", 72 | "system/etc/permissions/cneapiclient.xml", 73 | "system/etc/permissions/com.google.modemservice.xml", 74 | "system/etc/permissions/com.qualcomm.qti.imscmservice.xml", 75 | "system/etc/permissions/com.quicinc.cne.xml", 76 | "system/etc/permissions/embms.xml", 77 | "system/etc/permissions/lpa.xml", 78 | "system/etc/permissions/privapp-permissions-bonito.xml", 79 | "system/etc/permissions/qcrilhook.xml", 80 | "system/etc/permissions/telephonyservice.xml", 81 | "system/lib/com.qualcomm.qti.ant@1.0.so", 82 | "system/lib/com.qualcomm.qti.imscmservice@1.0.so", 83 | "system/lib/com.qualcomm.qti.uceservice@2.0.so", 84 | "system/lib/com.quicinc.cne.server@1.0.so", 85 | "system/lib/lib-imsvideocodec.so", 86 | "system/lib/lib-imsvt.so", 87 | "system/lib/lib-imsvtextutils.so", 88 | "system/lib/lib-imsvtutils.so", 89 | "system/lib/libFidoCrypto_system.so", 90 | "system/lib/libGPQTEEC_system.so", 91 | "system/lib/libGPTEE_system.so", 92 | "system/lib/libOpenCL_system.so", 93 | "system/lib/libQTEEConnector_system.so", 94 | "system/lib/libadsprpc_system.so", 95 | "system/lib/libcdsprpc_system.so", 96 | "system/lib/libdiag_system.so", 97 | "system/lib/libdisplayconfig.so", 98 | "system/lib/libimscamera_jni.so", 99 | "system/lib/libimsmedia_jni.so", 100 | "system/lib/liblistenjni.so", 101 | "system/lib/liblistensoundmodel2.so", 102 | "system/lib/libmdsprpc_system.so", 103 | "system/lib/libqcbor_system.so", 104 | "system/lib/libqct_resampler.so", 105 | "system/lib/libqsap_sdk.so", 106 | "system/lib/librcc.so", 107 | "system/lib/libsdm-disp-apis.so", 108 | "system/lib/libsdsprpc_system.so", 109 | "system/lib/libseccam.so", 110 | "system/lib/libsecureui_svcsock_system.so", 111 | "system/lib/libsensorslog.so", 112 | "system/lib/libsmcinvokecred.so", 113 | "system/lib/libsns_device_mode_stub.so", 114 | "system/lib/libsns_fastRPC_util.so", 115 | "system/lib/libsns_low_lat_stream_stub.so", 116 | "system/lib/libtzcom.so", 117 | "system/lib/rfsa/adsp/libsns_device_mode_skel.so", 118 | "system/lib/rfsa/adsp/libsns_low_lat_stream_skel.so", 119 | "system/lib/vendor.display.color@1.0.so", 120 | "system/lib/vendor.display.color@1.1.so", 121 | "system/lib/vendor.display.color@1.2.so", 122 | "system/lib/vendor.display.config@1.0.so", 123 | "system/lib/vendor.display.config@1.1.so", 124 | "system/lib/vendor.display.config@1.2.so", 125 | "system/lib/vendor.display.config@1.3.so", 126 | "system/lib/vendor.display.config@1.4.so", 127 | "system/lib/vendor.display.config@1.5.so", 128 | "system/lib/vendor.display.postproc@1.0.so", 129 | "system/lib/vendor.qti.esepowermanager@1.0.so", 130 | "system/lib/vendor.qti.hardware.alarm@1.0.so", 131 | "system/lib/vendor.qti.hardware.biometrics.face@1.0-adapter-helper.so", 132 | "system/lib/vendor.qti.hardware.biometrics.face@1.0.so", 133 | "system/lib/vendor.qti.hardware.data.latency@1.0.so", 134 | "system/lib/vendor.qti.hardware.fingerprint@1.0.so", 135 | "system/lib/vendor.qti.hardware.iop@1.0.so", 136 | "system/lib/vendor.qti.hardware.iop@2.0.so", 137 | "system/lib/vendor.qti.hardware.perf@1.0.so", 138 | "system/lib/vendor.qti.hardware.qdutils_disp@1.0.so", 139 | "system/lib/vendor.qti.hardware.qteeconnector@1.0.so", 140 | "system/lib/vendor.qti.hardware.radio.am@1.0.so", 141 | "system/lib/vendor.qti.hardware.radio.ims@1.0.so", 142 | "system/lib/vendor.qti.hardware.radio.ims@1.1.so", 143 | "system/lib/vendor.qti.hardware.radio.ims@1.2.so", 144 | "system/lib/vendor.qti.hardware.radio.ims@1.3.so", 145 | "system/lib/vendor.qti.hardware.radio.ims@1.4.so", 146 | "system/lib/vendor.qti.hardware.radio.lpa@1.0.so", 147 | "system/lib/vendor.qti.hardware.radio.qcrilhook@1.0.so", 148 | "system/lib/vendor.qti.hardware.radio.qtiradio@1.0.so", 149 | "system/lib/vendor.qti.hardware.radio.qtiradio@2.0.so", 150 | "system/lib/vendor.qti.hardware.radio.uim@1.0.so", 151 | "system/lib/vendor.qti.hardware.radio.uim@1.1.so", 152 | "system/lib/vendor.qti.hardware.radio.uim_remote_client@1.0.so", 153 | "system/lib/vendor.qti.hardware.radio.uim_remote_server@1.0.so", 154 | "system/lib/vendor.qti.hardware.scve.objecttracker@1.0-adapter-helper.so", 155 | "system/lib/vendor.qti.hardware.scve.objecttracker@1.0.so", 156 | "system/lib/vendor.qti.hardware.scve.panorama@1.0-adapter-helper.so", 157 | "system/lib/vendor.qti.hardware.scve.panorama@1.0.so", 158 | "system/lib/vendor.qti.hardware.seccam@1.0.so", 159 | "system/lib/vendor.qti.hardware.soter@1.0.so", 160 | "system/lib/vendor.qti.hardware.tui_comm@1.0.so", 161 | "system/lib/vendor.qti.hardware.vpp@1.1.so", 162 | "system/lib/vendor.qti.hardware.vpp@1.2.so", 163 | "system/lib/vendor.qti.hardware.wigig.netperftuner@1.0.so", 164 | "system/lib/vendor.qti.hardware.wigig.supptunnel@1.0.so", 165 | "system/lib/vendor.qti.ims.callinfo@1.0.so", 166 | "system/lib/vendor.qti.imsrtpservice@1.0.so", 167 | "system/lib/vendor.qti.voiceprint@1.0.so", 168 | "system/lib64/com.qualcomm.qti.ant@1.0.so", 169 | "system/lib64/com.qualcomm.qti.imscmservice@1.0.so", 170 | "system/lib64/com.qualcomm.qti.uceservice@2.0.so", 171 | "system/lib64/com.quicinc.cne.server@1.0.so", 172 | "system/lib64/lib-imsvideocodec.so", 173 | "system/lib64/lib-imsvt.so", 174 | "system/lib64/lib-imsvtextutils.so", 175 | "system/lib64/lib-imsvtutils.so", 176 | "system/lib64/libFidoCrypto_system.so", 177 | "system/lib64/libGPQTEEC_system.so", 178 | "system/lib64/libGPTEE_system.so", 179 | "system/lib64/libOpenCL_system.so", 180 | "system/lib64/libQTEEConnector_system.so", 181 | "system/lib64/libadsprpc_system.so", 182 | "system/lib64/libaptXHD_encoder.so", 183 | "system/lib64/libaptX_encoder.so", 184 | "system/lib64/libbarhopper.so", 185 | "system/lib64/libcdsprpc_system.so", 186 | "system/lib64/libdiag_system.so", 187 | "system/lib64/libdisplayconfig.so", 188 | "system/lib64/liblistenjni.so", 189 | "system/lib64/liblistensoundmodel2.so", 190 | "system/lib64/liblpmdeviceutils.so", 191 | "system/lib64/libmdsprpc_system.so", 192 | "system/lib64/libqcbor_system.so", 193 | "system/lib64/libqsap_sdk.so", 194 | "system/lib64/librcc.so", 195 | "system/lib64/libsdm-disp-apis.so", 196 | "system/lib64/libsdsprpc_system.so", 197 | "system/lib64/libseccam.so", 198 | "system/lib64/libsecureui_svcsock_system.so", 199 | "system/lib64/libsensorslog.so", 200 | "system/lib64/libsmcinvokecred.so", 201 | "system/lib64/libsns_device_mode_stub.so", 202 | "system/lib64/libsns_fastRPC_util.so", 203 | "system/lib64/libsns_low_lat_stream_stub.so", 204 | "system/lib64/libtzcom.so", 205 | "system/lib64/vendor.display.color@1.0.so", 206 | "system/lib64/vendor.display.color@1.1.so", 207 | "system/lib64/vendor.display.color@1.2.so", 208 | "system/lib64/vendor.display.config@1.0.so", 209 | "system/lib64/vendor.display.config@1.1.so", 210 | "system/lib64/vendor.display.config@1.2.so", 211 | "system/lib64/vendor.display.config@1.3.so", 212 | "system/lib64/vendor.display.config@1.4.so", 213 | "system/lib64/vendor.display.config@1.5.so", 214 | "system/lib64/vendor.display.postproc@1.0.so", 215 | "system/lib64/vendor.qti.esepowermanager@1.0.so", 216 | "system/lib64/vendor.qti.hardware.alarm@1.0.so", 217 | "system/lib64/vendor.qti.hardware.biometrics.face@1.0-adapter-helper.so", 218 | "system/lib64/vendor.qti.hardware.biometrics.face@1.0.so", 219 | "system/lib64/vendor.qti.hardware.data.latency@1.0.so", 220 | "system/lib64/vendor.qti.hardware.fingerprint@1.0.so", 221 | "system/lib64/vendor.qti.hardware.iop@1.0.so", 222 | "system/lib64/vendor.qti.hardware.iop@2.0.so", 223 | "system/lib64/vendor.qti.hardware.perf@1.0.so", 224 | "system/lib64/vendor.qti.hardware.qdutils_disp@1.0.so", 225 | "system/lib64/vendor.qti.hardware.qteeconnector@1.0.so", 226 | "system/lib64/vendor.qti.hardware.radio.am@1.0.so", 227 | "system/lib64/vendor.qti.hardware.radio.ims@1.0.so", 228 | "system/lib64/vendor.qti.hardware.radio.ims@1.1.so", 229 | "system/lib64/vendor.qti.hardware.radio.ims@1.2.so", 230 | "system/lib64/vendor.qti.hardware.radio.ims@1.3.so", 231 | "system/lib64/vendor.qti.hardware.radio.ims@1.4.so", 232 | "system/lib64/vendor.qti.hardware.radio.lpa@1.0.so", 233 | "system/lib64/vendor.qti.hardware.radio.qcrilhook@1.0.so", 234 | "system/lib64/vendor.qti.hardware.radio.qtiradio@1.0.so", 235 | "system/lib64/vendor.qti.hardware.radio.qtiradio@2.0.so", 236 | "system/lib64/vendor.qti.hardware.radio.uim@1.0.so", 237 | "system/lib64/vendor.qti.hardware.radio.uim@1.1.so", 238 | "system/lib64/vendor.qti.hardware.radio.uim_remote_client@1.0.so", 239 | "system/lib64/vendor.qti.hardware.radio.uim_remote_server@1.0.so", 240 | "system/lib64/vendor.qti.hardware.scve.objecttracker@1.0-adapter-helper.so", 241 | "system/lib64/vendor.qti.hardware.scve.objecttracker@1.0.so", 242 | "system/lib64/vendor.qti.hardware.scve.panorama@1.0-adapter-helper.so", 243 | "system/lib64/vendor.qti.hardware.scve.panorama@1.0.so", 244 | "system/lib64/vendor.qti.hardware.seccam@1.0.so", 245 | "system/lib64/vendor.qti.hardware.soter@1.0.so", 246 | "system/lib64/vendor.qti.hardware.tui_comm@1.0.so", 247 | "system/lib64/vendor.qti.hardware.vpp@1.1.so", 248 | "system/lib64/vendor.qti.hardware.vpp@1.2.so", 249 | "system/lib64/vendor.qti.hardware.wigig.netperftuner@1.0.so", 250 | "system/lib64/vendor.qti.hardware.wigig.supptunnel@1.0.so", 251 | "system/lib64/vendor.qti.ims.callinfo@1.0.so", 252 | "system/lib64/vendor.qti.imsrtpservice@1.0.so", 253 | "system/lib64/vendor.qti.voiceprint@1.0.so", 254 | "system/product/etc/permissions/com.qti.snapdragon.sdk.display.xml", 255 | "system/product/lib/libsecureuisvc_jni.so", 256 | "system/product/lib64/libsecureuisvc_jni.so" 257 | ], 258 | "forced-modules": [ 259 | "RcsService", 260 | "android.hardware.biometrics.fingerprint@2.1", 261 | "android.hardware.radio.config@1.0", 262 | "android.hardware.radio.deprecated@1.0", 263 | "android.hardware.radio@1.0", 264 | "android.hardware.radio@1.1", 265 | "android.hardware.radio@1.2", 266 | "android.hardware.secure_element@1.0", 267 | "com.android.ims.rcsmanager", 268 | "libminui", 269 | "libprotobuf-cpp-full", 270 | "libprotobuf-cpp-full-rtti" 271 | ], 272 | "new-modules": [], 273 | "dep-dso": [], 274 | "BoardConfigVendor": [], 275 | "device-vendor": [] 276 | }, 277 | "full": { 278 | "overlays-dir": "", 279 | "system-bytecode": [ 280 | "system/app/DiagnosticsToolPrebuilt/DiagnosticsToolPrebuilt.apk::PRESIGNED", 281 | "system/app/EaselServicePrebuilt/EaselServicePrebuilt.apk::PRESIGNED", 282 | "system/app/QAS_DVC_MSP_VZW/QAS_DVC_MSP_VZW.apk", 283 | "system/app/VZWAPNLib/VZWAPNLib.apk", 284 | "system/app/vzw_msdc_api/vzw_msdc_api.apk", 285 | "system/framework/LowPowerMonitorDeviceInterface.jar", 286 | "system/framework/LowPowerMonitorDeviceRpm.jar", 287 | "system/framework/PowerAnomalyDataModemInterface.jar", 288 | "system/framework/PowerAnomalyQcril.jar", 289 | "system/framework/VerizonUnifiedSettings.jar", 290 | "system/priv-app/AmbientSensePrebuilt/AmbientSensePrebuilt.apk::PRESIGNED", 291 | "system/priv-app/AppDirectedSMSService/AppDirectedSMSService.apk", 292 | "system/priv-app/ConnMO/ConnMO.apk", 293 | "system/priv-app/DCMO/DCMO.apk", 294 | "system/priv-app/DiagMon/DiagMon.apk", 295 | "system/priv-app/EuiccGoogle/EuiccGoogle.apk::PRESIGNED", 296 | "system/priv-app/HotwordEnrollmentOKGoogleRT5514/HotwordEnrollmentOKGoogleRT5514.apk::PRESIGNED", 297 | "system/priv-app/HotwordEnrollmentXGoogleRT5514/HotwordEnrollmentXGoogleRT5514.apk::PRESIGNED", 298 | "system/priv-app/LLKAgent/LLKAgent.apk", 299 | "system/priv-app/MyVerizonServices/MyVerizonServices.apk", 300 | "system/priv-app/OBDM_Permissions/OBDM_Permissions.apk", 301 | "system/priv-app/OemDmTrigger/OemDmTrigger.apk", 302 | "system/priv-app/Showcase/Showcase.apk", 303 | "system/priv-app/SprintDM/SprintDM.apk", 304 | "system/priv-app/SprintHM/SprintHM.apk", 305 | "system/priv-app/VerizonAuthDialog/VerizonAuthDialog.apk", 306 | "system/priv-app/VzwOmaTrigger/VzwOmaTrigger.apk", 307 | "system/priv-app/obdm_stub/obdm_stub.apk" 308 | ], 309 | "system-other": [ 310 | "system/etc/ambient/matcher_tah.leveldb", 311 | "system/etc/permissions/android.hardware.telephony.euicc.xml", 312 | "system/etc/permissions/com.android.omadm.service.xml", 313 | "system/etc/permissions/com.android.sdm.plugins.connmo.xml", 314 | "system/etc/permissions/com.android.sdm.plugins.sprintdm.xml", 315 | "system/etc/permissions/com.android.vzwomatrigger.xml", 316 | "system/etc/permissions/com.customermobile.preload.vzw.xml", 317 | "system/etc/permissions/com.google.omadm.trigger.xml", 318 | "system/etc/permissions/com.verizon.apn.xml", 319 | "system/etc/permissions/com.verizon.embms.xml", 320 | "system/etc/permissions/com.verizon.llkagent.xml", 321 | "system/etc/permissions/com.verizon.provider.xml", 322 | "system/etc/permissions/com.verizon.services.xml", 323 | "system/etc/permissions/features-verizon.xml", 324 | "system/etc/permissions/obdm_permissions.xml", 325 | "system/etc/permissions/privapp-permissions-google.xml", 326 | "system/etc/permissions/vzw_mvs_permissions.xml", 327 | "system/etc/scone/country_border.leveldb", 328 | "system/etc/sysconfig/google-hiddenapi-package-whitelist.xml", 329 | "system/etc/sysconfig/google.xml", 330 | "system/etc/sysconfig/google_build.xml", 331 | "system/etc/sysconfig/nexus.xml", 332 | "system/etc/sysconfig/pixel_2019_midyear_exclusive.xml", 333 | "system/etc/sysconfig/pixel_experience_2017.xml", 334 | "system/etc/sysconfig/pixel_experience_2018.xml", 335 | "system/etc/sysconfig/pixel_experience_2019_midyear.xml", 336 | "system/etc/sysconfig/whitelist_com.android.omadm.service.xml", 337 | "system/lib64/libsketchology_native.so", 338 | "system/priv-app/EuiccGoogle/esim-full-v0.img", 339 | "system/priv-app/EuiccGoogle/esim-v1.img" 340 | ], 341 | "forced-modules": [], 342 | "new-modules": [], 343 | "dep-dso": [], 344 | "BoardConfigVendor": [], 345 | "device-vendor": [] 346 | } 347 | } 348 | } 349 | -------------------------------------------------------------------------------- /scripts/common.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | [[ "${BASH_SOURCE[0]}" == "${0}" ]] && exit 1 4 | 5 | command_exists() { 6 | type "$1" &> /dev/null 7 | } 8 | 9 | check_dir() { 10 | local dirPath="$1" 11 | local dirDesc="$2" 12 | 13 | if [[ "$dirPath" == "" || ! -d "$dirPath" ]]; then 14 | echo "[-] $dirDesc directory not found" 15 | usage 16 | fi 17 | } 18 | 19 | check_file() { 20 | local filePath="$1" 21 | local fileDesc="$2" 22 | 23 | if [[ "$filePath" == "" || ! -f "$filePath" ]]; then 24 | echo "[-] $fileDesc file not found" 25 | usage 26 | fi 27 | } 28 | 29 | check_opt_file() { 30 | local filePath="$1" 31 | local fileDesc="$2" 32 | 33 | if [[ "$filePath" != "" && ! -f "$filePath" ]]; then 34 | echo "[-] '$fileDesc' file not found" 35 | usage 36 | fi 37 | } 38 | 39 | array_contains() { 40 | local element 41 | for element in "${@:2}"; do [[ "$element" == "$1" ]] && return 0; done 42 | return 1 43 | } 44 | 45 | array_contains_rel() { 46 | local element 47 | for element in "${@:2}"; do [[ "$element" =~ $1 ]] && return 0; done 48 | return 1 49 | } 50 | 51 | isValidApiLevel() { 52 | local apiLevel="$1" 53 | if [[ ! "$apiLevel" = *[[:digit:]]* ]]; then 54 | echo "[-] Invalid API level '$apiLevel'" 55 | abort 1 56 | fi 57 | } 58 | 59 | isValidConfigType() { 60 | local confType="$1" 61 | if [[ "$confType" != "naked" && "$confType" != "full" ]]; then 62 | echo "[-] Invalid config type '$confType'" 63 | abort 1 64 | fi 65 | } 66 | 67 | jqRawStrTop() { 68 | local query="$1" 69 | local conf_file="$2" 70 | 71 | jq -r ".\"$query\"" "$conf_file" || { 72 | echo "[-] json raw top string parse failed" >&2 73 | abort 1 74 | } 75 | } 76 | 77 | jqIncRawArrayTop() { 78 | local query="$1" 79 | local conf_file="$2" 80 | 81 | jq -r ".\"$query\"[]" "$conf_file" || { 82 | echo "[-] json top raw string string parse failed" >&2 83 | abort 1 84 | } 85 | } 86 | 87 | jqRawStr() { 88 | local api="api-$1" 89 | local conf="$2" 90 | local query="$3" 91 | local conf_file="$4" 92 | 93 | jq -r ".\"$api\".\"$conf\".\"$query\"" "$conf_file" || { 94 | echo "[-] json raw string parse failed" >&2 95 | abort 1 96 | } 97 | } 98 | 99 | jqIncRawArray() { 100 | local api="api-$1" 101 | local conf="$2" 102 | local query="$3" 103 | local conf_file="$4" 104 | 105 | jq -r ".\"$api\".naked.\"$query\"[]" "$conf_file" || { 106 | echo "[-] json raw string array parse failed" >&2 107 | abort 1 108 | } 109 | 110 | if [[ "$conf" == "naked" ]]; then 111 | return 112 | fi 113 | 114 | jq -r ".\"$api\".full.\"$query\"[]" "$conf_file" || { 115 | echo "[-] json raw string array parse failed" >&2 116 | abort 1 117 | } 118 | 119 | } 120 | -------------------------------------------------------------------------------- /scripts/constants.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | [[ "${BASH_SOURCE[0]}" == "${0}" ]] && exit 1 4 | 5 | # List of supported devices 6 | declare -ra SUPPORTED_DEVICES=( 7 | "bullhead" # Nexus 5x 8 | "flounder" # Nexus 9 9 | "angler" # Nexus 6p 10 | "sailfish" # Pixel 11 | "marlin" # Pixel XL 12 | "walleye" # Pixel 2 13 | "taimen" # Pixel 2 XL 14 | "blueline" # Pixel 3 15 | "crosshatch" # Pixel 3 XL 16 | "sargo" # Pixel 3a 17 | "bonito" # Pixel 3a XL 18 | ) 19 | 20 | # URLs to download factory images from 21 | readonly NID_URL="https://google.com" 22 | readonly GURL="https://developers.google.com/android/nexus/images" 23 | 24 | # oatdump dependencies URLs as compiled from AOSP matching API levels 25 | readonly L_OATDUMP_URL_API23='https://onedrive.live.com/download?cid=D1FAC8CC6BE2C2B0&resid=D1FAC8CC6BE2C2B0%21490&authkey=ACA4f4Zvs3Tb_SY' 26 | readonly D_OATDUMP_URL_API23='https://onedrive.live.com/download?cid=D1FAC8CC6BE2C2B0&resid=D1FAC8CC6BE2C2B0%21493&authkey=AJ0rWu5Ci8tQNLY' 27 | readonly L_OATDUMP_URL_API24='https://onedrive.live.com/download?cid=D1FAC8CC6BE2C2B0&resid=D1FAC8CC6BE2C2B0%21492&authkey=AE4uqwH-THvvkSQ' 28 | readonly D_OATDUMP_URL_API24='https://onedrive.live.com/download?cid=D1FAC8CC6BE2C2B0&resid=D1FAC8CC6BE2C2B0%21491&authkey=AHvCaYwFBPYD4Fs' 29 | readonly L_OATDUMP_URL_API25='https://onedrive.live.com/download?cid=D1FAC8CC6BE2C2B0&resid=D1FAC8CC6BE2C2B0%21503&authkey=AKDpBAzhzum6d7w' 30 | readonly D_OATDUMP_URL_API25='https://onedrive.live.com/download?cid=D1FAC8CC6BE2C2B0&resid=D1FAC8CC6BE2C2B0%21504&authkey=AC5YFNSAZ31-W3o' 31 | readonly L_OATDUMP_URL_API26='https://onedrive.live.com/download?cid=D1FAC8CC6BE2C2B0&resid=D1FAC8CC6BE2C2B0%21557&authkey=AG47qhXu164sYwc' 32 | readonly D_OATDUMP_URL_API26='https://onedrive.live.com/download?cid=D1FAC8CC6BE2C2B0&resid=D1FAC8CC6BE2C2B0%21561&authkey=ABu-oqJbQDwQ-ZQ' 33 | readonly L_OATDUMP_URL_API26_2='https://onedrive.live.com/download?cid=D1FAC8CC6BE2C2B0&resid=D1FAC8CC6BE2C2B0%21569&authkey=AG5PlexJR0YMLr0' 34 | readonly D_OATDUMP_URL_API26_2='https://onedrive.live.com/download?cid=D1FAC8CC6BE2C2B0&resid=D1FAC8CC6BE2C2B0%21570&authkey=AJrlrh0v2GUvxow' 35 | readonly L_OATDUMP_URL_API27='https://onedrive.live.com/download?cid=D1FAC8CC6BE2C2B0&resid=D1FAC8CC6BE2C2B0%21566&authkey=AKWYYxBfd7NMW_k' 36 | readonly D_OATDUMP_URL_API27='https://onedrive.live.com/download?cid=D1FAC8CC6BE2C2B0&resid=D1FAC8CC6BE2C2B0%21567&authkey=AF-cDubRkZdjRxY' 37 | readonly L_OATDUMP_URL_API28='https://onedrive.live.com/download?cid=D1FAC8CC6BE2C2B0&resid=D1FAC8CC6BE2C2B0%21574&authkey=ADSQA_DtfAmmk2c' 38 | readonly D_OATDUMP_URL_API28='https://onedrive.live.com/download?cid=D1FAC8CC6BE2C2B0&resid=D1FAC8CC6BE2C2B0%21582&authkey=ABMMORAJ-GGjs2k' 39 | 40 | 41 | readonly L_OATDUMP_API23_SIG='688f1c1f97e3b9eb32702c60ca05abbf313bc98a25334aa3ed4a108095162244' 42 | readonly D_OATDUMP_API23_SIG='688f1c1f97e3b9eb32702c60ca05abbf313bc98a25334aa3ed4a108095162244' 43 | readonly L_OATDUMP_API24_SIG='1f99e7d0f2894cfe52fb7f2a24d5076f217977cbb1a46fafdf5ea38b0a11adce' 44 | readonly D_OATDUMP_API24_SIG='4a7f5614eb04d9bea85bfa05853523843f9cc80a64eab4c98efed2f70ed3d90e' 45 | readonly L_OATDUMP_API25_SIG='8b8cd18f08afd00fc6bf33d5b7f5be4faab9f39849b258bade5d15c3e5f33ce8' 46 | readonly D_OATDUMP_API25_SIG='97f26b40cdc1fb2b5e5babe7ff8c63b70e7d3a3ab8dee19b035bbb0fdfa5477e' 47 | readonly L_OATDUMP_API26_SIG='d8c08fe0de637412086f8433b41808d7b58e92e7b7341fb9b4da44868d4b311b' 48 | readonly D_OATDUMP_API26_SIG='6fd75110e85f0cc0316c5e7345ea4271d527aae2570552dc3c565177a4d6b743' 49 | readonly L_OATDUMP_API26_2_SIG='22ab2469d32fbb1a4010528695c0c71ed1a3f7f5e956971b7f933e2df9b4f44a' 50 | readonly D_OATDUMP_API26_2_SIG='03b603c09c1dfbdffa0518d39f5d7e5fcf04eac2e8b11bec27f2e4c36b162689' 51 | readonly L_OATDUMP_API27_SIG='e8363ecbd6bc6bd4d3e86e5a59adfa77f62c3f765f4bb8d32706a538831357ac' 52 | readonly D_OATDUMP_API27_SIG='2aaab14d1178845bf9d08b06b7afd3dfd845e882c9bf2c403593940a39ff3449' 53 | readonly L_OATDUMP_API28_SIG='394a47491de4def3b825b22713f5ecfd8f16e00497f35213ffd83c2cc709384e' 54 | readonly D_OATDUMP_API28_SIG='95ce6c296c5115861db3c876eb5bfd11cdc34deebace18462275368492c6ea87' 55 | 56 | # sub-directories that contain bytecode archives 57 | declare -ra SUBDIRS_WITH_BC=("app" "framework" "priv-app" "overlay" "product") 58 | 59 | # ART runtime files 60 | declare -ra ART_FILE_EXTS=("odex" "oat" "art" "vdex") 61 | 62 | # Files to skip from vendor partition when parsing factory images (for all configs) 63 | declare -ra VENDOR_SKIP_FILES=( 64 | "build.prop" 65 | "compatibility_matrix.xml" 66 | "default.prop" 67 | "etc/NOTICE.xml.gz" 68 | "etc/wifi/wpa_supplicant.conf" 69 | "manifest.xml" 70 | "bin/toybox_vendor" 71 | "bin/toolbox" 72 | "bin/grep" 73 | "overlay/DisplayCutoutEmulationCorner/DisplayCutoutEmulationCornerOverlay.apk" 74 | "overlay/DisplayCutoutEmulationDouble/DisplayCutoutEmulationDoubleOverlay.apk" 75 | "overlay/DisplayCutoutEmulationTall/DisplayCutoutEmulationTallOverlay.apk" 76 | "overlay/DisplayCutoutNoCutout/NoCutoutOverlay.apk" 77 | "overlay/framework-res__auto_generated_rro.apk" 78 | "overlay/SysuiDarkTheme/SysuiDarkThemeOverlay.apk" 79 | ) 80 | 81 | # Files to skip from vendor partition when parsing factory images (for naked config only) 82 | declare -ra VENDOR_SKIP_FILES_NAKED=( 83 | "etc/selinux/nonplat_file_contexts" 84 | "etc/selinux/nonplat_hwservice_contexts" 85 | "etc/selinux/nonplat_mac_permissions.xml" 86 | "etc/selinux/nonplat_property_contexts" 87 | "etc/selinux/nonplat_seapp_contexts" 88 | "etc/selinux/nonplat_sepolicy.cil" 89 | "etc/selinux/nonplat_service_contexts" 90 | "etc/selinux/plat_sepolicy_vers.txt" 91 | "etc/selinux/precompiled_sepolicy" 92 | "etc/selinux/precompiled_sepolicy.plat_and_mapping.sha256" 93 | "etc/selinux/vndservice_contexts" 94 | ) 95 | -------------------------------------------------------------------------------- /scripts/download-nexus-image.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Download factory image for the provided device & build id 4 | # 5 | 6 | set -e # fail on unhandled error 7 | set -u # fail on undefined variable 8 | #set -x # debug 9 | 10 | readonly SCRIPTS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 11 | readonly CONSTS_SCRIPT="$SCRIPTS_DIR/constants.sh" 12 | readonly COMMON_SCRIPT="$SCRIPTS_DIR/common.sh" 13 | readonly TMP_WORK_DIR=$(mktemp -d "${TMPDIR:-/tmp}"/android_img_download.XXXXXX) || exit 1 14 | declare -a SYS_TOOLS=("curl" "wget") 15 | 16 | abort() { 17 | exit "$1" 18 | } 19 | 20 | usage() { 21 | cat <<_EOF 22 | Usage: $(basename "$0") [options] 23 | OPTIONS: 24 | -d|--device : Device AOSP codename (angler, bullhead, etc.) 25 | -a|--alias : Device alias at Google Dev website (e.g. volantis vs flounder) 26 | -b|--buildID : BuildID string (e.g. MMB29P) 27 | -o|--output : Path to save images archived 28 | -y|--yes : Default accept Google ToS 29 | _EOF 30 | abort 1 31 | } 32 | 33 | accept_tos() { 34 | local userRes userResFmt 35 | 36 | # Message based on 'October 3, 2016' update 37 | cat << EOF 38 | 39 | --{ Google Terms and Conditions [1] 40 | Downloading of the system image and use of the device software is subject to the 41 | Google Terms of Service [2]. By continuing, you agree to the Google Terms of 42 | Service [2] and Privacy Policy [3]. Your downloading of the system image and use 43 | of the device software may also be subject to certain third-party terms of 44 | service, which can be found in Settings > About phone > Legal information, or as 45 | otherwise provided. 46 | 47 | [1] https://developers.google.com/android/images#legal 48 | [2] https://www.google.com/intl/en/policies/terms/ 49 | [3] https://www.google.com/intl/en/policies/privacy/ 50 | 51 | EOF 52 | 53 | echo -n "[?] I have read and agree with the above terms and conditions - ACKNOWLEDGE [y|n]: " 54 | if [ "$AUTO_TOS_ACCEPT" = true ]; then 55 | echo "yes" 56 | userRes="yes" 57 | else 58 | read userRes 59 | fi 60 | 61 | userResFmt=$(echo "$userRes" | tr '[:upper:]' '[:lower:]') 62 | if [[ "$userResFmt" != "yes" && "$userResFmt" != "y" ]]; then 63 | echo "[!] Cannot continue downloading without agreeing" 64 | abort 1 65 | fi 66 | } 67 | 68 | trap "abort 1" SIGINT SIGTERM 69 | . "$CONSTS_SCRIPT" 70 | . "$COMMON_SCRIPT" 71 | 72 | # Check that system tools exist 73 | for i in "${SYS_TOOLS[@]}" 74 | do 75 | if ! command_exists "$i"; then 76 | echo "[-] '$i' command not found" 77 | abort 1 78 | fi 79 | done 80 | 81 | DEVICE="" 82 | DEV_ALIAS="" 83 | BUILDID="" 84 | OUTPUT_DIR="" 85 | AUTO_TOS_ACCEPT=false 86 | 87 | while [[ $# -gt 0 ]] 88 | do 89 | arg="$1" 90 | case $arg in 91 | -o|--output) 92 | OUTPUT_DIR=$(echo "$2" | sed 's:/*$::') 93 | shift 94 | ;; 95 | -d|--device) 96 | DEVICE=$(echo "$2" | tr '[:upper:]' '[:lower:]') 97 | shift 98 | ;; 99 | -a|--alias) 100 | DEV_ALIAS=$(echo "$2" | tr '[:upper:]' '[:lower:]') 101 | shift 102 | ;; 103 | -b|--buildID) 104 | BUILDID=$(echo "$2" | tr '[:upper:]' '[:lower:]') 105 | shift 106 | ;; 107 | -y|--yes) 108 | AUTO_TOS_ACCEPT=true 109 | ;; 110 | *) 111 | echo "[-] Invalid argument '$1'" 112 | usage 113 | ;; 114 | esac 115 | shift 116 | done 117 | 118 | if [[ "$DEVICE" == "" ]]; then 119 | echo "[-] device codename cannot be empty" 120 | usage 121 | fi 122 | if [[ "$BUILDID" == "" ]]; then 123 | echo "[-] buildID cannot be empty" 124 | usage 125 | fi 126 | if [[ "$OUTPUT_DIR" == "" || ! -d "$OUTPUT_DIR" ]]; then 127 | echo "[-] Output directory not found" 128 | usage 129 | fi 130 | 131 | # If alias not provided assume same as device codename for simplicity. 132 | # If wrong choice, later scripts will fail to find blobs list file. 133 | if [[ "$DEV_ALIAS" == "" ]]; then 134 | DEV_ALIAS="$DEVICE" 135 | fi 136 | 137 | # Since ToS is bind with NID cookie, first get one 138 | COOKIE_FILE="$TMP_WORK_DIR/g_cookies.txt" 139 | curl --silent -c "$COOKIE_FILE" -L "$NID_URL" &>/dev/null 140 | 141 | # Change cookie scope back to google.com since we might have 142 | # a location based redirect to different domain (e.g. google.gr) 143 | grep -io "google.[[:alpha:]]\+[[:blank:]]" "$COOKIE_FILE" | \ 144 | sed -e "s/[[:space:]]\+//g" | sort -u | \ 145 | while read -r domain 146 | do 147 | sed -i.bak "s/$domain/google.com/g" "$COOKIE_FILE" 148 | done 149 | 150 | # Accept news ToS page 151 | accept_tos 152 | 153 | # Then retrieve the index page 154 | url=$(curl -L -b "$COOKIE_FILE" --silent "$GURL" | \ 155 | grep -i "/dev/null | tr '\t' ' ' | cut -d' ' -f1)" 69 | if [[ "$size" == "" ]]; then 70 | echo "[!] Failed to extract vendor partition size from '$vendor_img_raw'" 71 | abort 1 72 | fi 73 | 74 | # Write to file so that 'generate-vendor.sh' can pick the value 75 | # for BoardConfigVendor makefile generation 76 | echo "$size" > "$out_file" 77 | } 78 | 79 | mount_darwin() { 80 | local imgFile="$1" 81 | local mountPoint="$2" 82 | local mount_log="$TMP_WORK_DIR/mount.log" 83 | local -a osxfuse_ver 84 | local os_major_ver 85 | 86 | os_major_ver="$(sw_vers -productVersion | cut -d '.' -f2)" 87 | if [ "$os_major_ver" -ge 12 ]; then 88 | # If Sierra and above, check that latest supported (3.5.4) osxfuse version is installed 89 | local osxfuse_plist="/Library/Filesystems/osxfuse.fs/Contents/version.plist" 90 | IFS='.' read -r -a osxfuse_ver <<< "$(grep 'CFBundleVersion' -A1 "$osxfuse_plist" | \ 91 | grep -o '.*' | cut -d '>' -f2 | cut -d '<' -f1)" 92 | 93 | if [[ ("${osxfuse_ver[0]}" -lt 3 ) || \ 94 | ("${osxfuse_ver[0]}" -eq 3 && "${osxfuse_ver[1]}" -lt 5) || \ 95 | ("${osxfuse_ver[0]}" -eq 3 && "${osxfuse_ver[1]}" -eq 5 && "${osxfuse_ver[2]}" -lt 4) ]]; then 96 | echo "[!] Detected osxfuse version is '$(echo "${osxfuse_ver[@]}" | tr ' ' '.')'" 97 | echo "[-] Update to latest or disable the check if you know that you're doing" 98 | abort 1 99 | fi 100 | fi 101 | 102 | ext4fuse -o logfile=/dev/stdout,uid=$EUID,ro "$imgFile" "$mountPoint" &>"$mount_log" || { 103 | echo "[-] '$imgFile' mount failed" 104 | cat "$mount_log" 105 | abort 1 106 | } 107 | } 108 | 109 | mount_linux() { 110 | local imgFile="$1" 111 | local mountPoint="$2" 112 | local mount_log="$TMP_WORK_DIR/mount.log" 113 | local mount_cmd 114 | 115 | if [ "$RUNS_WITH_ROOT" = true ]; then 116 | mount_cmd="mount -t ext4 -o loop,ro" 117 | elif [ "$USE_FUSEEXT2" = true ]; then 118 | mount_cmd="fuse-ext2 -o uid=$EUID,ro" 119 | else 120 | mount_cmd="ext4fuse -o logfile=/dev/stdout,uid=$EUID,ro" 121 | fi 122 | 123 | $mount_cmd "$imgFile" "$mountPoint" &>"$mount_log" || { 124 | echo "[-] '$imgFile' mount failed" 125 | cat "$mount_log" 126 | abort 1 127 | } 128 | } 129 | 130 | extract_img_data() { 131 | local image_file="$1" 132 | local out_dir="$2" 133 | local logFile="$TMP_WORK_DIR/debugfs.log" 134 | 135 | if [ ! -d "$out_dir" ]; then 136 | mkdir -p "$out_dir" 137 | fi 138 | 139 | if [[ "$HOST_OS" == "Darwin" ]]; then 140 | debugfs -R "rdump / \"$out_dir\"" "$image_file" &> "$logFile" || { 141 | echo "[-] Failed to extract data from '$image_file'" 142 | abort 1 143 | } 144 | else 145 | debugfs -R 'ls -p' "$image_file" 2>/dev/null | cut -d '/' -f6 | while read -r entry 146 | do 147 | debugfs -R "rdump \"$entry\" \"$out_dir\"" "$image_file" >> "$logFile" 2>&1 || { 148 | echo "[-] Failed to extract data from '$image_file'" 149 | abort 1 150 | } 151 | done 152 | fi 153 | 154 | local symlink_err="rdump: Attempt to read block from filesystem resulted in short read while reading symlink" 155 | if grep -Fq "$symlink_err" "$logFile"; then 156 | echo "[-] Symlinks have not been properly processed from $image_file" 157 | echo "[!] If you don't have a compatible debugfs version, modify 'execute-all.sh' to disable 'USE_DEBUGFS' flag" 158 | abort 1 159 | fi 160 | } 161 | 162 | mount_img() { 163 | local image_file="$1" 164 | local mount_dir="$2" 165 | 166 | if [ ! -d "$mount_dir" ]; then 167 | mkdir -p "$mount_dir" 168 | fi 169 | 170 | if [[ "$HOST_OS" == "Darwin" ]]; then 171 | mount_darwin "$image_file" "$mount_dir" 172 | else 173 | mount_linux "$image_file" "$mount_dir" 174 | fi 175 | 176 | if ! mount | grep -qs "$mount_dir"; then 177 | echo "[-] '$image_file' mount point missing indicates fuse mount error" 178 | abort 1 179 | fi 180 | } 181 | 182 | trap "abort 1" SIGINT SIGTERM 183 | . "$CONSTS_SCRIPT" 184 | . "$COMMON_SCRIPT" 185 | 186 | INPUT_ARCHIVE="" 187 | OUTPUT_DIR="" 188 | CONFIG_FILE="" 189 | USE_DEBUGFS=false 190 | USE_FUSEEXT2=false 191 | RUNS_WITH_ROOT=false 192 | 193 | # Compatibility 194 | HOST_OS=$(uname) 195 | if [[ "$HOST_OS" != "Linux" && "$HOST_OS" != "Darwin" ]]; then 196 | echo "[-] '$HOST_OS' OS is not supported" 197 | abort 1 198 | fi 199 | 200 | while [[ $# -gt 0 ]] 201 | do 202 | arg="$1" 203 | case $arg in 204 | -o|--output) 205 | OUTPUT_DIR=$(echo "$2" | sed 's:/*$::') 206 | shift 207 | ;; 208 | -i|--input) 209 | INPUT_ARCHIVE=$2 210 | shift 211 | ;; 212 | --conf-file) 213 | CONFIG_FILE="$2" 214 | shift 215 | ;; 216 | --debugfs) 217 | USE_DEBUGFS=true 218 | ;; 219 | --fuse-ext2) 220 | USE_FUSEEXT2=true 221 | ;; 222 | *) 223 | echo "[-] Invalid argument '$1'" 224 | usage 225 | ;; 226 | esac 227 | shift 228 | done 229 | 230 | # Check if script is running as root to directly use loopback instead of fuses 231 | if [ "$EUID" -eq 0 ]; then 232 | RUNS_WITH_ROOT=true 233 | echo "[*] Running as root - using loopback for image mounts" 234 | else 235 | if [ "$USE_FUSEEXT2" = true ]; then 236 | echo "[*] Using fuse-ext2 for image mounts" 237 | elif [ "$USE_DEBUGFS" = true ]; then 238 | echo "[*] Using debugfs for image mounts" 239 | else 240 | echo "[*] Using ext4fuse for image mounts" 241 | fi 242 | fi 243 | 244 | # Additional tools based on chosen image files data extraction method 245 | if [ "$RUNS_WITH_ROOT" = true ]; then 246 | SYS_TOOLS+=("mount") 247 | elif [ "$USE_DEBUGFS" = true ]; then 248 | SYS_TOOLS+=("debugfs") 249 | elif [ "$USE_FUSEEXT2" = true ]; then 250 | SYS_TOOLS+=("fuse-ext2") 251 | else 252 | SYS_TOOLS+=("ext4fuse") 253 | # Platform specific commands 254 | if [[ "$HOST_OS" == "Darwin" ]]; then 255 | SYS_TOOLS+=("sw_vers") 256 | fi 257 | fi 258 | 259 | # Check that system tools exist 260 | for i in "${SYS_TOOLS[@]}" 261 | do 262 | if ! command_exists "$i"; then 263 | echo "[-] '$i' command not found" 264 | abort 1 265 | fi 266 | done 267 | 268 | # Input args check 269 | check_dir "$OUTPUT_DIR" "Output" 270 | check_file "$INPUT_ARCHIVE" "Input archive" 271 | check_file "$CONFIG_FILE" "Device Config File" 272 | 273 | # Fetch required values from config 274 | readonly VENDOR="$(jqRawStrTop "vendor" "$CONFIG_FILE")" 275 | readonly EXTRA_IMGS_LIST="$(jqIncRawArrayTop "extra-partitions" "$CONFIG_FILE")" 276 | if [[ "$EXTRA_IMGS_LIST" != "" ]]; then 277 | readarray -t EXTRA_IMGS < <(echo "$EXTRA_IMGS_LIST") 278 | fi 279 | 280 | # Prepare output folders 281 | SYSTEM_DATA_OUT="$OUTPUT_DIR/system" 282 | if [ -d "$SYSTEM_DATA_OUT" ]; then 283 | rm -rf "${SYSTEM_DATA_OUT:?}"/* 284 | fi 285 | 286 | VENDOR_DATA_OUT="$OUTPUT_DIR/vendor" 287 | if [ -d "$VENDOR_DATA_OUT" ]; then 288 | rm -rf "${VENDOR_DATA_OUT:?}"/* 289 | fi 290 | 291 | RADIO_DATA_OUT="$OUTPUT_DIR/radio" 292 | if [ -d "$RADIO_DATA_OUT" ]; then 293 | rm -rf "${RADIO_DATA_OUT:?}"/* 294 | fi 295 | mkdir -p "$RADIO_DATA_OUT" 296 | 297 | archiveName="$(basename "$INPUT_ARCHIVE")" 298 | fileExt="${archiveName##*.}" 299 | archName="$(basename "$archiveName" ".$fileExt")" 300 | extractDir="$TMP_WORK_DIR/$archName" 301 | mkdir -p "$extractDir" 302 | 303 | # Extract archive 304 | extract_archive "$INPUT_ARCHIVE" "$extractDir" 305 | 306 | if [[ -f "$extractDir/system.img" && -f "$extractDir/vendor.img" ]]; then 307 | sysImg="$extractDir/system.img" 308 | vImg="$extractDir/vendor.img" 309 | else 310 | updateArch=$(find "$extractDir" -iname "image-*.zip" | head -n 1) 311 | echo "[*] Unzipping '$(basename "$updateArch")'" 312 | unzip -qq "$updateArch" -d "$extractDir/images" || { 313 | echo "[-] unzip failed" 314 | abort 1 315 | } 316 | sysImg="$extractDir/images/system.img" 317 | vImg="$extractDir/images/vendor.img" 318 | fi 319 | 320 | # Baseband image 321 | hasRadioImg=true 322 | radioImg=$(find "$extractDir" -iname "radio-*.img" | head -n 1) 323 | if [[ "$radioImg" == "" ]]; then 324 | echo "[!] No baseband firmware present - skipping" 325 | hasRadioImg=false 326 | fi 327 | 328 | # Bootloader image 329 | bootloaderImg=$(find "$extractDir" -iname "bootloader-*.img" | head -n 1) 330 | if [[ "$bootloaderImg" == "" ]]; then 331 | echo "[-] Failed to locate bootloader image" 332 | abort 1 333 | fi 334 | 335 | # Convert from sparse to raw 336 | rawSysImg="$extractDir/images/system.img.raw" 337 | rawVImg="$extractDir/images/vendor.img.raw" 338 | 339 | simg2img "$sysImg" "$rawSysImg" || { 340 | echo "[-] simg2img failed to convert system.img from sparse" 341 | abort 1 342 | } 343 | simg2img "$vImg" "$rawVImg" || { 344 | echo "[-] simg2img failed to convert vendor.img from sparse" 345 | abort 1 346 | } 347 | 348 | # Save raw vendor img partition size 349 | extract_vendor_partition_size "$rawVImg" "$OUTPUT_DIR" 350 | 351 | if [ "$USE_DEBUGFS" = true ]; then 352 | # Extract raw system and vendor images. Data will be processed later 353 | extract_img_data "$rawSysImg" "$SYSTEM_DATA_OUT" 354 | extract_img_data "$rawVImg" "$VENDOR_DATA_OUT" 355 | else 356 | # Mount raw system and vendor images. Data will be processed later 357 | mount_img "$rawSysImg" "$SYSTEM_DATA_OUT" 358 | mount_img "$rawVImg" "$VENDOR_DATA_OUT" 359 | fi 360 | 361 | # Copy bootloader & radio images 362 | if [ $hasRadioImg = true ]; then 363 | mv "$radioImg" "$RADIO_DATA_OUT/" || { 364 | echo "[-] Failed to copy radio image" 365 | abort 1 366 | } 367 | fi 368 | mv "$bootloaderImg" "$RADIO_DATA_OUT/" || { 369 | echo "[-] Failed to copy bootloader image" 370 | abort 1 371 | } 372 | 373 | # For Pixel devices with AB partitions layout, copy additional images required for OTA 374 | if [[ "$VENDOR" == "google" && "$EXTRA_IMGS_LIST" != "" ]]; then 375 | for img in "${EXTRA_IMGS[@]}" 376 | do 377 | if [ ! -f "$extractDir/images/$img.img" ]; then 378 | echo "[-] Failed to locate '$img.img' in factory image" 379 | abort 1 380 | fi 381 | mv "$extractDir/images/$img.img" "$RADIO_DATA_OUT/" 382 | done 383 | fi 384 | 385 | abort 0 386 | -------------------------------------------------------------------------------- /scripts/gen-prop-blobs-list.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Iterate vendor partition and extract the list of files to be copied from vendor blobs generator 4 | # script. The script combines vendor partition files and items included in the selected 5 | # configuration, into a unified file so that following scripts can pick-up the complete list. 6 | # 7 | 8 | set -e # fail on unhandled error 9 | set -u # fail on undefined variable 10 | #set -x # debug 11 | 12 | readonly SCRIPTS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 13 | readonly CONSTS_SCRIPT="$SCRIPTS_DIR/constants.sh" 14 | readonly COMMON_SCRIPT="$SCRIPTS_DIR/common.sh" 15 | declare -a SYS_TOOLS=("find" "sed" "sort" "jq") 16 | 17 | abort() { 18 | exit "$1" 19 | } 20 | 21 | usage() { 22 | cat <<_EOF 23 | Usage: $(basename "$0") [options] 24 | OPTIONS: 25 | -i|--input : Root path of /vendor partition 26 | -o|--output : Path to save generated "proprietary-blobs.txt" file 27 | --conf-file : Device configuration file 28 | --conf-type : 'naked' or 'full' configuration profile 29 | --api : API level 30 | _EOF 31 | abort 1 32 | } 33 | 34 | verify_input() { 35 | if [[ ! -f "$1/build.prop" ]]; then 36 | echo "[-] Invalid input directory structure" 37 | usage 38 | fi 39 | 40 | # Also check that we don't have any pre-optimized apps in vendor image 41 | if [[ "$(find "$1" -name "*.odex" | wc -l | tr -d " ")" -ne 0 ]]; then 42 | echo "[!] Vendor partition contains pre-optimized bytecode - not supported yet" 43 | abort 1 44 | fi 45 | } 46 | 47 | trap "abort 1" SIGINT SIGTERM 48 | . "$CONSTS_SCRIPT" 49 | . "$COMMON_SCRIPT" 50 | 51 | # Check that system tools exist 52 | for i in "${SYS_TOOLS[@]}" 53 | do 54 | if ! command_exists "$i"; then 55 | echo "[-] '$i' command not found" 56 | abort 1 57 | fi 58 | done 59 | 60 | INPUT_DIR="" 61 | OUTPUT_DIR="" 62 | CONFIG_FILE="" 63 | CONFIG_TYPE="naked" 64 | API_LEVEL="" 65 | 66 | while [[ $# -gt 1 ]] 67 | do 68 | arg="$1" 69 | case $arg in 70 | -o|--output) 71 | OUTPUT_DIR="$(echo "$2" | sed 's:/*$::')" 72 | shift 73 | ;; 74 | -i|--input) 75 | INPUT_DIR="$(echo "$2" | sed 's:/*$::')" 76 | shift 77 | ;; 78 | --conf-file) 79 | CONFIG_FILE="$2" 80 | shift 81 | ;; 82 | --conf-type) 83 | CONFIG_TYPE="$2" 84 | shift 85 | ;; 86 | --api) 87 | API_LEVEL="$2" 88 | shift 89 | ;; 90 | *) 91 | echo "[-] Invalid argument '$1'" 92 | usage 93 | ;; 94 | esac 95 | shift 96 | done 97 | 98 | # Input args check 99 | check_dir "$INPUT_DIR" "Input" 100 | check_dir "$OUTPUT_DIR" "Output" 101 | check_file "$CONFIG_FILE" "Device Config File" 102 | 103 | # Check if valid config type & API level 104 | isValidConfigType "$CONFIG_TYPE" 105 | isValidApiLevel "$API_LEVEL" 106 | 107 | # Verify input directory structure 108 | verify_input "$INPUT_DIR" 109 | 110 | readonly OUT_BLOBS_FILE_TMP="$OUTPUT_DIR/_proprietary-blobs.txt" 111 | readonly OUT_BLOBS_FILE="$OUTPUT_DIR/proprietary-blobs.txt" 112 | 113 | # Clean copy from previous runs 114 | > "$OUT_BLOBS_FILE" 115 | > "$OUT_BLOBS_FILE_TMP" 116 | 117 | # First add all regular files or symbolic links from /vendor partition 118 | find "$INPUT_DIR" -not -type d | sed "s#^$INPUT_DIR/##" | while read -r FILE 119 | do 120 | # Skip VENDOR_SKIP_FILES since it will be re-generated at build time 121 | if array_contains "$FILE" "${VENDOR_SKIP_FILES[@]}"; then 122 | continue 123 | fi 124 | 125 | # Additional skips only for naked configs 126 | if [[ "$CONFIG_TYPE" == "naked" ]]; then 127 | if array_contains "$FILE" "${VENDOR_SKIP_FILES_NAKED[@]}"; then 128 | continue 129 | fi 130 | fi 131 | 132 | echo "vendor/$FILE" >> "$OUT_BLOBS_FILE_TMP" 133 | done 134 | 135 | { 136 | # Then append system-proprietary-blobs 137 | jqIncRawArray "$API_LEVEL" "$CONFIG_TYPE" "system-other" "$CONFIG_FILE" | grep -Ev '(^#|^$)' || true 138 | 139 | # Then append dep-dso-proprietary-blobs 140 | jqIncRawArray "$API_LEVEL" "$CONFIG_TYPE" "dep-dso" "$CONFIG_FILE" | grep -Ev '(^#|^$)' || true 141 | 142 | # Then append bytecode-proprietary 143 | jqIncRawArray "$API_LEVEL" "$CONFIG_TYPE" "system-bytecode" "$CONFIG_FILE" | grep -Ev '(^#|^$)' || true 144 | } >> "$OUT_BLOBS_FILE_TMP" 145 | 146 | # Sort merged file with all lists 147 | sort -u "$OUT_BLOBS_FILE_TMP" > "$OUT_BLOBS_FILE" 148 | 149 | # Clean-up 150 | rm -f "$OUT_BLOBS_FILE_TMP" 151 | 152 | abort 0 153 | -------------------------------------------------------------------------------- /scripts/realpath.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # sh-realpath implementation from mkropat 4 | # https://github.com/mkropat/sh-realpath 5 | # 6 | 7 | set -e # fail on unhandled error 8 | 9 | _realpath() { 10 | _canonicalize_path "$(_resolve_symlinks "$1")" 11 | } 12 | 13 | _resolve_symlinks() { 14 | __resolve_symlinks "$1" 15 | } 16 | 17 | __resolve_symlinks() { 18 | __assert_no_path_cycles "$@" || return 19 | 20 | local dir_context path 21 | path=$(readlink -- "$1") 22 | if [ $? -eq 0 ]; then 23 | dir_context=$(dirname -- "$1") 24 | __resolve_symlinks "$(__prepend_dir_context_if_necessary "$dir_context" "$path")" "$@" 25 | else 26 | printf '%s\n' "$1" 27 | fi 28 | } 29 | 30 | __prepend_dir_context_if_necessary() { 31 | if [ "$1" = . ]; then 32 | printf '%s\n' "$2" 33 | else 34 | __prepend_path_if_relative "$1" "$2" 35 | fi 36 | } 37 | 38 | __prepend_path_if_relative() { 39 | case "$2" in 40 | /* ) printf '%s\n' "$2" ;; 41 | * ) printf '%s\n' "$1/$2" ;; 42 | esac 43 | } 44 | 45 | __assert_no_path_cycles() { 46 | local target path 47 | 48 | target=$1 49 | shift 50 | 51 | for path in "$@"; do 52 | if [ "$path" = "$target" ]; then 53 | return 1 54 | fi 55 | done 56 | } 57 | 58 | _canonicalize_path() { 59 | if [ -d "$1" ]; then 60 | __canonicalize_dir_path "$1" 61 | else 62 | __canonicalize_file_path "$1" 63 | fi 64 | } 65 | 66 | __canonicalize_dir_path() { 67 | (cd "$1" 2>/dev/null && pwd -P) 68 | } 69 | 70 | __canonicalize_file_path() { 71 | local dir file 72 | dir=$(dirname -- "$1") 73 | file=$(basename -- "$1") 74 | (cd "$dir" 2>/dev/null && printf '%s/%s\n' "$(pwd -P)" "$file") 75 | } 76 | --------------------------------------------------------------------------------