summaryrefslogtreecommitdiffstats
path: root/updater
diff options
context:
space:
mode:
authorDoug Zongker <dougz@android.com>2011-10-19 10:51:12 -0700
committerDoug Zongker <dougz@android.com>2011-10-19 11:26:18 -0700
commitd0181b8fcdac761afec252151a8bfda116916e96 (patch)
treec878f12af3461775fe971b1a935783d08c6e9d62 /updater
parent441031dadc4f5e8c1487468229781702bc08fb14 (diff)
downloadbootable_recovery-d0181b8fcdac761afec252151a8bfda116916e96.zip
bootable_recovery-d0181b8fcdac761afec252151a8bfda116916e96.tar.gz
bootable_recovery-d0181b8fcdac761afec252151a8bfda116916e96.tar.bz2
allow recovery packages to wipe cache
updater now has a function "wipe_cache();" which causes recovery to wipe the cache partition after the successful installation of the package. Move log copying around a bit so logs and the last_install flag file are copied to cache after it's wiped. Bug: 5314244 Change-Id: Id35a9eb6dcd626c8f3a3a0076074f462ed3d44bd
Diffstat (limited to 'updater')
-rw-r--r--updater/install.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/updater/install.c b/updater/install.c
index 0396bae..7b4b99b 100644
--- a/updater/install.c
+++ b/updater/install.c
@@ -1024,6 +1024,14 @@ Value* UIPrintFn(const char* name, State* state, int argc, Expr* argv[]) {
return StringValue(buffer);
}
+Value* WipeCacheFn(const char* name, State* state, int argc, Expr* argv[]) {
+ if (argc != 0) {
+ return ErrorAbort(state, "%s() expects no args, got %d", name, argc);
+ }
+ fprintf(((UpdaterInfo*)(state->cookie))->cmd_pipe, "wipe_cache\n");
+ return StringValue(strdup("t"));
+}
+
Value* RunProgramFn(const char* name, State* state, int argc, Expr* argv[]) {
if (argc < 1) {
return ErrorAbort(state, "%s() expects at least 1 arg", name);
@@ -1198,6 +1206,8 @@ void RegisterInstallFunctions() {
RegisterFunction("read_file", ReadFileFn);
RegisterFunction("sha1_check", Sha1CheckFn);
+ RegisterFunction("wipe_cache", WipeCacheFn);
+
RegisterFunction("ui_print", UIPrintFn);
RegisterFunction("run_program", RunProgramFn);