Skip to content

Commit 4726a62

Browse files
ime: build more files from source
- Rearrange blobs so manual patching is no longer necessary - Add relink function to prepdecrypt script for blobs - Update dependencies - Update dummy packages - Update prebuilt kernel to Pie - Detect variant from boot partition when fastboot booting recovery Change-Id: I7cc3bcb4b76d6d77bc09b9c386c0856380ccd238
1 parent 35f5439 commit 4726a62

38 files changed

+467
-619
lines changed

AndroidProducts.mk

100644100755
File mode changed.

BoardConfig.mk

100644100755
Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,14 @@ TARGET_NO_BOOTLOADER := true
4747
TARGET_USES_UEFI := true
4848

4949
# Kernel
50-
BOARD_KERNEL_CMDLINE := androidboot.hardware=qcom androidboot.console=ttyMSM0 video=vfb:640x400,bpp=32,memsize=3072000 msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 service_locator.enable=1 swiotlb=2048 androidboot.configfs=true androidboot.usbcontroller=a600000.dwc3
50+
BOARD_KERNEL_CMDLINE := androidboot.console=ttyMSM0 video=vfb:640x400,bpp=32,memsize=3072000 msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 service_locator.enable=1 swiotlb=2048 androidboot.configfs=true androidboot.usbcontroller=a600000.dwc3
51+
BOARD_KERNEL_CMDLINE += androidboot.hardware=qcom
5152
BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
52-
BOARD_KERNEL_CMDLINE += androidboot.fastboot=1
5353
BOARD_KERNEL_BASE := 0x00000000
5454
BOARD_KERNEL_PAGESIZE := 4096
5555
TARGET_PREBUILT_KERNEL := device/$(BOARD_VENDOR)/$(TARGET_DEVICE)/prebuilt/Image.lz4-dtb
5656

5757
# Platform
58-
TARGET_BOARD_PLATFORM := sdm845
5958
TARGET_BOARD_PLATFORM_GPU := qcom-adreno630
6059

6160
# Partitions
@@ -76,7 +75,6 @@ TARGET_COPY_OUT_VENDOR := vendor
7675
# Recovery
7776
BOARD_HAS_LARGE_FILESYSTEM := true
7877
BOARD_HAS_NO_SELECT_BUTTON := true
79-
AB_OTA_UPDATER := true
8078
BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
8179

8280
# TWRP specific build flags
@@ -86,24 +84,27 @@ TW_EXCLUDE_DEFAULT_USB_INIT := true
8684
TW_EXTRA_LANGUAGES := true
8785
TW_INCLUDE_NTFS_3G := true
8886
TW_INCLUDE_REPACKTOOLS := true
87+
TW_INCLUDE_RESETPROP := true
8988
TW_INPUT_BLACKLIST := "hbtp_vm"
9089
TW_HAS_DOWNLOAD_MODE := true
9190
TW_THEME := portrait_hdpi
9291
TW_NO_EXFAT_FUSE := true
9392
TARGET_RECOVERY_DEVICE_MODULES := chargeled tzdata
94-
TARGET_RECOVERY_DEVICE_MODULES += [email protected] hwservicemanager servicemanager libxml2 keystore libicuuc [email protected]
95-
TW_RECOVERY_ADDITIONAL_RELINK_FILES := $(OUT)/system/lib64/[email protected] $(OUT)/system/usr/share/zoneinfo/tzdata $(OUT)/system/bin/hwservicemanager $(OUT)/system/bin/servicemanager $(OUT)/system/lib64/libxml2.so $(OUT)/system/lib64/hw/keystore.default.so $(OUT)/system/lib64/libicuuc.so $(OUT)/system/lib64/[email protected]
93+
TW_RECOVERY_ADDITIONAL_RELINK_FILES += $(TARGET_OUT)/usr/share/zoneinfo/tzdata
94+
TARGET_RECOVERY_DEVICE_MODULES += libxml2 libicuuc [email protected] bootctrl.$(TARGET_BOARD_PLATFORM)
95+
TW_RECOVERY_ADDITIONAL_RELINK_FILES += $(TARGET_OUT_SHARED_LIBRARIES)/libxml2.so $(TARGET_OUT_SHARED_LIBRARIES)/libicuuc.so $(TARGET_OUT)/lib64/[email protected]
9696
TARGET_RECOVERY_PIXEL_FORMAT := BGRA_8888
9797
TARGET_RECOVERY_QCOM_RTC_FIX := true
9898
TW_NO_SCREEN_BLANK := true
99-
#TW_USE_TOOLBOX := true
99+
TW_OVERRIDE_SYSTEM_PROPS := "ro.build.fingerprint"
100+
TW_USE_TOOLBOX := true
100101

