Remove /proc/cpuinfo parsing
- Clean up the paths for ro.revision and ro.hardware parsing - Use ro.hardwre in ueventd instead of parsing the kernel command line (cherry-pick of 38b340a52f8e864650db8bae1eb88d5c00485db0.) Bug: 19366018 Change-Id: I018a293f3d46e736a8b65132b5b00b0f7c20edae
This commit is contained in:
parent
f1c2ba490e
commit
74b34f3cb7
4 changed files with 5 additions and 71 deletions
|
@ -65,8 +65,6 @@ static int property_triggers_enabled = 0;
|
|||
|
||||
static char console[32];
|
||||
static char bootmode[32];
|
||||
static char hardware[32];
|
||||
static unsigned revision = 0;
|
||||
static char qemu[32];
|
||||
|
||||
static struct action *cur_action = NULL;
|
||||
|
@ -773,6 +771,8 @@ static void export_kernel_boot_props(void)
|
|||
{ "ro.boot.mode", "ro.bootmode", "unknown", },
|
||||
{ "ro.boot.baseband", "ro.baseband", "unknown", },
|
||||
{ "ro.boot.bootloader", "ro.bootloader", "unknown", },
|
||||
{ "ro.boot.hardware", "ro.hardware", "unknown", },
|
||||
{ "ro.boot.revision", "ro.revision", "0", },
|
||||
};
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(prop_map); i++) {
|
||||
|
@ -791,16 +791,6 @@ static void export_kernel_boot_props(void)
|
|||
property_get("ro.bootmode", tmp);
|
||||
strlcpy(bootmode, tmp, sizeof(bootmode));
|
||||
|
||||
/* if this was given on kernel command line, override what we read
|
||||
* before (e.g. from /proc/cpuinfo), if anything */
|
||||
ret = property_get("ro.boot.hardware", tmp);
|
||||
if (ret)
|
||||
strlcpy(hardware, tmp, sizeof(hardware));
|
||||
property_set("ro.hardware", hardware);
|
||||
|
||||
snprintf(tmp, PROP_VALUE_MAX, "%d", revision);
|
||||
property_set("ro.revision", tmp);
|
||||
|
||||
/* TODO: these are obsolete. We should delete them */
|
||||
if (!strcmp(bootmode,"factory"))
|
||||
property_set("ro.factorytest", "1");
|
||||
|
@ -1012,8 +1002,6 @@ int main(int argc, char** argv) {
|
|||
klog_init();
|
||||
property_init();
|
||||
|
||||
get_hardware_name(hardware, &revision);
|
||||
|
||||
process_kernel_cmdline();
|
||||
|
||||
selinux_callback cb;
|
||||
|
|
|
@ -30,28 +30,13 @@
|
|||
#include "util.h"
|
||||
#include "devices.h"
|
||||
#include "ueventd_parser.h"
|
||||
|
||||
static char hardware[32];
|
||||
static unsigned revision = 0;
|
||||
|
||||
static void import_kernel_nv(char *name, int in_qemu)
|
||||
{
|
||||
if (*name != '\0') {
|
||||
char *value = strchr(name, '=');
|
||||
if (value != NULL) {
|
||||
*value++ = 0;
|
||||
if (!strcmp(name,"androidboot.hardware"))
|
||||
{
|
||||
strlcpy(hardware, value, sizeof(hardware));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#include "property_service.h"
|
||||
|
||||
int ueventd_main(int argc, char **argv)
|
||||
{
|
||||
struct pollfd ufd;
|
||||
int nr;
|
||||
char hardware[PROP_VALUE_MAX];
|
||||
char tmp[32];
|
||||
|
||||
/*
|
||||
|
@ -83,12 +68,7 @@ int ueventd_main(int argc, char **argv)
|
|||
|
||||
INFO("starting ueventd\n");
|
||||
|
||||
/* Respect hardware passed in through the kernel cmd line. Here we will look
|
||||
* for androidboot.hardware param in kernel cmdline, and save its value in
|
||||
* hardware[]. */
|
||||
import_kernel_cmdline(0, import_kernel_nv);
|
||||
|
||||
get_hardware_name(hardware, &revision);
|
||||
property_get("ro.hardware", hardware);
|
||||
|
||||
ueventd_parse_config_file("/ueventd.rc");
|
||||
|
||||
|
|
|
@ -400,39 +400,6 @@ void open_devnull_stdio(void)
|
|||
exit(1);
|
||||
}
|
||||
|
||||
void get_hardware_name(char *hardware, unsigned int *revision) {
|
||||
// Hardware string was provided on kernel command line.
|
||||
if (hardware[0]) {
|
||||
return;
|
||||
}
|
||||
|
||||
FILE* fp = fopen("/proc/cpuinfo", "re");
|
||||
if (fp == NULL) {
|
||||
return;
|
||||
}
|
||||
char buf[1024];
|
||||
while (fgets(buf, sizeof(buf), fp) != NULL) {
|
||||
if (strncmp(buf, "Hardware", 8) == 0) {
|
||||
const char* hw = strstr(buf, ": ");
|
||||
if (hw) {
|
||||
hw += 2;
|
||||
size_t n = 0;
|
||||
while (*hw) {
|
||||
if (!isspace(*hw)) {
|
||||
hardware[n++] = tolower(*hw);
|
||||
}
|
||||
hw++;
|
||||
if (n == 31) break;
|
||||
}
|
||||
hardware[n] = 0;
|
||||
}
|
||||
} else if (strncmp(buf, "Revision", 8) == 0) {
|
||||
sscanf(buf, "Revision : %ux", revision);
|
||||
}
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
void import_kernel_cmdline(int in_qemu,
|
||||
void (*import_kernel_nv)(char *name, int in_qemu))
|
||||
{
|
||||
|
|
|
@ -42,7 +42,6 @@ void make_link(const char *oldpath, const char *newpath);
|
|||
void remove_link(const char *oldpath, const char *newpath);
|
||||
int wait_for_file(const char *filename, int timeout);
|
||||
void open_devnull_stdio(void);
|
||||
void get_hardware_name(char *hardware, unsigned int *revision);
|
||||
void import_kernel_cmdline(int in_qemu, void (*import_kernel_nv)(char *name, int in_qemu));
|
||||
int make_dir(const char *path, mode_t mode);
|
||||
int restorecon(const char *pathname);
|
||||
|
|
Loading…
Reference in a new issue