Commit | Line | Data |
---|---|---|
f3fa1980 S |
1 | # |
2 | # Copyright (C) 2017 The Android Open-Source 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 | ||
17 | # can this be done in bash? credits go to bgcngm | |
18 | define make_header | |
19 | perl -e 'print pack("a4 L a32 a472", "\x88\x16\x88\x58", $$ARGV[0], $$ARGV[1], "\xFF"x472)' $(1) $(2) > $(3) | |
20 | endef | |
21 | ||
22 | # this is overriding targets from build/core/Makefile | |
23 | $(INSTALLED_KERNEL_TARGET).mtk.header: $(INSTALLED_KERNEL_TARGET) | |
24 | size=$$($(call get-file-size,$(INSTALLED_KERNEL_TARGET))); \ | |
25 | $(call make_header, $$((size)), "KERNEL", $@) | |
26 | $(INSTALLED_KERNEL_TARGET).mtk: $(INSTALLED_KERNEL_TARGET).mtk.header | |
27 | $(call pretty,"Adding MTK header to kernel.") | |
28 | cat $(INSTALLED_KERNEL_TARGET).mtk.header $(INSTALLED_KERNEL_TARGET) \ | |
29 | > $@ | |
30 | ||
31 | $(INSTALLED_RAMDISK_TARGET).mtk.header: $(INSTALLED_RAMDISK_TARGET) | |
32 | size=$$($(call get-file-size,$(INSTALLED_RAMDISK_TARGET))); \ | |
33 | $(call make_header, $$((size)), "ROOTFS", $@) | |
34 | $(INSTALLED_RAMDISK_TARGET).mtk: $(INSTALLED_RAMDISK_TARGET).mtk.header | |
35 | $(call pretty,"Adding MTK header to ramdisk.") | |
36 | cat $(INSTALLED_RAMDISK_TARGET).mtk.header $(INSTALLED_RAMDISK_TARGET) \ | |
37 | > $@ | |
38 | ||
39 | $(PRODUCT_OUT)/recovery_kernel.mtk.header: $(recovery_kernel) | |
40 | size=$$($(call get-file-size,$(recovery_kernel))); \ | |
41 | $(call make_header, $$((size)), "KERNEL", $@) | |
42 | $(PRODUCT_OUT)/recovery_kernel.mtk: $(PRODUCT_OUT)/recovery_kernel.mtk.header | |
43 | $(call pretty,"Adding MTK header to recovery kernel.") | |
44 | cat $(PRODUCT_OUT)/recovery_kernel.mtk.header $(recovery_kernel) > $@ | |
45 | ||
46 | $(recovery_ramdisk).mtk.header: $(recovery_ramdisk) | |
47 | size=$$($(call get-file-size,$(recovery_ramdisk))); \ | |
48 | $(call make_header, $$((size)), "RECOVERY", $@) | |
49 | $(recovery_ramdisk).mtk: $(MKBOOTIMG) $(recovery_ramdisk).mtk.header | |
50 | $(call pretty,"Adding MTK header to recovery ramdisk.") | |
51 | cat $(recovery_ramdisk).mtk.header $(recovery_ramdisk) > $@ | |
52 | ||
53 | INTERNAL_MTK_BOOTIMAGE_ARGS := \ | |
54 | --kernel $(INSTALLED_KERNEL_TARGET).mtk \ | |
55 | --ramdisk $(INSTALLED_RAMDISK_TARGET).mtk | |
56 | ||
57 | $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG)\ | |
58 | $(INSTALLED_RAMDISK_TARGET).mtk $(INSTALLED_KERNEL_TARGET).mtk | |
59 | $(call pretty,"Target boot image: $@") | |
60 | $(MKBOOTIMG) $(INTERNAL_MTK_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) \ | |
61 | --output $@ | |
62 | $(hide) $(call assert-max-image-size,$@, \ | |
63 | $(BOARD_BOOTIMAGE_PARTITION_SIZE),raw) | |
64 | @echo -e ${CL_CYN}"Made boot image: $@"${CL_RST} | |
65 | ||
66 | INTERNAL_MTK_RECOVERYIMAGE_ARGS := \ | |
67 | --kernel $(INSTALLED_KERNEL_TARGET).mtk \ | |
68 | --ramdisk $(recovery_ramdisk).mtk | |
69 | ||
70 | $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) \ | |
71 | $(recovery_ramdisk).mtk $(INSTALLED_KERNEL_TARGET).mtk | |
72 | @echo -e ${CL_CYN}"----- Making recovery image ------"${CL_RST} | |
73 | $(MKBOOTIMG) $(INTERNAL_MTK_RECOVERYIMAGE_ARGS) \ | |
74 | $(BOARD_MKBOOTIMG_ARGS) --output $@ | |
75 | $(hide) $(call assert-max-image-size,$@, \ | |
76 | $(BOARD_RECOVERYIMAGE_PARTITION_SIZE),raw) | |
77 | @echo -e ${CL_CYN}"Made recovery image: $@"${CL_RST} |