101102
# Custom Platform Version and Security Patch
102103
# TWRP Defaults
103-
#PLATFORM_VERSION := 16.1.0
104-
#PLATFORM_SECURITY_PATCH := 2025-12-05
104+
PLATFORM_VERSION := 16.1.0
105+
PLATFORM_SECURITY_PATCH := 2025-12-05
105106
# Must match build.prop of current system for vold decrypt to work properly!
106-
PLATFORM_VERSION := 8.0.0
107+
#PLATFORM_VERSION := 8.0.0
107108
# 1.15 Stock
108109
#PLATFORM_SECURITY_PATCH := 2018-03-01
109110
# 1.21/1.25 OTA
@@ -115,22 +116,27 @@ PLATFORM_VERSION := 8.0.0
115116
# 1.57 OTA
116117
#PLATFORM_SECURITY_PATCH := 2019-01-01
117118
# 1.62 OTA
118-
# PLATFORM_SECURITY_PATCH := 2019-02-01
119+
#PLATFORM_SECURITY_PATCH := 2019-02-01
119120
# 1.68 OTA
120-
PLATFORM_SECURITY_PATCH := 2019-04-01
121+
#PLATFORM_SECURITY_PATCH := 2019-04-01
121122

122123
# Encryption
123124
TARGET_HW_DISK_ENCRYPTION := true
124125
TW_INCLUDE_CRYPTO := true
125-
TW_CRYPTO_USE_SYSTEM_VOLD := hwservicemanager servicemanager qseecomd keymaster-3-0
126+
TW_CRYPTO_USE_SYSTEM_VOLD := hwservicemanager servicemanager qseecomd keymaster-3-0-qti
126127
TW_CRYPTO_SYSTEM_VOLD_MOUNT := vendor
127128

128129
# TWRP Debug Flags
129130
#TWRP_EVENT_LOGGING := true
130131
#TARGET_USES_LOGD := true
131132
#TWRP_INCLUDE_LOGCAT := true
132-
#TARGET_RECOVERY_DEVICE_MODULES += debuggerd # strace
133-
#TW_RECOVERY_ADDITIONAL_RELINK_FILES += $(OUT)/system/bin/debuggerd # $(OUT)/system/xbin/strace
133+
#TARGET_RECOVERY_DEVICE_MODULES += debuggerd
134+
#TW_RECOVERY_ADDITIONAL_RELINK_FILES += $(TARGET_OUT_EXECUTABLES)/debuggerd
135+
#TARGET_RECOVERY_DEVICE_MODULES += strace
136+
#TW_RECOVERY_ADDITIONAL_RELINK_FILES += $(TARGET_OUT_OPTIONAL_EXECUTABLES)/strace
134137
#TARGET_RECOVERY_DEVICE_MODULES += twrpdec
135138
#TW_RECOVERY_ADDITIONAL_RELINK_FILES += $(TARGET_RECOVERY_ROOT_OUT)/sbin/twrpdec
136139
#TW_CRYPTO_SYSTEM_VOLD_DEBUG := true
140+
141+
# Vendor Init
142+
TARGET_INIT_VENDOR_LIB := libinit_$(TARGET_DEVICE)

