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