From ab4fbe1b4fe1c7581339e384929851a5e6b944b7 Mon Sep 17 00:00:00 2001 From: Josh Gao Date: Wed, 31 Aug 2016 15:32:23 -0700 Subject: [PATCH] init: create /dev/urandom, /dev/random in first stage. Create /dev/random and /dev/urandom in the first stage, so that when we reexec, arc4random is available for libc initialization. Bug: http://b/29622562 Change-Id: I5b2071539a17eec609faac91dc28b08eba5ff89b --- init/init.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/init/init.cpp b/init/init.cpp index 957527bd9..feaee0dbb 100644 --- a/init/init.cpp +++ b/init/init.cpp @@ -588,6 +588,8 @@ int main(int argc, char** argv) { mount("sysfs", "/sys", "sysfs", 0, NULL); mount("selinuxfs", "/sys/fs/selinux", "selinuxfs", 0, NULL); mknod("/dev/kmsg", S_IFCHR | 0600, makedev(1, 11)); + mknod("/dev/random", S_IFCHR | 0666, makedev(1, 8)); + mknod("/dev/urandom", S_IFCHR | 0666, makedev(1, 9)); early_mount(); } @@ -638,6 +640,8 @@ int main(int argc, char** argv) { restorecon("/dev"); restorecon("/dev/kmsg"); restorecon("/dev/socket"); + restorecon("/dev/random"); + restorecon("/dev/urandom"); restorecon("/dev/__properties__"); restorecon("/property_contexts"); restorecon_recursive("/sys");