init/Android.mk

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#
2+
# Copyright (C) 2016 The CyanogenMod 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+
LOCAL_PATH := $(call my-dir)
17+
18+
include $(CLEAR_VARS)
19+
20+
LOCAL_MODULE_TAGS := optional
21+
LOCAL_C_INCLUDES := system/core/init
22+
LOCAL_CFLAGS := -Wall -DANDROID_TARGET=\"$(TARGET_BOARD_PLATFORM)\"
23+
24+
LOCAL_SRC_FILES := init_$(TARGET_DEVICE).cpp
25+
26+
LOCAL_MODULE := libinit_$(TARGET_DEVICE)
27+
28+
LOCAL_STATIC_LIBRARIES := \
29+
libbase
30+
31+
include $(BUILD_STATIC_LIBRARY)

init/init_ime.cpp

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
/*
2+
Copyright (c) 2013, The Linux Foundation. All rights reserved.
3+
Redistribution and use in source and binary forms, with or without
4+
modification, are permitted provided that the following conditions are
5+
met:
6+
* Redistributions of source code must retain the above copyright
7+
notice, this list of conditions and the following disclaimer.
8+
* Redistributions in binary form must reproduce the above
9+
copyright notice, this list of conditions and the following
10+
disclaimer in the documentation and/or other materials provided
11+
with the distribution.
12+
* Neither the name of The Linux Foundation nor the names of its
13+
contributors may be used to endorse or promote products derived
14+
from this software without specific prior written permission.
15+
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
16+
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
17+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
18+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
19+
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
22+
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
23+
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
24+
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
25+
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26+
*/
27+
28+
#include <stdlib.h>
29+
#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
30+
#include <sys/_system_properties.h>
31+
32+
#include <android-base/properties.h>
33+
#include <android-base/logging.h>
34+
35+
#include "property_service.h"
36+
37+
namespace android {
38+
namespace init {
39+
40+
void property_override(char const prop[], char const value[]) {
41+
prop_info *pi;
42+
43+
pi = (prop_info*) __system_property_find(prop);
44+
if (pi)
45+
__system_property_update(pi, value, strlen(value));
46+
else
47+
__system_property_add(prop, strlen(prop), value, strlen(value));
48+
}
49+
50+
void property_override_dual(char const system_prop[], char const vendor_prop[],
51+
char const value[])
52+
{
53+
property_override(system_prop, value);
54+
property_override(vendor_prop, value);
55+
}
56+
57+
void vendor_load_properties() {
58+
std::string platform = android::base::GetProperty("ro.board.platform", "");
59+
std::string bootmid;
60+
std::string device;
61+
std::string hardware;
62+
63+
if (platform != ANDROID_TARGET)
64+
return;
65+
66+
bootmid = android::base::GetProperty("ro.boot.mid", "");
67+
hardware = android::base::GetProperty("ro.hardware", "");
68+
69+
if (bootmid == "2Q5520000") {
70+
/* EMEA/US Unlocked, Single-SIM */
71+
if (hardware == "htc_exo") {
72+
property_override_dual("ro.product.model", "ro.vendor.product.model", "EXODUS 1");
73+
property_override_dual("ro.product.device", "ro.vendor.product.device", "htc_exouhl");
74+
property_override("ro.build.product", "htc_exouhl");
75+
} else {
76+
property_override_dual("ro.product.device", "ro.vendor.product.device", "htc_imeuhl");
77+
property_override("ro.build.product", "htc_imeuhl");
78+
}
79+
} else if (bootmid == "2Q5530000") {
80+
/* CHINA, Dual-SIM */
81+
if (hardware == "htc_exo") {
82+
property_override_dual("ro.product.model", "ro.vendor.product.model", "EXODUS 1");
83+
property_override_dual("ro.product.device", "ro.vendor.product.device", "htc_exodtwl");
84+
property_override("ro.build.product", "htc_exodtwl");
85+
} else {
86+
property_override_dual("ro.product.model", "ro.vendor.product.model", "HTC 2Q55300");
87+
property_override_dual("ro.product.device", "ro.vendor.product.device", "htc_imedtwl");
88+
property_override("ro.build.product", "htc_imedtwl");
89+
}
90+
} else {
91+
/* EMEA/Asia TW/RUS/SEA India Dual-SIM */
92+
if (hardware == "htc_exo") {
93+
property_override_dual("ro.product.model", "ro.vendor.product.model", "EXODUS 1");
94+
property_override_dual("ro.product.device", "ro.vendor.product.device", "htc_exodugl");
95+
property_override("ro.build.product", "htc_exodugl");
96+
} else {
97+
property_override_dual("ro.product.device", "ro.vendor.product.device", "htc_imedugl");
98+
property_override("ro.build.product", "htc_imedugl");
99+
}
100+
}
101+
102+
device = android::base::GetProperty("ro.product.device", "");
103+
LOG(INFO) << "Found bootmid '" << bootmid.c_str() <<
104+
"'; setting build properties for '" << device.c_str() << "' device";
105+
}
106+
} // namespace init
107+
} // namespace android

