summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Zongker <dougz@android.com>2014-01-14 12:30:40 -0800
committerDoug Zongker <dougz@android.com>2014-01-16 08:54:59 -0800
commit7baebf1345ff9e861ea8ccf9712128a3b7cd9fcc (patch)
treec5a4fbdd1661a923de9988951744a2545cf0239a
parent475377b68a49197b14d8ff6553842b7f417d8161 (diff)
add the pre-recovery service
Add a service called "pre-recovery" which is normally stopped but can be started by the system server when we want to go into recovery. It will do any preparation needed (currently needed to handle update packages that reside on an encrypted /data partition) and then set sys.powerctl when it's ready to actually reboot. Bug: 12188746 Change-Id: I894a4cb200395a0f6d7fe643ed4c2ac0a45d2052
-rw-r--r--include/private/android_filesystem_config.h1
-rw-r--r--init/property_service.c1
-rw-r--r--rootdir/init.rc5
3 files changed, 7 insertions, 0 deletions
diff --git a/include/private/android_filesystem_config.h b/include/private/android_filesystem_config.h
index 53619ac16..e3568ae04 100644
--- a/include/private/android_filesystem_config.h
+++ b/include/private/android_filesystem_config.h
@@ -247,6 +247,7 @@ static const struct fs_path_config android_files[] = {
/* the following files have enhanced capabilities and ARE included in user builds. */
{ 00750, AID_ROOT, AID_SHELL, (1 << CAP_SETUID) | (1 << CAP_SETGID), "system/bin/run-as" },
+ { 00750, AID_ROOT, AID_ROOT, 0, "system/bin/uncrypt" },
{ 00755, AID_ROOT, AID_SHELL, 0, "system/bin/*" },
{ 00755, AID_ROOT, AID_ROOT, 0, "system/lib/valgrind/*" },
{ 00755, AID_ROOT, AID_SHELL, 0, "system/xbin/*" },
diff --git a/init/property_service.c b/init/property_service.c
index 1b9327ce3..6cdb9574e 100644
--- a/init/property_service.c
+++ b/init/property_service.c
@@ -110,6 +110,7 @@ struct {
} control_perms[] = {
{ "dumpstate",AID_SHELL, AID_LOG },
{ "ril-daemon",AID_RADIO, AID_RADIO },
+ { "pre-recovery", AID_SYSTEM, AID_SYSTEM },
{NULL, 0, 0 }
};
diff --git a/rootdir/init.rc b/rootdir/init.rc
index 7ee1be901..324ac373b 100644
--- a/rootdir/init.rc
+++ b/rootdir/init.rc
@@ -577,3 +577,8 @@ service mdnsd /system/bin/mdnsd
socket mdnsd stream 0660 mdnsr inet
disabled
oneshot
+
+service pre-recovery /system/bin/uncrypt
+ class main
+ disabled
+ oneshot