├── CleanSpec.mk ├── build ├── core │ ├── config.mk │ ├── definitions.mk │ ├── mkdir.mk │ ├── pathmap.mk │ ├── qcom_target.mk │ └── utils.mk ├── envsetup.sh ├── soong │ ├── Android.bp │ ├── bin │ │ └── hmm │ ├── generator │ │ ├── generator.go │ │ └── variables.go │ └── mkdir │ │ ├── init.go │ │ └── mkdir.go ├── tasks │ ├── bacon.mk │ ├── dt_image.mk │ ├── kernel.mk │ └── updatepackage.mk └── tools │ ├── getb64key.py │ ├── merge_dtbs.py │ └── roomservice.py ├── charger ├── Android.mk ├── images │ └── charger │ │ ├── battery_fail.png │ │ ├── battery_scale.png │ │ └── main_font.png └── values │ └── charger │ └── animation.txt ├── config ├── Android.mk ├── BoardConfigKernel.mk ├── BoardConfigReservedSize.mk ├── BoardConfigSoong.mk ├── BoardConfigSuperior.mk ├── aosp_audio.mk ├── branding.mk ├── common.mk ├── device_framework_matrix.xml ├── packages.mk ├── permissions │ ├── org.lineageos.health.xml │ └── privapp-permissions-lineagehw.xml └── superior_props.mk ├── overlay ├── common │ ├── external │ │ └── setupdesign │ │ │ └── main │ │ │ └── res │ │ │ └── values │ │ │ └── colors.xml │ ├── frameworks │ │ ├── base │ │ │ ├── core │ │ │ │ └── res │ │ │ │ │ └── res │ │ │ │ │ ├── color │ │ │ │ │ └── config_progress_background_tint.xml │ │ │ │ │ ├── drawable-nodpi │ │ │ │ │ └── default_wallpaper.png │ │ │ │ │ ├── values-mcc460 │ │ │ │ │ └── config.xml │ │ │ │ │ ├── values-sw600dp │ │ │ │ │ └── config.xml │ │ │ │ │ ├── values │ │ │ │ │ ├── config.xml │ │ │ │ │ ├── vendor_required_apps_managed_device.xml │ │ │ │ │ ├── vendor_required_apps_managed_profile.xml │ │ │ │ │ └── vendor_required_apps_managed_user.xml │ │ │ │ │ └── xml │ │ │ │ │ └── config_webview_packages.xml │ │ │ └── packages │ │ │ │ ├── SettingsLib │ │ │ │ └── res │ │ │ │ │ └── values │ │ │ │ │ └── config.xml │ │ │ │ ├── SettingsProvider │ │ │ │ └── res │ │ │ │ │ └── values │ │ │ │ │ └── defaults.xml │ │ │ │ └── SystemUI │ │ │ │ └── res │ │ │ │ └── values │ │ │ │ ├── config.xml │ │ │ │ └── dimens.xml │ │ └── libs │ │ │ └── systemui │ │ │ └── iconloaderlib │ │ │ └── res │ │ │ └── values │ │ │ └── config.xml │ └── packages │ │ ├── apps │ │ ├── Dialer │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── android │ │ │ │ └── voicemail │ │ │ │ └── impl │ │ │ │ └── res │ │ │ │ └── xml │ │ │ │ └── vvm_config.xml │ │ └── Settings │ │ │ └── res │ │ │ └── values │ │ │ └── config.xml │ │ └── inputmethods │ │ └── LatinIME │ │ └── java │ │ └── res │ │ └── values │ │ └── gesture-input.xml ├── dictionaries │ └── packages │ │ └── inputmethods │ │ └── LatinIME │ │ └── java │ │ └── res │ │ └── raw │ │ ├── main_bg.dict │ │ ├── main_cs.dict │ │ ├── main_da.dict │ │ ├── main_el.dict │ │ ├── main_en_au.dict │ │ ├── main_en_gb.dict │ │ ├── main_en_us.dict │ │ ├── main_fi.dict │ │ ├── main_hr.dict │ │ ├── main_hu.dict │ │ ├── main_iw.dict │ │ ├── main_ka.dict │ │ ├── main_lb.dict │ │ ├── main_lt.dict │ │ ├── main_lv.dict │ │ ├── main_nb.dict │ │ ├── main_nl.dict │ │ ├── main_pl.dict │ │ ├── main_pt_pt.dict │ │ ├── main_ro.dict │ │ ├── main_sl.dict │ │ ├── main_sr.dict │ │ ├── main_sv.dict │ │ ├── main_tr.dict │ │ └── main_uk.dict └── no-rro │ └── frameworks │ └── base │ └── core │ └── res │ └── res │ └── values │ ├── config.xml │ └── dimens.xml ├── release ├── aconfig │ └── ap3a │ │ ├── Android.bp │ │ ├── com.android.server.notification │ │ ├── Android.bp │ │ ├── all_notifs_need_ttl_flag_values.textproto │ │ ├── cross_app_polite_notifications_flag_values.textproto │ │ ├── notification_hide_unused_channels_flag_values.textproto │ │ ├── polite_notifications_attn_update_flag_values.textproto │ │ ├── polite_notifications_flag_values.textproto │ │ └── reject_old_notifications_flag_values.textproto │ │ ├── com.android.settingslib.flags │ │ ├── Android.bp │ │ └── settingslib_flags.textproto │ │ └── com.android.systemui │ │ ├── Android.bp │ │ └── systemui_flags.textproto ├── build_config │ ├── DEFAULT=proto │ └── ap3a.textproto ├── flag_values │ └── ap3a │ │ └── RELEASE_AVF_SUPPORT_CUSTOM_VM_WITH_PARAVIRTUALIZED_DEVICES.textproto ├── release_config_map.mk ├── release_config_map.textproto └── release_configs │ └── ap3a.textproto ├── scripts └── merge-aosp-tag.sh ├── superior.devices ├── tools ├── clean_headers.sh └── custom_apns.py ├── vars └── aosp_target_release └── vendorsetup.sh /CleanSpec.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2022 Paranoid Android 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | # 6 | 7 | $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/KERNEL_OBJ) 8 | -------------------------------------------------------------------------------- /build/core/config.mk: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2015 The CyanogenMod Project 2 | # (C) 2017-2018 The LineageOS Project 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # Rules for QCOM targets 17 | include $(TOPDIR)vendor/superior/build/core/qcom_target.mk 18 | -------------------------------------------------------------------------------- /build/core/definitions.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Superior-specific macros 3 | # 4 | define uniq 5 | $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1))) 6 | endef 7 | 8 | # Include board/platform macros 9 | include vendor/superior/build/core/utils.mk 10 | -------------------------------------------------------------------------------- /build/core/mkdir.mk: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2025 The LineageOS Project 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)) 16 | $(call pretty-error,mkdir.mk may only be used from Soong) 17 | endif 18 | 19 | include $(BUILD_SYSTEM)/base_rules.mk 20 | 21 | $(LOCAL_BUILT_MODULE): $(LOCAL_ADDITIONAL_DEPENDENCIES) 22 | @mkdir -p $(dir $@) 23 | @touch $@ 24 | 25 | ifneq ($(filter $(LOCAL_MODULE),$(PRODUCT_PACKAGES)),) 26 | $(LOCAL_SOONG_INSTALL_DIR): 27 | @mkdir -p $@ 28 | 29 | ALL_DEFAULT_INSTALLED_MODULES += $(LOCAL_SOONG_INSTALL_DIR) 30 | endif 31 | -------------------------------------------------------------------------------- /build/core/pathmap.mk: -------------------------------------------------------------------------------- 1 | # Enter project path into pathmap 2 | # 3 | # $(1): name 4 | # $(2): path 5 | # 6 | define project-set-path 7 | $(eval pathmap_PROJ += $(1):$(2)) 8 | endef 9 | 10 | # Returns the path to the requested module's include directory, 11 | # relative to the root of the source tree. 12 | # 13 | # $(1): a list of modules (or other named entities) to find the projects for 14 | define project-path-for 15 | $(foreach n,$(1),$(patsubst $(n):%,%,$(filter $(n):%,$(pathmap_PROJ)))) 16 | endef 17 | -------------------------------------------------------------------------------- /build/core/qcom_target.mk: -------------------------------------------------------------------------------- 1 | # Set device-specific HALs into project pathmap 2 | define set-device-specific-path 3 | $(if $(USE_DEVICE_SPECIFIC_$(1)), \ 4 | $(if $(DEVICE_SPECIFIC_$(1)_PATH), \ 5 | $(eval path := $(DEVICE_SPECIFIC_$(1)_PATH)), \ 6 | $(eval path := $(TARGET_DEVICE_DIR)/$(2))), \ 7 | $(eval path := $(3))) \ 8 | $(call project-set-path,qcom-$(2),$(strip $(path))) 9 | endef 10 | 11 | ifeq ($(BOARD_USES_QCOM_HARDWARE),true) 12 | 13 | $(call set-device-specific-path,AUDIO,audio,hardware/qcom-caf/$(QCOM_HARDWARE_VARIANT)/audio) 14 | $(call set-device-specific-path,DISPLAY,display,hardware/qcom-caf/$(QCOM_HARDWARE_VARIANT)/display) 15 | $(call set-device-specific-path,MEDIA,media,hardware/qcom-caf/$(QCOM_HARDWARE_VARIANT)/media) 16 | 17 | $(call set-device-specific-path,BT_VENDOR,bt-vendor,hardware/qcom-caf/bt) 18 | $(call set-device-specific-path,DATA_IPA_CFG_MGR,data-ipa-cfg-mgr,vendor/qcom/opensource/data-ipa-cfg-mgr) 19 | $(call set-device-specific-path,DATASERVICES,dataservices,vendor/qcom/opensource/dataservices) 20 | $(call set-device-specific-path,VR,vr,hardware/qcom-caf/vr) 21 | $(call set-device-specific-path,WLAN,wlan,hardware/qcom-caf/wlan) 22 | 23 | PRODUCT_CFI_INCLUDE_PATHS += \ 24 | hardware/qcom-caf/wlan/qcwcn/wpa_supplicant_8_lib 25 | 26 | else 27 | 28 | QC_OPEN_PATH := vendor/qcom/opensource 29 | 30 | endif 31 | -------------------------------------------------------------------------------- /build/core/utils.mk: -------------------------------------------------------------------------------- 1 | # vars for use by utils 2 | # the following are already defined in build/make: 3 | # empty space comma newline pound backslash 4 | colon := $(empty):$(empty) 5 | underscore := $(empty)_$(empty) 6 | 7 | # $(call match-word,w1,w2) 8 | # checks if w1 == w2 9 | # How it works 10 | # if (w1-w2 not empty or w2-w1 not empty) then not_match else match 11 | # 12 | # returns true or empty 13 | #$(warning :$(1): :$(2): :$(subst $(1),,$(2)):) \ 14 | #$(warning :$(2): :$(1): :$(subst $(2),,$(1)):) \ 15 | # 16 | define match-word 17 | $(strip \ 18 | $(if $(or $(subst $(1),$(empty),$(2)),$(subst $(2),$(empty),$(1))),,true) \ 19 | ) 20 | endef 21 | 22 | # $(call find-word-in-list,w,wlist) 23 | # finds an exact match of word w in word list wlist 24 | # 25 | # How it works 26 | # fill wlist spaces with colon 27 | # wrap w with colon 28 | # search word w in list wl, if found match m, return stripped word w 29 | # 30 | # returns stripped word or empty 31 | define find-word-in-list 32 | $(strip \ 33 | $(eval wl:= $(colon)$(subst $(space),$(colon),$(strip $(2)))$(colon)) \ 34 | $(eval w:= $(colon)$(strip $(1))$(colon)) \ 35 | $(eval m:= $(findstring $(w),$(wl))) \ 36 | $(if $(m),$(1),) \ 37 | ) 38 | endef 39 | 40 | # $(call match-word-in-list,w,wlist) 41 | # does an exact match of word w in word list wlist 42 | # How it works 43 | # if the input word is not empty 44 | # return output of an exact match of word w in wordlist wlist 45 | # else 46 | # return empty 47 | # returns true or empty 48 | define match-word-in-list 49 | $(strip \ 50 | $(if $(strip $(1)), \ 51 | $(call match-word,$(call find-word-in-list,$(1),$(2)),$(strip $(1))), \ 52 | ) \ 53 | ) 54 | endef 55 | 56 | # $(call match-prefix,p,delim,w/wlist) 57 | # matches prefix p in wlist using delimiter delim 58 | # 59 | # How it works 60 | # trim the words in wlist w 61 | # if find-word-in-list returns not empty 62 | # return true 63 | # else 64 | # return empty 65 | # 66 | define match-prefix 67 | $(strip \ 68 | $(eval w := $(strip $(1)$(strip $(2)))) \ 69 | $(eval text := $(patsubst $(w)%,$(1),$(3))) \ 70 | $(if $(call match-word-in-list,$(1),$(text)),true,) \ 71 | ) 72 | endef 73 | 74 | # ---- 75 | # The following utilities are meant for board platform specific 76 | # featurisation 77 | 78 | ifndef get-vendor-board-platforms 79 | # $(call get-vendor-board-platforms,v) 80 | # returns list of board platforms for vendor v 81 | define get-vendor-board-platforms 82 | $(if $(call match-word,$(BOARD_USES_$(1)_HARDWARE),true),$($(1)_BOARD_PLATFORMS)) 83 | endef 84 | endif # get-vendor-board-platforms 85 | 86 | # $(call is-board-platform,bp) 87 | # returns true or empty 88 | define is-board-platform 89 | $(call match-word,$(1),$(TARGET_BOARD_PLATFORM)) 90 | endef 91 | 92 | # $(call is-not-board-platform,bp) 93 | # returns true or empty 94 | define is-not-board-platform 95 | $(if $(call match-word,$(1),$(TARGET_BOARD_PLATFORM)),,true) 96 | endef 97 | 98 | # $(call is-board-platform-in-list,bpl) 99 | # returns true or empty 100 | define is-board-platform-in-list 101 | $(call match-word-in-list,$(TARGET_BOARD_PLATFORM),$(1)) 102 | endef 103 | 104 | # $(call is-vendor-board-platform,vendor) 105 | # returns true or empty 106 | define is-vendor-board-platform 107 | $(strip \ 108 | $(call match-word-in-list,$(TARGET_BOARD_PLATFORM),\ 109 | $(call get-vendor-board-platforms,$(1)) \ 110 | ) \ 111 | ) 112 | endef 113 | 114 | # $(call is-chipset-in-board-platform,chipset) 115 | # does a prefix match of chipset in TARGET_BOARD_PLATFORM 116 | # uses underscore as a delimiter 117 | # 118 | # returns true or empty 119 | define is-chipset-in-board-platform 120 | $(call match-prefix,$(1),$(underscore),$(TARGET_BOARD_PLATFORM)) 121 | endef 122 | 123 | # $(call is-chipset-prefix-in-board-platform,prefix) 124 | # does a chipset prefix match in TARGET_BOARD_PLATFORM 125 | # assumes '_' and 'a' as the delimiter to the chipset prefix 126 | # 127 | # How it works 128 | # if ($(prefix)_ or $(prefix)a match in board platform) 129 | # return true 130 | # else 131 | # return empty 132 | # 133 | define is-chipset-prefix-in-board-platform 134 | $(strip \ 135 | $(eval delim_a := $(empty)a$(empty)) \ 136 | $(if \ 137 | $(or \ 138 | $(call match-prefix,$(1),$(delim_a),$(TARGET_BOARD_PLATFORM)), \ 139 | $(call match-prefix,$(1),$(underscore),$(TARGET_BOARD_PLATFORM)), \ 140 | ), \ 141 | true, \ 142 | ) \ 143 | ) 144 | endef 145 | 146 | #---- 147 | # The following utilities are meant for Android Code Name 148 | # specific featurisation 149 | # 150 | # refer http://source.android.com/source/build-numbers.html 151 | # for code names and associated sdk versions 152 | CUPCAKE_SDK_VERSIONS := 3 153 | DONUT_SDK_VERSIONS := 4 154 | ECLAIR_SDK_VERSIONS := 5 6 7 155 | FROYO_SDK_VERSIONS := 8 156 | GINGERBREAD_SDK_VERSIONS := 9 10 157 | HONEYCOMB_SDK_VERSIONS := 11 12 13 158 | ICECREAM_SANDWICH_SDK_VERSIONS := 14 15 159 | JELLY_BEAN_SDK_VERSIONS := 16 17 18 160 | 161 | # $(call is-platform-sdk-version-at-least,version) 162 | # version is a numeric SDK_VERSION defined above 163 | define is-platform-sdk-version-at-least 164 | $(strip \ 165 | $(if $(filter 1,$(shell echo "$$(( $(PLATFORM_SDK_VERSION) >= $(1) ))" )), \ 166 | true, \ 167 | ) \ 168 | ) 169 | endef 170 | 171 | # $(call is-android-codename,codename) 172 | # codename is one of cupcake,donut,eclair,froyo,gingerbread,icecream 173 | # please refer the $(codename)_SDK_VERSIONS declared above 174 | define is-android-codename 175 | $(strip \ 176 | $(if \ 177 | $(call match-word-in-list,$(PLATFORM_SDK_VERSION),$($(1)_SDK_VERSIONS)), \ 178 | true, \ 179 | ) \ 180 | ) 181 | endef 182 | 183 | # $(call is-android-codename-in-list,cnlist) 184 | # cnlist is combination/list of android codenames 185 | define is-android-codename-in-list 186 | $(strip \ 187 | $(eval acn := $(empty)) \ 188 | $(foreach \ 189 | i,$(1),\ 190 | $(eval acn += \ 191 | $(if \ 192 | $(call \ 193 | match-word-in-list,\ 194 | $(PLATFORM_SDK_VERSION),\ 195 | $($(i)_SDK_VERSIONS)\ 196 | ),\ 197 | true,\ 198 | )\ 199 | )\ 200 | ) \ 201 | $(if $(strip $(acn)),true,) \ 202 | ) 203 | endef 204 | 205 | # $(call add-radio-file-sha1-checked,path,sha1) 206 | define add-radio-file-sha1-checked 207 | $(eval path := $(LOCAL_PATH)/$(1)) 208 | $(eval sha1 := $(shell sha1sum "$(path)" | cut -d" " -f 1)) 209 | $(if $(filter $(sha1),$(2)), 210 | $(call add-radio-file,$(1)), 211 | $(error $(path) SHA1 mismatch ($(sha1) != $(2)))) 212 | endef 213 | -------------------------------------------------------------------------------- /build/soong/Android.bp: -------------------------------------------------------------------------------- 1 | // SuperiorOS soong configs 2 | 3 | bootstrap_go_package { 4 | name: "soong-superior-generator", 5 | pkgPath: "superior/soong/generator", 6 | deps: [ 7 | "blueprint", 8 | "blueprint-pathtools", 9 | "soong", 10 | "soong-android", 11 | "soong-shared", 12 | ], 13 | srcs: [ 14 | "generator/generator.go", 15 | "generator/variables.go", 16 | ], 17 | pluginFor: ["soong_build"], 18 | } 19 | 20 | superior_generator { 21 | name: "generated_kernel_includes", 22 | 23 | // The headers make command 24 | cmd: "$(PATH_OVERRIDE_SOONG) $(KERNEL_MAKE_CMD) $(KERNEL_MAKE_FLAGS) -C $(TARGET_KERNEL_SOURCE) O=$(KERNEL_BUILD_OUT_PREFIX)$(genDir) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) headers_install && vendor/superior/tools/clean_headers.sh $(KERNEL_BUILD_OUT_PREFIX)$(genDir)", 25 | 26 | // Directories that can be imported by a cc_* module generated_headers property 27 | export_include_dirs: [ 28 | "usr/audio/include/uapi", 29 | "usr/include", 30 | "usr/include/audio", 31 | "usr/include/audio/include/uapi", 32 | "usr/techpack/audio/include", 33 | ], 34 | 35 | // Sources for dependency tracking 36 | dep_root: "$(TARGET_KERNEL_SOURCE)", 37 | dep_files: [ 38 | "Makefile", 39 | "include/**/*", 40 | "arch/$(KERNEL_ARCH)/include/**/*", 41 | "techpack/audio/include/**/*", 42 | ], 43 | } 44 | 45 | bootstrap_go_package { 46 | name: "soong-superior-mkdir", 47 | pkgPath: "superior/soong/mkdir", 48 | deps: [ 49 | "blueprint", 50 | "blueprint-pathtools", 51 | "soong", 52 | "soong-android", 53 | ], 54 | srcs: [ 55 | "mkdir/init.go", 56 | "mkdir/mkdir.go", 57 | ], 58 | pluginFor: ["soong_build"], 59 | } 60 | 61 | cc_defaults { 62 | name: "generated_kernel_header_defaults", 63 | generated_headers: ["generated_kernel_includes"], 64 | export_generated_headers: ["generated_kernel_includes"], 65 | vendor_available: true, 66 | recovery_available: true, 67 | } 68 | 69 | cc_library_headers { 70 | name: "generated_kernel_headers", 71 | defaults: ["generated_kernel_header_defaults"], 72 | } 73 | 74 | cc_library_headers { 75 | name: "qti_kernel_headers", 76 | defaults: ["generated_kernel_header_defaults"], 77 | } 78 | 79 | // Target platform agnostic config modules 80 | soong_config_module_type { 81 | name: "aapt_version_code", 82 | module_type: "java_defaults", 83 | config_namespace: "superiorGlobalVars", 84 | value_variables: ["aapt_version_code"], 85 | properties: ["aaptflags"], 86 | } 87 | 88 | aapt_version_code { 89 | name: "aapt_version_code_defaults", 90 | soong_config_variables: { 91 | aapt_version_code: { 92 | aaptflags: [ 93 | "--version-code", 94 | "%s", 95 | ], 96 | }, 97 | }, 98 | } 99 | 100 | soong_config_module_type { 101 | name: "camera_override_format_from_reserved", 102 | module_type: "cc_defaults", 103 | config_namespace: "superiorGlobalVars", 104 | bool_variables: ["camera_override_format_from_reserved"], 105 | properties: ["cppflags"], 106 | } 107 | 108 | camera_override_format_from_reserved { 109 | name: "camera_override_format_from_reserved_defaults", 110 | soong_config_variables: { 111 | camera_override_format_from_reserved: { 112 | cppflags: ["-DTARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED"], 113 | }, 114 | }, 115 | } 116 | 117 | soong_config_module_type { 118 | name: "camera_needs_client_info_lib", 119 | module_type: "cc_defaults", 120 | config_namespace: "superiorGlobalVars", 121 | bool_variables: ["camera_needs_client_info_lib"], 122 | properties: [ 123 | "cppflags", 124 | "shared_libs", 125 | ], 126 | } 127 | 128 | camera_needs_client_info_lib { 129 | name: "camera_needs_client_info_lib_defaults", 130 | soong_config_variables: { 131 | camera_needs_client_info_lib: { 132 | cppflags: ["-DCAMERA_NEEDS_CLIENT_INFO_LIB"], 133 | shared_libs: ["//hardware/oneplus:vendor.oneplus.hardware.camera@1.0"], 134 | }, 135 | }, 136 | } 137 | 138 | soong_config_module_type { 139 | name: "gralloc_10_usage_bits", 140 | module_type: "cc_defaults", 141 | config_namespace: "superiorGlobalVars", 142 | value_variables: ["additional_gralloc_10_usage_bits"], 143 | properties: ["cppflags"], 144 | } 145 | 146 | gralloc_10_usage_bits { 147 | name: "gralloc_10_usage_bits_defaults", 148 | soong_config_variables: { 149 | additional_gralloc_10_usage_bits: { 150 | cppflags: ["-DADDNL_GRALLOC_10_USAGE_BITS=%s"], 151 | }, 152 | }, 153 | } 154 | 155 | soong_config_module_type { 156 | name: "gralloc_handle_custom_content_md_reserved_size", 157 | module_type: "cc_defaults", 158 | config_namespace: "superiorGlobalVars", 159 | bool_variables: ["gralloc_handle_has_custom_content_md_reserved_size"], 160 | properties: ["export_cflags"], 161 | } 162 | 163 | gralloc_handle_custom_content_md_reserved_size { 164 | name: "gralloc_handle_has_custom_content_md_reserved_size_defaults", 165 | soong_config_variables: { 166 | gralloc_handle_has_custom_content_md_reserved_size: { 167 | export_cflags: ["-DGRALLOC_HANDLE_HAS_CUSTOM_CONTENT_MD_RESERVED_SIZE"], 168 | }, 169 | }, 170 | } 171 | 172 | soong_config_module_type { 173 | name: "gralloc_handle_reserved_size", 174 | module_type: "cc_defaults", 175 | config_namespace: "superiorGlobalVars", 176 | bool_variables: ["gralloc_handle_has_reserved_size"], 177 | properties: ["export_cflags"], 178 | } 179 | 180 | gralloc_handle_reserved_size { 181 | name: "gralloc_handle_has_reserved_size_defaults", 182 | soong_config_variables: { 183 | gralloc_handle_has_reserved_size: { 184 | export_cflags: ["-DGRALLOC_HANDLE_HAS_RESERVED_SIZE"], 185 | }, 186 | }, 187 | } 188 | 189 | soong_config_module_type { 190 | name: "gralloc_handle_ubwcp_format", 191 | module_type: "cc_defaults", 192 | config_namespace: "superiorGlobalVars", 193 | bool_variables: ["gralloc_handle_has_ubwcp_format"], 194 | properties: ["export_cflags"], 195 | } 196 | 197 | gralloc_handle_ubwcp_format { 198 | name: "gralloc_handle_has_ubwcp_format_defaults", 199 | soong_config_variables: { 200 | gralloc_handle_has_ubwcp_format: { 201 | export_cflags: ["-DGRALLOC_HANDLE_HAS_UBWCP_FORMAT"], 202 | }, 203 | }, 204 | } 205 | 206 | soong_config_module_type { 207 | name: "target_shim_libs", 208 | module_type: "cc_defaults", 209 | config_namespace: "superiorGlobalVars", 210 | value_variables: ["target_ld_shim_libs"], 211 | properties: ["cppflags"], 212 | } 213 | 214 | target_shim_libs { 215 | name: "shim_libs_defaults", 216 | soong_config_variables: { 217 | target_ld_shim_libs: { 218 | cppflags: ["-DLD_SHIM_LIBS=\"%s\""], 219 | }, 220 | }, 221 | } 222 | 223 | soong_config_module_type { 224 | name: "vendor_init", 225 | module_type: "cc_defaults", 226 | config_namespace: "superiorGlobalVars", 227 | value_variables: ["target_init_vendor_lib"], 228 | properties: ["whole_static_libs"], 229 | } 230 | 231 | vendor_init { 232 | name: "vendor_init_defaults", 233 | soong_config_variables: { 234 | target_init_vendor_lib: { 235 | whole_static_libs: ["%s"], 236 | }, 237 | }, 238 | } 239 | 240 | soong_config_module_type { 241 | name: "power_libperfmgr", 242 | module_type: "cc_defaults", 243 | config_namespace: "superiorGlobalVars", 244 | value_variables: ["target_power_libperfmgr_mode_extension_lib"], 245 | properties: [ 246 | "whole_static_libs", 247 | ], 248 | } 249 | 250 | power_libperfmgr { 251 | name: "power_libperfmgr_defaults", 252 | soong_config_variables: { 253 | target_power_libperfmgr_mode_extension_lib: { 254 | whole_static_libs: ["%s"], 255 | }, 256 | }, 257 | } 258 | 259 | soong_config_module_type { 260 | name: "surfaceflinger_udfps_lib", 261 | module_type: "cc_defaults", 262 | config_namespace: "superiorGlobalVars", 263 | value_variables: ["target_surfaceflinger_udfps_lib"], 264 | properties: [ 265 | "cppflags", 266 | "whole_static_libs", 267 | ], 268 | } 269 | 270 | surfaceflinger_udfps_lib { 271 | name: "surfaceflinger_udfps_lib_defaults", 272 | soong_config_variables: { 273 | target_surfaceflinger_udfps_lib: { 274 | cppflags: ["-DTARGET_PROVIDES_UDFPS_LIB"], 275 | whole_static_libs: ["%s"], 276 | }, 277 | }, 278 | } 279 | 280 | soong_config_module_type { 281 | name: "trust_usb_control", 282 | module_type: "cc_defaults", 283 | config_namespace: "superiorGlobalVars", 284 | value_variables: [ 285 | "target_trust_usb_control_path", 286 | "target_trust_usb_control_enable", 287 | "target_trust_usb_control_disable", 288 | ], 289 | properties: ["cppflags"], 290 | } 291 | 292 | trust_usb_control { 293 | name: "trust_usb_control_defaults", 294 | soong_config_variables: { 295 | target_trust_usb_control_path: { 296 | cppflags: ["-DUSB_CONTROL_PATH=\"%s\""], 297 | }, 298 | target_trust_usb_control_enable: { 299 | cppflags: ["-DUSB_CONTROL_ENABLE=\"%s\""], 300 | }, 301 | target_trust_usb_control_disable: { 302 | cppflags: ["-DUSB_CONTROL_DISABLE=\"%s\""], 303 | }, 304 | }, 305 | } 306 | 307 | soong_config_module_type { 308 | name: "bootloader_message_offset", 309 | module_type: "cc_defaults", 310 | config_namespace: "superiorGlobalVars", 311 | value_variables: ["bootloader_message_offset"], 312 | properties: [ 313 | "cflags", 314 | "export_cflags", 315 | ], 316 | } 317 | 318 | bootloader_message_offset { 319 | name: "bootloader_message_offset_defaults", 320 | soong_config_variables: { 321 | bootloader_message_offset: { 322 | cflags: ["-DBOARD_RECOVERY_BLDRMSG_OFFSET=%s"], 323 | export_cflags: ["-DBOARD_RECOVERY_BLDRMSG_OFFSET=%s"], 324 | }, 325 | }, 326 | } 327 | 328 | soong_config_module_type { 329 | name: "egl_display_array", 330 | module_type: "cc_defaults", 331 | config_namespace: "superiorGlobalVars", 332 | bool_variables: ["uses_egl_display_array"], 333 | properties: ["cflags"], 334 | } 335 | 336 | egl_display_array { 337 | name: "egl_display_array_defaults", 338 | soong_config_variables: { 339 | uses_egl_display_array: { 340 | cflags: ["-DEGL_DISPLAY_ARRAY"], 341 | }, 342 | }, 343 | } 344 | 345 | soong_config_module_type { 346 | name: "health_charging_control", 347 | module_type: "cc_defaults", 348 | config_namespace: "superiorGlobalVars", 349 | bool_variables: [ 350 | "target_health_charging_control_supports_toggle", 351 | "target_health_charging_control_supports_bypass", 352 | "target_health_charging_control_supports_deadline", 353 | ], 354 | value_variables: [ 355 | "target_health_charging_control_charging_path", 356 | "target_health_charging_control_charging_enabled", 357 | "target_health_charging_control_charging_disabled", 358 | "target_health_charging_control_deadline_path", 359 | ], 360 | properties: ["cppflags"], 361 | } 362 | 363 | health_charging_control { 364 | name: "health_charging_control_defaults", 365 | soong_config_variables: { 366 | target_health_charging_control_supports_toggle: { 367 | cppflags: ["-DHEALTH_CHARGING_CONTROL_SUPPORTS_TOGGLE"], 368 | }, 369 | target_health_charging_control_supports_bypass: { 370 | cppflags: ["-DHEALTH_CHARGING_CONTROL_SUPPORTS_BYPASS"], 371 | }, 372 | target_health_charging_control_supports_deadline: { 373 | cppflags: ["-DHEALTH_CHARGING_CONTROL_SUPPORTS_DEADLINE"], 374 | }, 375 | target_health_charging_control_charging_path: { 376 | cppflags: ["-DHEALTH_CHARGING_CONTROL_CHARGING_PATH=\"%s\""], 377 | }, 378 | target_health_charging_control_charging_enabled: { 379 | cppflags: ["-DHEALTH_CHARGING_CONTROL_CHARGING_ENABLED=\"%s\""], 380 | }, 381 | target_health_charging_control_charging_disabled: { 382 | cppflags: ["-DHEALTH_CHARGING_CONTROL_CHARGING_DISABLED=\"%s\""], 383 | }, 384 | target_health_charging_control_deadline_path: { 385 | cppflags: ["-DHEALTH_CHARGING_CONTROL_DEADLINE_PATH=\"%s\""], 386 | }, 387 | }, 388 | } 389 | 390 | soong_config_module_type { 391 | name: "powershare", 392 | module_type: "cc_defaults", 393 | config_namespace: "superiorGlobalVars", 394 | value_variables: [ 395 | "target_powershare_path", 396 | "target_powershare_enabled", 397 | "target_powershare_disabled", 398 | ], 399 | properties: ["cppflags"], 400 | } 401 | 402 | powershare { 403 | name: "powershare_defaults", 404 | soong_config_variables: { 405 | target_powershare_path: { 406 | cppflags: ["-DPOWERSHARE_PATH=\"%s\""], 407 | }, 408 | target_powershare_enabled: { 409 | cppflags: ["-DPOWERSHARE_ENABLED=\"%s\""], 410 | }, 411 | target_powershare_disabled: { 412 | cppflags: ["-DPOWERSHARE_DISABLED=\"%s\""], 413 | }, 414 | }, 415 | } 416 | 417 | // NVIDIA specific config modules 418 | soong_config_module_type { 419 | name: "nvidia_enhancements", 420 | module_type: "cc_defaults", 421 | config_namespace: "superiorNvidiaVars", 422 | bool_variables: ["uses_nvidia_enhancements"], 423 | properties: ["cppflags"], 424 | } 425 | 426 | nvidia_enhancements { 427 | name: "nvidia_enhancements_defaults", 428 | soong_config_variables: { 429 | uses_nvidia_enhancements: { 430 | cppflags: ["-DNV_ANDROID_FRAMEWORK_ENHANCEMENTS"], 431 | }, 432 | }, 433 | } 434 | 435 | soong_config_module_type { 436 | name: "disable_bluetooth_le_read_buffer_size_v2", 437 | module_type: "cc_defaults", 438 | config_namespace: "superiorGlobalVars", 439 | bool_variables: ["disable_bluetooth_le_read_buffer_size_v2"], 440 | properties: ["cppflags"], 441 | } 442 | 443 | disable_bluetooth_le_read_buffer_size_v2 { 444 | name: "disable_bluetooth_le_read_buffer_size_v2_defaults", 445 | soong_config_variables: { 446 | disable_bluetooth_le_read_buffer_size_v2: { 447 | cppflags: ["-DDISABLE_LE_READ_BUFFER_SIZE_V2"], 448 | }, 449 | }, 450 | } 451 | 452 | soong_config_module_type { 453 | name: "disable_bluetooth_le_set_host_feature", 454 | module_type: "cc_defaults", 455 | config_namespace: "superiorGlobalVars", 456 | bool_variables: ["disable_bluetooth_le_set_host_feature"], 457 | properties: ["cppflags"], 458 | } 459 | 460 | disable_bluetooth_le_set_host_feature { 461 | name: "disable_bluetooth_le_set_host_feature_defaults", 462 | soong_config_variables: { 463 | disable_bluetooth_le_set_host_feature: { 464 | cppflags: ["-DDISABLE_LE_SET_HOST_FEATURE"], 465 | }, 466 | }, 467 | } 468 | 469 | // QCOM specific config modules 470 | soong_config_module_type { 471 | name: "librmnetctl_pre_uplink", 472 | module_type: "cc_defaults", 473 | config_namespace: "superiorQcomVars", 474 | bool_variables: ["uses_pre_uplink_features_netmgrd"], 475 | properties: ["cflags"], 476 | } 477 | 478 | librmnetctl_pre_uplink { 479 | name: "librmnetctl_pre_uplink_defaults", 480 | soong_config_variables: { 481 | uses_pre_uplink_features_netmgrd: { 482 | cflags: ["-DNO_UPLINK_FEATURES"], 483 | }, 484 | }, 485 | } 486 | 487 | soong_config_module_type { 488 | name: "extended_compress_format", 489 | module_type: "cc_defaults", 490 | config_namespace: "superiorQcomVars", 491 | bool_variables: ["supports_extended_compress_format"], 492 | properties: ["cflags"], 493 | } 494 | 495 | extended_compress_format { 496 | name: "extended_compress_format_defaults", 497 | soong_config_variables: { 498 | supports_extended_compress_format: { 499 | cflags: ["-DENABLE_EXTENDED_COMPRESS_FORMAT"], 500 | }, 501 | }, 502 | } 503 | 504 | soong_config_module_type { 505 | name: "surfaceflinger_qcom_extensions", 506 | module_type: "cc_defaults", 507 | config_namespace: "superiorQcomVars", 508 | value_variables: ["qcom_display_headers_namespace"], 509 | properties: [ 510 | "cppflags", 511 | "header_libs", 512 | ], 513 | } 514 | 515 | surfaceflinger_qcom_extensions { 516 | name: "surfaceflinger_qcom_ext_defaults", 517 | soong_config_variables: { 518 | qcom_display_headers_namespace: { 519 | cppflags: ["-DQCOM_UM_FAMILY"], 520 | header_libs: ["//%s:display_intf_headers"], 521 | }, 522 | }, 523 | } 524 | 525 | soong_config_module_type { 526 | name: "needs_camera_boottime", 527 | module_type: "cc_defaults", 528 | config_namespace: "superiorGlobalVars", 529 | bool_variables: ["needs_camera_boottime"], 530 | properties: ["cppflags"], 531 | } 532 | 533 | needs_camera_boottime { 534 | name: "needs_camera_boottime_defaults", 535 | soong_config_variables: { 536 | needs_camera_boottime: { 537 | cppflags: ["-DTARGET_CAMERA_BOOTTIME_TIMESTAMP"], 538 | }, 539 | }, 540 | } 541 | 542 | soong_config_module_type { 543 | name: "camera_needs_client_info", 544 | module_type: "cc_defaults", 545 | config_namespace: "superiorGlobalVars", 546 | bool_variables: ["camera_needs_client_info"], 547 | properties: ["cppflags"], 548 | } 549 | 550 | camera_needs_client_info { 551 | name: "camera_needs_client_info_defaults", 552 | soong_config_variables: { 553 | camera_needs_client_info: { 554 | cppflags: ["-DCAMERA_NEEDS_CLIENT_INFO"], 555 | }, 556 | }, 557 | } 558 | 559 | soong_config_module_type { 560 | name: "uses_oplus_camera", 561 | module_type: "cc_defaults", 562 | config_namespace: "superiorGlobalVars", 563 | bool_variables: ["uses_oplus_camera"], 564 | properties: ["cppflags"], 565 | } 566 | uses_oplus_camera { 567 | name: "uses_oplus_camera_defaults", 568 | soong_config_variables: { 569 | uses_oplus_camera: { 570 | cppflags: ["-DUSES_OPLUS_CAMERA"], 571 | }, 572 | }, 573 | } 574 | 575 | soong_config_module_type { 576 | name: "uses_nothing_camera", 577 | module_type: "cc_defaults", 578 | config_namespace: "superiorGlobalVars", 579 | bool_variables: ["uses_nothing_camera"], 580 | properties: ["cppflags"], 581 | } 582 | 583 | uses_nothing_camera { 584 | name: "uses_nothing_camera_defaults", 585 | soong_config_variables: { 586 | uses_nothing_camera: { 587 | cppflags: ["-DUSES_NOTHING_CAMERA"], 588 | }, 589 | }, 590 | } 591 | 592 | soong_config_module_type { 593 | name: "uses_legacy_fd_fbdev", 594 | module_type: "cc_defaults", 595 | config_namespace: "superiorGlobalVars", 596 | bool_variables: ["uses_legacy_fd_fbdev"], 597 | properties: ["cppflags"], 598 | } 599 | 600 | uses_legacy_fd_fbdev { 601 | name: "uses_legacy_fd_fbdev_defaults", 602 | soong_config_variables: { 603 | uses_legacy_fd_fbdev: { 604 | cppflags: ["-DUSES_LEGACY_FD_FBDEV"], 605 | }, 606 | }, 607 | } 608 | 609 | soong_config_module_type { 610 | name: "target_alternative_futex_waiters", 611 | module_type: "cc_defaults", 612 | config_namespace: "superiorGlobalVars", 613 | bool_variables: ["target_alternative_futex_waiters"], 614 | properties: ["cppflags"], 615 | } 616 | 617 | target_alternative_futex_waiters { 618 | name: "target_alternative_futex_waiters_defaults", 619 | soong_config_variables: { 620 | target_alternative_futex_waiters: { 621 | cppflags: ["-DTARGET_ALTERNATIVE_FUTEX_WAITERS"], 622 | }, 623 | }, 624 | } 625 | 626 | soong_config_module_type { 627 | name: "camera_needs_client_info_lib_oplus", 628 | module_type: "cc_defaults", 629 | config_namespace: "superiorGlobalVars", 630 | bool_variables: ["camera_needs_client_info_lib_oplus"], 631 | properties: [ 632 | "cppflags", 633 | "shared_libs", 634 | ], 635 | } 636 | 637 | camera_needs_client_info_lib_oplus { 638 | name: "camera_needs_client_info_lib_oplus_defaults", 639 | soong_config_variables: { 640 | camera_needs_client_info_lib_oplus: { 641 | cppflags: ["-DCAMERA_NEEDS_CLIENT_INFO_LIB_OPLUS"], 642 | shared_libs: ["vendor.oplus.hardware.cameraMDM@2.0"], 643 | }, 644 | }, 645 | } 646 | 647 | soong_config_module_type { 648 | name: "uses_oppo_camera", 649 | module_type: "cc_defaults", 650 | config_namespace: "superiorGlobalVars", 651 | bool_variables: ["uses_oppo_camera"], 652 | properties: ["cppflags"], 653 | } 654 | 655 | uses_oppo_camera { 656 | name: "uses_oppo_camera_defaults", 657 | soong_config_variables: { 658 | uses_oppo_camera: { 659 | cppflags: ["-DUSES_OPPO_CAMERA"], 660 | }, 661 | }, 662 | } 663 | 664 | soong_config_module_type { 665 | name: "uses_miui_camera", 666 | module_type: "cc_defaults", 667 | config_namespace: "superiorGlobalVars", 668 | bool_variables: ["uses_miui_camera"], 669 | properties: ["cppflags"] 670 | } 671 | 672 | uses_miui_camera { 673 | name: "uses_miui_camera_defaults", 674 | soong_config_variables: { 675 | uses_miui_camera: { 676 | cppflags: ["-DUSES_MIUI_CAMERA"], 677 | }, 678 | }, 679 | } 680 | soong_config_module_type { 681 | name: "inputdispatcher_skip_event_key", 682 | module_type: "cc_defaults", 683 | config_namespace: "superiorGlobalVars", 684 | value_variables: ["target_inputdispatcher_skip_event_key"], 685 | properties: ["cppflags"], 686 | } 687 | 688 | inputdispatcher_skip_event_key { 689 | name: "inputdispatcher_skip_event_key_defaults", 690 | soong_config_variables: { 691 | target_inputdispatcher_skip_event_key: { 692 | cppflags: ["-DINPUTDISPATCHER_SKIP_EVENT_KEY=%s"], 693 | }, 694 | }, 695 | } 696 | 697 | soong_config_module_type { 698 | name: "qti_vibrator_hal", 699 | module_type: "cc_defaults", 700 | config_namespace: "superiorQcomVars", 701 | bool_variables: ["qti_vibrator_use_effect_stream"], 702 | value_variables: ["qti_vibrator_effect_lib"], 703 | properties: [ 704 | "cppflags", 705 | "shared_libs", 706 | ], 707 | } 708 | 709 | qti_vibrator_hal { 710 | name: "qti_vibrator_hal_defaults", 711 | soong_config_variables: { 712 | qti_vibrator_use_effect_stream: { 713 | cppflags: ["-DUSE_EFFECT_STREAM"], 714 | }, 715 | qti_vibrator_effect_lib: { 716 | shared_libs: ["%s"], 717 | }, 718 | }, 719 | } 720 | 721 | soong_config_module_type { 722 | name: "include_miui_camera", 723 | module_type: "cc_defaults", 724 | config_namespace: "superiorGlobalVars", 725 | bool_variables: ["include_miui_camera"], 726 | properties: ["cppflags"], 727 | } 728 | include_miui_camera { 729 | name: "includes_miui_camera", 730 | soong_config_variables: { 731 | include_miui_camera: { 732 | cppflags: ["-DINCLUDES_MIUI_CAMERA"], 733 | }, 734 | } 735 | } 736 | soong_config_module_type { 737 | name: "qcom_libfmjni", 738 | module_type: "cc_defaults", 739 | config_namespace: "superiorQcomVars", 740 | bool_variables: ["no_fm_firmware"], 741 | properties: ["cflags"], 742 | } 743 | qcom_libfmjni { 744 | name: "qcom_libfmjni_defaults", 745 | soong_config_variables: { 746 | no_fm_firmware: { 747 | cflags: ["-DQCOM_NO_FM_FIRMWARE"], 748 | }, 749 | }, 750 | } 751 | -------------------------------------------------------------------------------- /build/soong/bin/hmm: -------------------------------------------------------------------------------- 1 | function __print_superior_functions_help() { 2 | cat <): the path to the tool or tool_file with name