omni.dependencies

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@
99
"remote": "github",
1010
"repository": "TeamWin/android_device_qcom_common",
1111
"target_path": "device/qcom/common",
12-
"revision": "android-8.0"
12+
"revision": "android-8.1"
13+
},
14+
{
15+
"remote": "aosp",
16+
"repository": "platform/hardware/qcom/bootctrl",
17+
"target_path": "hardware/qcom/bootctrl",
18+
"revision": "refs/tags/android-8.1.0_r51"
1319
}
1420
]

omni_ime.mk

100644100755
Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,26 @@ $(call inherit-product, build/target/product/embedded.mk)
2222
# Inherit from our custom product configuration
2323
$(call inherit-product, vendor/omni/config/common.mk)
2424

25+
# Platform
26+
TARGET_BOARD_PLATFORM := sdm845
27+
28+
# Use the A/B updater.
29+
AB_OTA_UPDATER := true
30+
31+
# Enable update engine sideloading by including the static version of the
32+
# boot_control HAL and its dependencies.
33+
PRODUCT_STATIC_BOOT_CONTROL_HAL := \
34+
bootctrl.$(TARGET_BOARD_PLATFORM) \
35+
libgptutils \
36+
libz
37+
38+
PRODUCT_PACKAGES += \
39+
update_engine_sideload
40+
2541
## Device identifier. This must come after all inclusions
2642
PRODUCT_DEVICE := ime
2743
PRODUCT_NAME := omni_ime
2844
PRODUCT_BRAND := htc
2945
PRODUCT_MODEL := HTC U12+
30-
PRODUCT_MANUFACTURER := HTC
46+
PRODUCT_MANUFACTURER := HTC
3147

32-
PRODUCT_BUILD_PROP_OVERRIDES += \
33-
PRODUCT_NAME=ime \
34-
BUILD_PRODUCT=htc_ime \
35-
TARGET_DEVICE=htc_ime

