Adding TARGET_OTA_ASSERT_DEVICE flag for custom device asserts
Should be handled via device tree's BoardConfig Sample will be TARGET_OTA_ASSERT_DEVICE := le_zl1,zl1,lepro3,lex720,lex727,LEX720,LEX727 in BoardConfig Only applicable for AB or VAB devices Change-Id: I1fbe6155d3f79eee089a31dbe62ee9d04c33d65c
This commit is contained in:
@@ -401,6 +401,9 @@ endif
|
||||
ifeq ($(TW_EXCLUDE_NANO), true)
|
||||
LOCAL_CFLAGS += -DTW_EXCLUDE_NANO
|
||||
endif
|
||||
ifneq ($(TARGET_OTA_ASSERT_DEVICE),)
|
||||
LOCAL_CFLAGS += -DTARGET_OTA_ASSERT_DEVICE='"$(TARGET_OTA_ASSERT_DEVICE)"'
|
||||
endif
|
||||
|
||||
LOCAL_C_INCLUDES += system/vold \
|
||||
|
||||
|
||||
@@ -377,6 +377,10 @@ int main(int argc, char **argv) {
|
||||
property_set("ro.twrp.boot", "1");
|
||||
property_set("ro.twrp.version", TW_VERSION_STR);
|
||||
|
||||
#ifdef TARGET_OTA_ASSERT_DEVICE
|
||||
property_set("ro.twrp.target.devices", TARGET_OTA_ASSERT_DEVICE);
|
||||
#endif
|
||||
|
||||
time_t StartupTime = time(NULL);
|
||||
printf("Starting TWRP %s-%s on %s (pid %d)\n", TW_VERSION_STR, TW_GIT_REVISION, ctime(&StartupTime), getpid());
|
||||
|
||||
|
||||
@@ -132,6 +132,15 @@ static int check_newer_ab_build(ZipArchiveHandle zip)
|
||||
|
||||
bool deviceExists = false;
|
||||
|
||||
// twrp.target.devices
|
||||
bool has_target_devices = false;
|
||||
char tw_devices[PROPERTY_VALUE_MAX * 2];
|
||||
property_get("ro.twrp.target.devices", tw_devices, "");
|
||||
std::vector<std::string> TWRP_devices = android::base::Split(tw_devices, ",");
|
||||
if (strlen(tw_devices) > 1) {
|
||||
has_target_devices = true;
|
||||
}
|
||||
|
||||
for(const std::string& deviceAssert : assertResults)
|
||||
{
|
||||
std::string assertName = android::base::Trim(deviceAssert);
|
||||
@@ -139,6 +148,17 @@ static int check_newer_ab_build(ZipArchiveHandle zip)
|
||||
deviceExists = true;
|
||||
break;
|
||||
}
|
||||
// twrp.target.devices
|
||||
else if (has_target_devices) {
|
||||
for(const std::string& twrpDevice_x : TWRP_devices) {
|
||||
std::string twrpName = android::base::Trim(twrpDevice_x);
|
||||
if (!twrpName.empty() && !assertName.empty() && assertName == twrpName) {
|
||||
deviceExists = true;
|
||||
printf("Package is for product %s. The selected TWRP target device is %s\n", pkg_device.c_str(), twrpName.c_str());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!deviceExists) {
|
||||
|
||||
Reference in New Issue
Block a user