blob: 7c1595611f5f5d911ee3bf640001275e62293e3f
1 | IMGPACK := $(BUILD_OUT_EXECUTABLES)/logo_img_packer$(BUILD_EXECUTABLE_SUFFIX) |
2 | PRODUCT_UPGRADE_OUT := $(PRODUCT_OUT)/upgrade |
3 | AML_EMMC_BIN_GENERATOR := vendor/amlogic/tools/aml_upgrade/amlogic_emmc_bin_maker.sh |
4 | PRODUCT_COMMON_DIR := device/amlogic/common/products/$(PRODUCT_TYPE) |
5 | |
6 | ifeq ($(TARGET_NO_RECOVERY),true) |
7 | BUILT_IMAGES := boot.img u-boot.bin dtb.img |
8 | else |
9 | BUILT_IMAGES := boot.img recovery.img u-boot.bin dtb.img |
10 | endif |
11 | ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) |
12 | BUILT_IMAGES := $(addsuffix .encrypt, $(BUILT_IMAGES)) |
13 | endif#ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) |
14 | |
15 | BUILT_IMAGES += system.img userdata.img |
16 | |
17 | ifneq ($(AB_OTA_UPDATER),true) |
18 | BUILT_IMAGES += cache.img |
19 | endif |
20 | |
21 | ifneq ($(BOARD_OLD_PARTITION),true) |
22 | BUILT_IMAGES += vendor.img odm.img |
23 | endif |
24 | |
25 | ifdef KERNEL_DEVICETREE |
26 | DTBTOOL := vendor/amlogic/tools/dtbTool |
27 | |
28 | ifdef KERNEL_DEVICETREE_CUSTOMER_DIR |
29 | KERNEL_DEVICETREE_DIR := $(KERNEL_DEVICETREE_CUSTOMER_DIR) |
30 | else |
31 | KERNEL_DEVICETREE_DIR := arch/$(KERNEL_ARCH)/boot/dts/amlogic/ |
32 | endif |
33 | |
34 | KERNEL_DEVICETREE_SRC := $(addprefix $(KERNEL_ROOTDIR)/$(KERNEL_DEVICETREE_DIR), $(KERNEL_DEVICETREE) ) |
35 | KERNEL_DEVICETREE_SRC := $(wildcard $(addsuffix .dtd, $(KERNEL_DEVICETREE_SRC)) $(addsuffix .dts, $(KERNEL_DEVICETREE_SRC))) |
36 | |
37 | KERNEL_DEVICETREE_BIN := $(addprefix $(KERNEL_OUT)/$(KERNEL_DEVICETREE_DIR), $(KERNEL_DEVICETREE)) |
38 | KERNEL_DEVICETREE_BIN := $(addsuffix .dtb, $(KERNEL_DEVICETREE_BIN)) |
39 | |
40 | INSTALLED_BOARDDTB_TARGET := $(PRODUCT_OUT)/dtb.img |
41 | ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) |
42 | INSTALLED_BOARDDTB_TARGET := $(INSTALLED_BOARDDTB_TARGET).encrypt |
43 | endif# ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) |
44 | |
45 | $(INSTALLED_BOARDDTB_TARGET) : $(KERNEL_DEVICETREE_SRC) $(KERNEL_OUT) $(KERNEL_CONFIG) |
46 | ifeq ($(AB_OTA_UPDATER),true) |
47 | $(foreach aDts, $(KERNEL_DEVICETREE), \ |
48 | sed -i 's/^#include \"partition_.*/#include \"$(TARGET_PARTITION_DTSI)\"/' $(KERNEL_ROOTDIR)/$(KERNEL_DEVICETREE_DIR)/$(strip $(aDts)).dts; \ |
49 | if [ -f "$(KERNEL_ROOTDIR)/$(KERNEL_DEVICETREE_DIR)/$(aDts).dtd" ]; then \ |
50 | $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) $(strip $(aDts)).dtd; \ |
51 | fi;\ |
52 | $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) $(strip $(aDts)).dtb; \ |
53 | ) |
54 | else |
55 | $(foreach aDts, $(KERNEL_DEVICETREE), \ |
56 | if [ -f "$(KERNEL_ROOTDIR)/$(KERNEL_DEVICETREE_DIR)/$(aDts).dtd" ]; then \ |
57 | $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) $(strip $(aDts)).dtd; \ |
58 | fi;\ |
59 | $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) $(strip $(aDts)).dtb; \ |
60 | ) |
61 | endif |
62 | ifneq ($(strip $(word 2, $(KERNEL_DEVICETREE)) ),) |
63 | $(hide) $(DTBTOOL) -o $@ -p $(KERNEL_OUT)/scripts/dtc/ $(KERNEL_OUT)/$(KERNEL_DEVICETREE_DIR) |
64 | else# elif dts num == 1 |
65 | cp -f $(KERNEL_DEVICETREE_BIN) $@ |
66 | endif |
67 | $(hide) $(call aml-secureboot-sign-bin, $@) |
68 | @echo "Instaled $@" |
69 | |
70 | .PHONY: dtbimage |
71 | dtbimage: $(INSTALLED_BOARDDTB_TARGET) |
72 | |
73 | else #KERNEL_DEVICETREE undefined in Kernel.mk |
74 | INSTALLED_BOARDDTB_TARGET := |
75 | endif # ifdef KERNEL_DEVICETREE |
76 | |
77 | |
78 | UPGRADE_FILES := \ |
79 | aml_sdc_burn.ini \ |
80 | ddr_init.bin \ |
81 | u-boot.bin.sd.bin u-boot.bin.usb.bl2 u-boot.bin.usb.tpl \ |
82 | u-boot-comp.bin |
83 | |
84 | ifneq ($(TARGET_USE_SECURITY_MODE),true) |
85 | UPGRADE_FILES += \ |
86 | platform.conf |
87 | else # secureboot mode |
88 | UPGRADE_FILES += \ |
89 | u-boot-usb.bin.aml \ |
90 | platform_enc.conf |
91 | endif |
92 | |
93 | UPGRADE_FILES := $(addprefix $(TARGET_DEVICE_DIR)/upgrade/,$(UPGRADE_FILES)) |
94 | UPGRADE_FILES := $(wildcard $(UPGRADE_FILES)) #extract only existing files for burnning |
95 | |
96 | PACKAGE_CONFIG_FILE := aml_upgrade_package |
97 | ifeq ($(AB_OTA_UPDATER),true) |
98 | PACKAGE_CONFIG_FILE := $(PACKAGE_CONFIG_FILE)_AB |
99 | endif # ifeq ($(AB_OTA_UPDATER),true) |
100 | ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) |
101 | PACKAGE_CONFIG_FILE := $(PACKAGE_CONFIG_FILE)_enc |
102 | endif # ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) |
103 | PACKAGE_CONFIG_FILE := $(TARGET_DEVICE_DIR)/upgrade/$(PACKAGE_CONFIG_FILE).conf |
104 | |
105 | ifeq ($(wildcard $(PACKAGE_CONFIG_FILE)),) |
106 | ifeq ($(BOARD_OLD_PARTITION),true) |
107 | PACKAGE_CONFIG_FILE := $(PRODUCT_COMMON_DIR)/upgrade_3.14/$(notdir $(PACKAGE_CONFIG_FILE)) |
108 | else |
109 | PACKAGE_CONFIG_FILE := $(PRODUCT_COMMON_DIR)/upgrade_4.9/$(notdir $(PACKAGE_CONFIG_FILE)) |
110 | endif |
111 | endif ## ifeq ($(wildcard $(TARGET_DEVICE_DIR)/upgrade/$(PACKAGE_CONFIG_FILE))) |
112 | UPGRADE_FILES += $(PACKAGE_CONFIG_FILE) |
113 | |
114 | ifneq ($(TARGET_AMLOGIC_RES_PACKAGE),) |
115 | INSTALLED_AML_LOGO := $(PRODUCT_UPGRADE_OUT)/logo.img |
116 | $(INSTALLED_AML_LOGO): $(IMGPACK) $(wildcard $(TARGET_AMLOGIC_RES_PACKAGE)/*) |
117 | @echo "generate $(INSTALLED_AML_LOGO)" |
118 | $(hide) mkdir -p $(PRODUCT_UPGRADE_OUT)/logo |
119 | $(hide) rm -rf $(PRODUCT_UPGRADE_OUT)/logo/* |
120 | @cp -rf $(TARGET_AMLOGIC_RES_PACKAGE)/* $(PRODUCT_UPGRADE_OUT)/logo |
121 | $(hide) $(IMGPACK) -r $(PRODUCT_UPGRADE_OUT)/logo $@ |
122 | @echo "Installed $@" |
123 | else |
124 | INSTALLED_AML_LOGO := |
125 | endif |
126 | |
127 | .PHONY: logoimg |
128 | logoimg: $(INSTALLED_AML_LOGO) |
129 | |
130 | ifneq ($(BOARD_AUTO_COLLECT_MANIFEST),false) |
131 | BUILD_TIME := $(shell date +%Y-%m-%d--%H-%M) |
132 | INSTALLED_MANIFEST_XML := $(PRODUCT_OUT)/manifests/manifest-$(BUILD_TIME).xml |
133 | $(INSTALLED_MANIFEST_XML): |
134 | $(hide) mkdir -p $(PRODUCT_OUT)/manifests |
135 | $(hide) mkdir -p $(PRODUCT_OUT)/upgrade |
136 | repo manifest -r -o $(INSTALLED_MANIFEST_XML) |
137 | $(hide) cp $(INSTALLED_MANIFEST_XML) $(PRODUCT_OUT)/upgrade/manifest.xml |
138 | |
139 | .PHONY:build_manifest |
140 | build_manifest:$(INSTALLED_MANIFEST_XML) |
141 | else |
142 | INSTALLED_MANIFEST_XML := |
143 | endif |
144 | |
145 | INSTALLED_AML_USER_IMAGES := |
146 | ifeq ($(TARGET_BUILD_USER_PARTS),true) |
147 | define aml-mk-user-img-template |
148 | INSTALLED_AML_USER_IMAGES += $(2) |
149 | $(eval tempUserSrcDir := $$($(strip $(1))_PART_DIR)) |
150 | $(2): $(call intermediates-dir-for,ETC,file_contexts.bin)/file_contexts.bin $(MAKE_EXT4FS) $(shell find $(tempUserSrcDir) -type f) |
151 | @echo $(MAKE_EXT4FS) -s -S $$< -l $$($(strip $(1))_PART_SIZE) -a $(1) $$@ $(tempUserSrcDir) && \ |
152 | $(MAKE_EXT4FS) -s -S $$< -l $$($(strip $(1))_PART_SIZE) -a $(1) $$@ $(tempUserSrcDir) |
153 | endef |
154 | .PHONY:contexts_add |
155 | contexts_add:$(TARGET_ROOT_OUT)/file_contexts |
156 | $(foreach userPartName, $(BOARD_USER_PARTS_NAME), \ |
157 | $(shell sed -i "/\/$(strip $(userPartName))/d" $< && \ |
158 | echo -e "/$(strip $(userPartName))(/.*)? u:object_r:system_file:s0" >> $<)) |
159 | $(foreach userPartName, $(BOARD_USER_PARTS_NAME), \ |
160 | $(eval $(call aml-mk-user-img-template, $(userPartName),$(PRODUCT_OUT)/$(userPartName).img))) |
161 | |
162 | define aml-user-img-update-pkg |
163 | ln -sf $(ANDROID_BUILD_TOP)/$(PRODUCT_OUT)/$(1).img $(PRODUCT_UPGRADE_OUT)/$(1).img && \ |
164 | sed -i "/file=\"$(1)\.img\"/d" $(2) && \ |
165 | echo -e "file=\"$(1).img\"\t\tmain_type=\"PARTITION\"\t\tsub_type=\"$(1)\"" >> $(2) ; |
166 | endef |
167 | |
168 | .PHONY: aml_usrimg |
169 | aml_usrimg :$(INSTALLED_AML_USER_IMAGES) |
170 | endif # ifeq ($(TARGET_BUILD_USER_PARTS),true) |
171 | |
172 | INSTALLED_AMLOGIC_BOOTLOADER_TARGET := $(PRODUCT_OUT)/u-boot.bin |
173 | ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) |
174 | INSTALLED_AMLOGIC_BOOTLOADER_TARGET := $(INSTALLED_AMLOGIC_BOOTLOADER_TARGET).encrypt |
175 | endif# ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) |
176 | |
177 | $(INSTALLED_AMLOGIC_BOOTLOADER_TARGET) : $(TARGET_DEVICE_DIR)/u-boot.bin |
178 | $(hide) cp $< $(PRODUCT_OUT)/u-boot.bin |
179 | $(hide) $(call aml-secureboot-sign-bootloader, $@) |
180 | @echo "make $@: bootloader installed end" |
181 | |
182 | ifeq ($(TARGET_SUPPORT_USB_BURNING_V2),true) |
183 | INSTALLED_AML_UPGRADE_PACKAGE_TARGET := $(PRODUCT_OUT)/aml_upgrade_package.img |
184 | |
185 | PACKAGE_CONFIG_FILE := $(PRODUCT_UPGRADE_OUT)/$(notdir $(PACKAGE_CONFIG_FILE)) |
186 | |
187 | ifeq ($(TARGET_USE_SECURITY_DM_VERITY_MODE_WITH_TOOL),true) |
188 | SYSTEMIMG_INTERMEDIATES := $(PRODUCT_OUT)/obj/PACKAGING/systemimage_intermediates/system.img. |
189 | SYSTEMIMG_INTERMEDIATES := $(SYSTEMIMG_INTERMEDIATES)verity_table.bin $(SYSTEMIMG_INTERMEDIATES)verity.img |
190 | define security_dm_verity_conf |
191 | @echo "copy verity.img and verity_table.bin" |
192 | @sed -i "/verity_table.bin/d" $(PACKAGE_CONFIG_FILE) |
193 | @sed -i "/verity.img/d" $(PACKAGE_CONFIG_FILE) |
194 | $(hide) \ |
195 | sed -i "/aml_sdc_burn\.ini/ s/.*/&\nfile=\"system.img.verity.img\"\t\tmain_type=\"img\"\t\tsub_type=\"verity\"/" $(PACKAGE_CONFIG_FILE); \ |
196 | sed -i "/aml_sdc_burn\.ini/ s/.*/&\nfile=\"system.img.verity_table.bin\"\t\tmain_type=\"bin\"\t\tsub_type=\"verity_table\"/" $(PACKAGE_CONFIG_FILE); |
197 | cp $(SYSTEMIMG_INTERMEDIATES) $(PRODUCT_UPGRADE_OUT)/ |
198 | endef #define security_dm_verity_conf |
199 | endif # ifeq ($(TARGET_USE_SECURITY_DM_VERITY_MODE_WITH_TOOL),true) |
200 | |
201 | ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) |
202 | define aml-secureboot-sign-bootloader |
203 | @echo -----aml-secureboot-sign-bootloader ------ |
204 | $(hide) $(PRODUCT_AML_SECUREBOOT_SIGNBOOTLOADER) --input $(basename $(1)) --output $(1) |
205 | @echo ----- Made aml secure-boot singed bootloader: $(1) -------- |
206 | endef #define aml-secureboot-sign-bootloader |
207 | define aml-secureboot-sign-kernel |
208 | @echo -----aml-secureboot-sign-kernel ------ |
209 | $(hide) mv -f $(1) $(basename $(1)) |
210 | $(hide) $(PRODUCT_AML_SECUREBOOT_SIGNIMAGE) --input $(basename $(1)) --output $(1) |
211 | @echo ----- Made aml secure-boot singed bootloader: $(1) -------- |
212 | endef #define aml-secureboot-sign-kernel |
213 | define aml-secureboot-sign-bin |
214 | @echo -----aml-secureboot-sign-bin------ |
215 | $(hide) mv -f $(1) $(basename $(1)) |
216 | $(hide) $(PRODUCT_AML_SECUREBOOT_SIGBIN) --input $(basename $(1)) --output $(1) |
217 | @echo ----- Made aml secure-boot singed bin: $(1) -------- |
218 | endef #define aml-secureboot-sign-bin |
219 | endif# ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) |
220 | |
221 | .PHONY:aml_upgrade |
222 | aml_upgrade:$(INSTALLED_AML_UPGRADE_PACKAGE_TARGET) |
223 | $(INSTALLED_AML_UPGRADE_PACKAGE_TARGET): \ |
224 | $(addprefix $(PRODUCT_OUT)/,$(BUILT_IMAGES)) \ |
225 | $(UPGRADE_FILES) \ |
226 | $(INSTALLED_AML_USER_IMAGES) \ |
227 | $(INSTALLED_AML_LOGO) \ |
228 | $(INSTALLED_MANIFEST_XML) \ |
229 | $(TARGET_USB_BURNING_V2_DEPEND_MODULES) |
230 | mkdir -p $(PRODUCT_UPGRADE_OUT) |
231 | $(hide) $(foreach file,$(UPGRADE_FILES), \ |
232 | echo cp $(file) $(PRODUCT_UPGRADE_OUT)/$(notdir $(file)); \ |
233 | cp -f $(file) $(PRODUCT_UPGRADE_OUT)/$(notdir $(file)); \ |
234 | ) |
235 | $(hide) $(foreach file,$(BUILT_IMAGES), \ |
236 | echo ln -sf $(PRODUCT_OUT)/$(file) $(PRODUCT_UPGRADE_OUT)/$(file); \ |
237 | ln -sf $(ANDROID_BUILD_TOP)/$(PRODUCT_OUT)/$(file) $(PRODUCT_UPGRADE_OUT)/$(file); \ |
238 | ) |
239 | ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) |
240 | $(hide) rm -f $(PRODUCT_UPGRADE_OUT)/u-boot.bin.encrypt.* |
241 | $(hide) $(ACP) $(PRODUCT_OUT)/u-boot.bin.encrypt.* $(PRODUCT_UPGRADE_OUT)/ |
242 | ln -sf $(ANDROID_BUILD_TOP)/$(PRODUCT_OUT)/dtb.img $(PRODUCT_UPGRADE_OUT)/dtb.img |
243 | ln -sf $(ANDROID_BUILD_TOP)/$(PRODUCT_OUT)/u-boot.bin.encrypt.efuse $(PRODUCT_UPGRADE_OUT)/SECURE_BOOT_SET |
244 | endif# ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) |
245 | $(security_dm_verity_conf) |
246 | $(update-aml_upgrade-conf) |
247 | $(hide) $(foreach userPartName, $(BOARD_USER_PARTS_NAME), \ |
248 | $(call aml-user-img-update-pkg,$(userPartName),$(PACKAGE_CONFIG_FILE))) |
249 | @echo "Package: $@" |
250 | @echo ./vendor/amlogic/tools/aml_upgrade/aml_image_v2_packer -r \ |
251 | $(PACKAGE_CONFIG_FILE) $(PRODUCT_UPGRADE_OUT)/ $@ |
252 | ./vendor/amlogic/tools/aml_upgrade/aml_image_v2_packer -r \ |
253 | $(PACKAGE_CONFIG_FILE) $(PRODUCT_UPGRADE_OUT)/ $@ |
254 | @echo " $@ installed" |
255 | else |
256 | #none |
257 | INSTALLED_AML_UPGRADE_PACKAGE_TARGET := |
258 | endif |
259 | |
260 | droidcore: $(INSTALLED_AML_UPGRADE_PACKAGE_TARGET) $(INSTALLED_MANIFEST_XML) |
261 | otapackage: $(INSTALLED_AML_UPGRADE_PACKAGE_TARGET) $(INSTALLED_MANIFEST_XML) |
262 | |
263 |