touch: Add the capability to simulate HW failure
Usage: $> setprop vendor.touch.gti0.ical.override.result RESULT The designate RESULT to be used for the designate CMD. If no RESULT assign, the default value will be "0 - -2147483648". $> setprop vendor.touch.gti0.ical.override.cmd CMD The result of designate CMD(e.g. 202 or 301) to be overrode by the designate RESULT. If the CMD is "xxx", the result of any CMD will be overode with the designate RESULT. Bug: 341021854 Test: manual test Change-Id: I3d24618e240b4a966b5a76a33ed9ab96503a3257 Signed-off-by: Super Liu <supercjliu@google.com>
This commit is contained in:
parent
85ff832530
commit
70f4b0431e
1 changed files with 42 additions and 2 deletions
|
@ -34,6 +34,18 @@ int main(int argc, char *argv[])
|
|||
char *line = NULL;
|
||||
size_t len = 0;
|
||||
FILE *ical_fd;
|
||||
const char *ical_override_cmd_prop[2] = {
|
||||
[0] = "vendor.touch.gti0.ical.override.cmd",
|
||||
[1] = "vendor.touch.gti1.ical.override.cmd",
|
||||
};
|
||||
const char *ical_override_result_prop[2] = {
|
||||
[0] = "vendor.touch.gti0.ical.override.result",
|
||||
[1] = "vendor.touch.gti1.ical.override.result",
|
||||
};
|
||||
const char *ical_write_history_prop[2] = {
|
||||
[0] = "vendor.touch.gti0.ical.write.history",
|
||||
[1] = "vendor.touch.gti1.ical.write.history",
|
||||
};
|
||||
const char *ical_state_prop[2] = {
|
||||
[0] = "vendor.touch.gti0.ical.state",
|
||||
[1] = "vendor.touch.gti1.ical.state",
|
||||
|
@ -46,9 +58,16 @@ int main(int argc, char *argv[])
|
|||
[0] = "/sys/devices/virtual/goog_touch_interface/gti.0/interactive_calibrate",
|
||||
[1] = "/sys/devices/virtual/goog_touch_interface/gti.1/interactive_calibrate",
|
||||
};
|
||||
const char *ical_override_cmd_prop_path = ical_override_cmd_prop[0];
|
||||
const char *ical_override_result_prop_path = ical_override_result_prop[0];
|
||||
const char *ical_write_history_prop_path = ical_write_history_prop[0];
|
||||
const char *ical_state_prop_path = ical_state_prop[0];
|
||||
const char *ical_result_prop_path = ical_result_prop[0];
|
||||
const char *ical_sysfs_path = ical_sysfs[0];
|
||||
const char ical_override_all_cmd_prop_val[PROPERTY_VALUE_MAX] = "xxx";
|
||||
char ical_override_cmd_prop_val[PROPERTY_VALUE_MAX] = "\0";
|
||||
char ical_override_result_prop_val[PROPERTY_VALUE_MAX] = "\0";
|
||||
char ical_write_history_prop_val[PROPERTY_VALUE_MAX] = "\0";
|
||||
|
||||
if (argc < 3) {
|
||||
ALOGW("No target dev or command for interactive_calibrate sysfs.\n");
|
||||
|
@ -60,11 +79,18 @@ int main(int argc, char *argv[])
|
|||
if (strncmp(argv[1], "1", strlen(argv[1])) == 0 ||
|
||||
strncmp(argv[1], "gti1", strlen(argv[1])) == 0 ||
|
||||
strncmp(argv[1], "gti.1", strlen(argv[1])) == 0) {
|
||||
ical_override_cmd_prop_path = ical_override_cmd_prop[1];
|
||||
ical_override_result_prop_path = ical_override_result_prop[1];
|
||||
ical_write_history_prop_path = ical_write_history_prop[1];
|
||||
ical_state_prop_path = ical_state_prop[1];
|
||||
ical_result_prop_path = ical_result_prop[1];
|
||||
ical_sysfs_path = ical_sysfs[1];
|
||||
}
|
||||
|
||||
property_get(ical_override_cmd_prop_path, ical_override_cmd_prop_val, NULL);
|
||||
property_get(ical_override_result_prop_path, ical_override_result_prop_val, "0 - -2147483648");
|
||||
property_get(ical_write_history_prop_path, ical_write_history_prop_val, NULL);
|
||||
|
||||
property_set(ical_result_prop_path, "na");
|
||||
property_set(ical_state_prop_path, "running");
|
||||
if (access(ical_sysfs_path, F_OK | R_OK | W_OK)) {
|
||||
|
@ -84,11 +110,25 @@ int main(int argc, char *argv[])
|
|||
getline(&line, &len, ical_fd);
|
||||
if (line != NULL) {
|
||||
property_set(ical_state_prop_path, "read");
|
||||
property_set(ical_result_prop_path, line);
|
||||
ALOGI("read: %s => %s", ical_sysfs_path, line);
|
||||
if (strncmp(ical_override_cmd_prop_val,
|
||||
ical_write_history_prop_val,
|
||||
strlen(ical_write_history_prop_path)) == 0 ||
|
||||
strncasecmp(ical_override_cmd_prop_val,
|
||||
ical_override_all_cmd_prop_val,
|
||||
strlen(ical_override_all_cmd_prop_val)) == 0) {
|
||||
property_set(ical_result_prop_path, ical_override_result_prop_val);
|
||||
ALOGW("read(original): %s => %s",
|
||||
ical_sysfs_path, line);
|
||||
ALOGW("read(override): %s => %s",
|
||||
ical_sysfs_path, ical_override_result_prop_val);
|
||||
} else {
|
||||
property_set(ical_result_prop_path, line);
|
||||
ALOGI("read: %s => %s", ical_sysfs_path, line);
|
||||
}
|
||||
free(line);
|
||||
}
|
||||
} else {
|
||||
property_set(ical_write_history_prop_path, argv[2]);
|
||||
property_set(ical_state_prop_path, argv[2]);
|
||||
fwrite(argv[2], 1, strlen(argv[2]), ical_fd);
|
||||
ALOGI("write: %s => %s\n", argv[2], ical_sysfs_path);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue