summaryrefslogtreecommitdiffstats
path: root/recovery.c
diff options
context:
space:
mode:
authorStephen Smalley <sds@tycho.nsa.gov>2012-02-09 20:13:23 +0100
committerStephen Smalley <sds@tycho.nsa.gov>2012-03-30 15:32:46 +0200
commit779701db515d1a0d363d5a8896252f331bc4e22a (patch)
tree46aacb687e7126a5a64949dd7ade2f284ee57c15 /recovery.c
parentAdd libselinux to LOCAL_STATIC_LIBRARIES wherever libext4_utils is used. (diff)
downloadandroid_bootable_recovery-779701db515d1a0d363d5a8896252f331bc4e22a.tar
android_bootable_recovery-779701db515d1a0d363d5a8896252f331bc4e22a.tar.gz
android_bootable_recovery-779701db515d1a0d363d5a8896252f331bc4e22a.tar.bz2
android_bootable_recovery-779701db515d1a0d363d5a8896252f331bc4e22a.tar.lz
android_bootable_recovery-779701db515d1a0d363d5a8896252f331bc4e22a.tar.xz
android_bootable_recovery-779701db515d1a0d363d5a8896252f331bc4e22a.tar.zst
android_bootable_recovery-779701db515d1a0d363d5a8896252f331bc4e22a.zip
Diffstat (limited to 'recovery.c')
-rw-r--r--recovery.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/recovery.c b/recovery.c
index 06d649809..2cb482d02 100644
--- a/recovery.c
+++ b/recovery.c
@@ -39,6 +39,8 @@
#include "roots.h"
#include "recovery_ui.h"
+struct selabel_handle *sehandle;
+
static const struct option OPTIONS[] = {
{ "send_intent", required_argument, NULL, 's' },
{ "update_package", required_argument, NULL, 'u' },
@@ -132,7 +134,7 @@ fopen_path(const char *path, const char *mode) {
// When writing, try to create the containing directory, if necessary.
// Use generous permissions, the system (init.rc) will reset them.
- if (strchr("wa", mode[0])) dirCreateHierarchy(path, 0777, NULL, 1);
+ if (strchr("wa", mode[0])) dirCreateHierarchy(path, 0777, NULL, 1, sehandle);
FILE *fp = fopen(path, mode);
return fp;
@@ -763,6 +765,19 @@ main(int argc, char **argv) {
}
}
+#ifdef HAVE_SELINUX
+ struct selinux_opt seopts[] = {
+ { SELABEL_OPT_PATH, "/file_contexts" }
+ };
+
+ sehandle = selabel_open(SELABEL_CTX_FILE, seopts, 1);
+
+ if (!sehandle) {
+ fprintf(stderr, "Warning: No file_contexts\n");
+ ui_print("Warning: No file_contexts\n");
+ }
+#endif
+
device_recovery_start();
printf("Command:");