add enable and disable adb after fastboot command in user mode for CTS
Change-Id: Ia6e94ed2c0baabb8e375f03b0b156a2f8082274f
(cherry picked from commit c8551282fd96001e91ad955187b1f81853ededd1)
diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c
index 9a98663..3cbdfb2 100755
--- a/app/aboot/aboot.c
+++ b/app/aboot/aboot.c
@@ -189,6 +189,7 @@
static const char *cust_sn_cmdline = " androidboot.customer_serialno=";
static const char *factory_sn_cmdline = " androidboot.factory_serialno=";
static const char *UsbAdbEnable = " androidboot.adb_enable=1";
+static const char *UsbAdbEnableCTS = " androidboot.adb_enable_cts=0";
#endif
/*[20200605][TracyChui] Implement get Serial Number end*/
static const char *auth_kernel = " androidboot.authorized_kernel=true";
@@ -312,7 +313,7 @@
static device_info device = {DEVICE_MAGIC,0,0,0,0,{0},{0},{0},1,{0},0,{0}};
/*[20200605][TracyChui] Implement get Serial Number start*/
#if defined(ENABLE_PRODINFO_ACCESS)
-static prod_info prod = {PRODINFO_MAGIC, {0}, {0}, 0};
+static prod_info prod = {PRODINFO_MAGIC, {0}, {0}, 0, 0};
#endif
/*[20200605][TracyChui] Implement get Serial Number end*/
@@ -402,6 +403,7 @@
char cust_sn_buf[PRODINFO_MAX_SSN_LEN + 1];
char factory_sn_buf[PRODINFO_MAX_SSN_LEN + 1];
char AdbEnable[MAX_RSP_SIZE];
+char AdbEnableCTS[MAX_RSP_SIZE];
#endif
#if defined(ENABLE_PRODINFO_ACCESS)
char sn_buf[PRODINFO_MAX_ISN_LEN + 1];
@@ -569,6 +571,7 @@
/*[20200605][TracyChui] Implement get Serial Number start*/
#if defined(ENABLE_PRODINFO_ACCESS)
int AdbEnable = 0;
+ int AdbEnableCTS = 0;
#endif
/*[20200605][TracyChui] Implement get Serial Number end*/
bool warm_boot = false;
@@ -706,11 +709,16 @@
if (prod.is_adb_enabled) {
dprintf(CRITICAL, "Device will enable adb\n");
- prod.is_adb_enabled = 0;
+ if (prod.is_adb_enabled_cts) {
+ prod.is_adb_enabled = 1;
+ } else {
+ prod.is_adb_enabled = 0;
+ }
write_prod_info(&prod);
AdbEnable = 1;
cmdline_len += strlen(UsbAdbEnable);
+ cmdline_len += strlen(UsbAdbEnableCTS);
}
#endif
/*[20200605][TracyChui] Implement get Serial Number end*/
@@ -1170,6 +1178,12 @@
if (have_cmdline) --dst;
while ((*dst++ = *src++));
}
+
+ if (AdbEnableCTS) {
+ src = UsbAdbEnableCTS;
+ if (have_cmdline) --dst;
+ while ((*dst++ = *src++));
+ }
#endif
/*[20200605][TracyChui] Implement get Serial Number end*/
@@ -3289,6 +3303,7 @@
memcpy(info->isn, "No_Serial_Number", PRODINFO_MAX_ISN_LEN);
memcpy(info->ssn, "No_Custer_Serial_Number", PRODINFO_MAX_SSN_LEN);
info->is_adb_enabled = 0;
+ info->is_adb_enabled_cts = 0;
write_prod_info(info);
}
memcpy(dev, info, sizeof(prod_info));
@@ -5043,6 +5058,24 @@
write_prod_info(&prod);
fastboot_okay("");
}
+
+void CmdOemEnableAdbCTS(const char *arg, void *data, unsigned size)
+{
+ dprintf(INFO, "Enabling Adb CTS\n");
+ prod.is_adb_enabled = 1;
+ prod.is_adb_enabled_cts = 1;
+ write_prod_info(&prod);
+ fastboot_okay("");
+}
+
+void CmdOemDisableAdbCTS(const char *arg, void *data, unsigned size)
+{
+ dprintf(INFO, "disabling Adb CTS\n");
+ prod.is_adb_enabled = 0;
+ prod.is_adb_enabled_cts = 0;
+ write_prod_info(&prod);
+ fastboot_okay("");
+}
#endif
/*[20200605][TracyChui] Implement get Serial Number end*/
@@ -5590,6 +5623,8 @@
/*[20200605][TracyChui] Implement get Serial Number start*/
#if defined(ENABLE_PRODINFO_ACCESS)
{"oem adb_enable", CmdOemEnableAdb},
+ {"oem adb_enable_cts", CmdOemEnableAdbCTS},
+ {"oem adb_disable_cts", CmdOemDisableAdbCTS},
#endif
/*[20200605][TracyChui] Implement get Serial Number end*/
};
diff --git a/app/aboot/devinfo.h b/app/aboot/devinfo.h
index d264250..59342a4 100755
--- a/app/aboot/devinfo.h
+++ b/app/aboot/devinfo.h
@@ -74,6 +74,7 @@
unsigned char isn[PRODINFO_MAX_ISN_LEN];
unsigned char ssn[PRODINFO_MAX_SSN_LEN];
bool is_adb_enabled;
+ bool is_adb_enabled_cts;
};
void read_prod_info(prod_info *dev);
diff --git a/target/msm8953/init.c b/target/msm8953/init.c
index 7e1fe9f..7b2214f 100755
--- a/target/msm8953/init.c
+++ b/target/msm8953/init.c
@@ -423,7 +423,7 @@
{
/*[20200605][TracyChui] Implement get Serial Number start*/
#if defined(ENABLE_PRODINFO_ACCESS)
- prod_info prod = {PRODINFO_MAGIC, {0}, {0}, 0};
+ prod_info prod = {PRODINFO_MAGIC, {0}, {0}, 0, 0};
if (target_is_emmc_boot()) {
read_prod_info(&prod);
snprintf((char *)buf, PRODINFO_MAX_SSN_LEN + 1, "%s", prod.ssn);