diff options
| -rw-r--r-- | init/devices.c | 2 | ||||
| -rw-r--r-- | init/util.c | 19 | ||||
| -rw-r--r-- | rootdir/init.rc | 3 |
3 files changed, 20 insertions, 4 deletions
diff --git a/init/devices.c b/init/devices.c index de27a7a..1893642 100644 --- a/init/devices.c +++ b/init/devices.c @@ -451,6 +451,8 @@ static char **parse_platform_block_device(struct uevent *uevent) if (uevent->partition_name) { p = strdup(uevent->partition_name); sanitize(p); + if (strcmp(uevent->partition_name, p)) + NOTICE("Linking partition '%s' as '%s'\n", uevent->partition_name, p); if (asprintf(&links[link_num], "%s/by-name/%s", link_path, p) > 0) link_num++; else diff --git a/init/util.c b/init/util.c index fffc8a4..1908b3a 100644 --- a/init/util.c +++ b/init/util.c @@ -306,14 +306,27 @@ int mkdir_recursive(const char *pathname, mode_t mode) return 0; } +/* + * replaces any unacceptable characters with '_', the + * length of the resulting string is equal to the input string + */ void sanitize(char *s) { + const char* accept = + "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "0123456789" + "_-."; + if (!s) return; - while (isalnum(*s)) - s++; - *s = 0; + + for (; *s; s++) { + s += strspn(s, accept); + if (*s) *s = '_'; + } } + void make_link(const char *oldpath, const char *newpath) { int ret; diff --git a/rootdir/init.rc b/rootdir/init.rc index 1451953..3990287 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -37,7 +37,7 @@ loglevel 3 export ANDROID_STORAGE /storage export ASEC_MOUNTPOINT /mnt/asec export LOOP_MOUNTPOINT /mnt/obb - export BOOTCLASSPATH /system/framework/core.jar:/system/framework/conscrypt.jar:/system/framework/okhttp.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/webviewchromium.jar + export BOOTCLASSPATH /system/framework/core.jar:/system/framework/conscrypt.jar:/system/framework/okhttp.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/framework2.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/webviewchromium.jar # Backward compatibility symlink /system/etc /etc @@ -211,6 +211,7 @@ on post-fs-data mkdir /data/misc/bluetooth 0770 system system mkdir /data/misc/keystore 0700 keystore keystore mkdir /data/misc/keychain 0771 system system + mkdir /data/misc/radio 0770 system radio mkdir /data/misc/sms 0770 system radio mkdir /data/misc/zoneinfo 0775 system system mkdir /data/misc/vpn 0770 system vpn |