patches/Android.mk

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
LOCAL_PATH := $(call my-dir)
2+
3+
# Dummy file to apply post-install patch for screenshot
4+
include $(CLEAR_VARS)
5+
6+
LOCAL_MODULE := $(TARGET_DEVICE)_screenshot
7+
LOCAL_MODULE_TAGS := optional eng
8+
LOCAL_MODULE_CLASS := ETC
9+
LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/postinstall
10+
LOCAL_REQUIRED_MODULES := teamwin
11+
LOCAL_POST_INSTALL_CMD += \
12+
$(hide) sed -i 's:power+voldown:power+home:' $(TARGET_RECOVERY_ROOT_OUT)/twres/portrait.xml; \
13+
sed -i 's:power+voldown:power+home:' $(TARGET_RECOVERY_ROOT_OUT)/twres/ui.xml;
14+
include $(BUILD_PHONY_PACKAGE)
15+
16+
# Dummy file to copy bootctrl to vendor
17+
include $(CLEAR_VARS)
18+
19+
LOCAL_MODULE := copy_bootctrl
20+
LOCAL_MODULE_TAGS := optional eng
21+
LOCAL_MODULE_CLASS := ETC
22+
LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/postinstall
23+
LOCAL_REQUIRED_MODULES := teamwin
24+
LOCAL_POST_INSTALL_CMD += \
25+
$(hide) mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/vendor/lib64/hw; \
26+
cp -rf $(TARGET_OUT_VENDOR)/lib64/hw/bootctrl.$(TARGET_BOARD_PLATFORM).so \
27+
$(TARGET_RECOVERY_ROOT_OUT)/vendor/lib64/hw/bootctrl.$(TARGET_BOARD_PLATFORM).so;
28+
include $(BUILD_PHONY_PACKAGE)

prebuilt/Image.lz4-dtb

720 KB
Binary file not shown.

prebuilt/Image.lz4-dtb_Oreo

16 MB
Binary file not shown.

recovery.fstab

100644100755
Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
# mount point fstype device device2 flags
2-
/system_root ext4 /dev/block/bootdevice/by-name/system flags=display="System";slotselect
3-
/system_image emmc /dev/block/bootdevice/by-name/system flags=slotselect;flashimg=1
4-
/vendor ext4 /dev/block/bootdevice/by-name/vendor flags=slotselect;backup=1
5-
/vendor_image emmc /dev/block/bootdevice/by-name/vendor flags=slotselect;backup=1;flashimg=1
6-
/data ext4 /dev/block/bootdevice/by-name/userdata flags=encryptable=/dev/block/bootdevice/by-name/extra
7-
/boot emmc /dev/block/bootdevice/by-name/boot flags=slotselect
8-
/misc emmc /dev/block/bootdevice/by-name/misc
9-
/devlog ext4 /dev/block/bootdevice/by-name/devlog
10-
/carrier ext4 /dev/block/bootdevice/by-name/carrier
11-
/cota ext4 /dev/block/bootdevice/by-name/cota
12-
/persist ext4 /dev/block/bootdevice/by-name/persist
1+
# mount point fstype device device2 flags
2+
/system_root ext4 /dev/block/bootdevice/by-name/system flags=display="System";slotselect
3+
/system_image emmc /dev/block/bootdevice/by-name/system flags=slotselect;flashimg=1
4+
/vendor ext4 /dev/block/bootdevice/by-name/vendor flags=slotselect;backup=1
5+
/vendor_image emmc /dev/block/bootdevice/by-name/vendor flags=slotselect;backup=1;flashimg=1
6+
/data ext4 /dev/block/bootdevice/by-name/userdata flags=encryptable=/dev/block/bootdevice/by-name/extra
7+
/boot emmc /dev/block/bootdevice/by-name/boot flags=slotselect
8+
/misc emmc /dev/block/bootdevice/by-name/misc
9+
/devlog ext4 /dev/block/bootdevice/by-name/devlog
10+
/carrier ext4 /dev/block/bootdevice/by-name/carrier
11+
/cota ext4 /dev/block/bootdevice/by-name/cota
12+
/persist ext4 /dev/block/bootdevice/by-name/persist
1313

1414
# Removable storage
15-
/external_sd vfat /dev/block/mmcblk0p1 /dev/block/mmcblk0 flags=storage;wipeingui;removable;encryptable=footer
16-
/usb_otg vfat /dev/block/sdg1 /dev/block/sdg flags=storage;wipeingui;removable
15+
/external_sd vfat /dev/block/mmcblk0p1 /dev/block/mmcblk0 flags=storage;wipeingui;removable;encryptable=footer
16+
/usb_otg vfat /dev/block/sdg1 /dev/block/sdg flags=storage;wipeingui;removable

0 commit comments

Comments
 (0)