summaryrefslogtreecommitdiffstats
path: root/edify (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Allow recovery to return error codesTianjie Xu2016-05-203-11/+50
| | | | | | | | | | | | | | | | | | Write error code, cause code, and retry count into last_install. So we can have more information about the reason of a failed OTA. Example of new last_install: @/cache/recovery/block.map package name 0 install result retry: 1 retry count (new) error: 30 error code (new) cause: 12 error cause (new) Details in: go/android-ota-errorcode Bug: 28471955 Change-Id: I00e7153c821e7355c1be81a86c7f228108f3dc37
* edify: accept long string literal.Yabin Cui2016-01-272-13/+16
| | | | | Bug: 24717917 Change-Id: I134cf00ae7efbc3703f976459a1b9f9a197e495d
* Rename .l/.y to .ll/.yyYing Wang2016-01-123-2/+2
| | | | | | | Now to generate .cpp you need to use .ll/.yy. Bug: 26492989 Change-Id: Ib078e03b3b0758f7a62595c343e52ae856bcb33f
* edify: Switch to C++.Tao Bao2015-08-205-37/+27
| | | | Change-Id: I71aede6e29af1dc4bb858a62016c8035db5d3452
* Use CPPFLAGS instead of CFLAGS.Dan Albert2015-08-081-4/+4
| | | | | | | | | | While we build these as C, to the build system they are technically C++ and are subject to the global CPPFLAGS. Set LOCAL_CPPFLAGS here instead of LOCAL_CFLAGS so we can be sure we override anything provided by the build system. Bug: http://b/23043421 Change-Id: I344b54ae4ff9f142365a42c33ba160c1be17a342
* recovery: Switch to clangTao Bao2015-06-031-0/+2
| | | | | | And a few trival fixes to suppress warnings. Change-Id: I38734b5f4434643e85feab25f4807b46a45d8d65
* Remove an uninitialized value.Dan Albert2014-12-181-2/+1
| | | | | | | The assignment of this value was removed in 0d32f25, but the declaration was still there and still tested. Clang issues a warning for this. Change-Id: I748bfb8b4f78ceed1c1b5b1bb80cb4e873e4facc
* Global C++11 compatibility.Dan Albert2014-11-201-3/+4
| | | | | | | | | | | Our build system compiles flex/bison as C++ rather than C, but a few projects add `-x c` to their flags, forcing the compiler to compile them as C. This causes the compiler to reject the global C++ standard flag, so we need to explicitly provide a C standard flag to override it. Bug: 18466763 Change-Id: Id68ad9317261ed4d857a949b07288bd137ff6303
* clean up some warnings when building recoveryDoug Zongker2014-02-145-7/+15
| | | | Change-Id: I1541534ee6978ddf8d548433986679ce9507d508
* recovery: move log output to stdoutDoug Zongker2013-07-092-7/+7
| | | | | | | | Recovery currently has a random mix of messages printed to stdout and messages printed to stderr, which can make logs hard to read. Move everything to stdout. Change-Id: Ie33bd4a9e1272e731302569cdec918e0534c48a6
* minor recovery changesDoug Zongker2012-04-122-2/+10
| | | | | | | | | | | | - add the --just_exit option to make recovery exit normally without doing anything - make it possible to build updater extensions in C++ - add the clear_display command so that the updater binary can request recovery switch to the NONE background UI These are all used to support the notion of using OTA as a factory reflash mechanism. Change-Id: Ib00d1cbf540feff38f52a61a2cf198915b48488c
* make StringValue wrapper okay to call on NULLDoug Zongker2010-02-251-0/+1
| | | | | | | The docs say "don't do this", but it's trivial to make safe. Make StringValue(NULL) return NULL instead of crashing. Change-Id: I2221bcb4c98d8adb4e25c764d7bdcfa787822bcf
* refactor applypatch and friendsDoug Zongker2010-02-232-1/+4
| | | | | | | | | | | | | | | | | | | Change the applypatch function to take meaningful arguments instead of argc and argv. Move all the parsing of arguments into main.c (for the standalone binary) and into install.c (for the updater function). applypatch() takes patches as Value objects, so we can pass in blobs extracted from the package without ever writing them to temp files. The patching code is changed to read the patch from memory instead of a file. A bunch of compiler warnings (mostly about signed vs unsigned types) are fixed. Support for the IMGDIFF1 format is dropped. (We've been generating IMGDIFF2 packages for some time now.) Change-Id: I217563c500012750f27110db821928a06211323f
* add missing includes to fix mac build (maybe)Doug Zongker2010-02-202-0/+4
| | | | Change-Id: Id2712940c4929f3a8b3ba5d4e9e03bb8034747ee
* relocate applypatch; add type system and new functions to edifyDoug Zongker2010-02-182-60/+166
| | | | | | | | | | | | | | | | | | | | | | | | | - Move applypatch to this package (from build). - Add a rudimentary type system to edify: instead of just returning a char*, functions now return a Value*, which is a struct that can carry different types of value (currently just STRING and BLOB). Convert all functions to this new scheme. - Change the one-argument form of package_extract_file to return a Value of the new BLOB type. - Add read_file() to load a local file and return a blob, and sha1_check() to test a blob (or string) against a set of possible sha1s. read_file() uses the file-loading code from applypatch so it can read MTD partitions as well. This is the start of better integration between applypatch and the rest of edify. b/2361316 - VZW Issue PP628: Continuous reset to Droid logo: framework-res.apk update failed (CR LIBtt59130) Change-Id: Ibd038074749a4d515de1f115c498c6c589ee91e5
* Filename check and free allocated stringsKenny Root2010-02-182-0/+7
| | | | | | | Make sure file is valid before we try to read it. Also free all the strings we allocate in various functions so we don't leak memory. Change-Id: Ica3c8dae992e73718c79c12ff5d7e315c290caea
* add file_getprop() to updaterDoug Zongker2009-06-182-0/+17
| | | | | | | Add a function to read a property from a ".prop"-formatted file (key=value pairs, one per line, ignore # comment lines and blank lines). Move ErrorAbort to the core of edify; it's not specific to updater now that errors aren't stored in the app cookie.
* add less_than_int, greater_than_int to edifyDoug Zongker2009-06-132-0/+63
| | | | | | | Add functions less_than_int() and greater_than_int() that interpret their args as ints and do the comparison. ("<" and ">" operators, if implemented, should do string comparison.) This lets us do the build time check currently done by the check_prereq binary.
* fixes to edify and updater scriptDoug Zongker2009-06-126-442/+540
| | | | | | | | | | | | | | | | | | | | | A few more changes to edify: - fix write_raw_image(); my last change neglected to close the write context, so the written image was corrupt. - each expression tracks the span of the source code from which it was compiled, so that assert()'s error message can include the source of the expression that failed. - the 'cookie' argument to each Function is replaced with a State object, which contains the cookie, the source script (for use with the above spans), and the current error message (replacing the global variables that were used for this purpose). - in the recovery image, a new command "ui_print" can be sent back through the command pipe to cause text to appear on the screen. Add a new ui_print() function to print things from scripts. Rename existing "print" function to "stdout".
* edify extensions for OTA package installation, part 2Doug Zongker2009-06-123-8/+11
| | | | | | | | | | | | | | | | | | Adds more edify functions for OTAs: is_mounted getprop apply_patch apply_patch_check apply_patch_space write_raw_image write_firmware_image package_extract_file This allows us to install radios, hboots, boot images, and install incremental OTA packages. Fixes a couple of dumb bugs in edify itself: - we were doubling the size of the function table each time it was *not* full, rather than each time it was full - "no such function" errors weren't visible to the parser, so they didn't prevent execution of the script.
* edify extensions for OTA package installation, part 1Doug Zongker2009-06-126-12/+136
| | | | | | | | | | | | | | | Adds the following edify functions: mount unmount format show_progress delete delete_recursive package_extract symlink set_perm set_perm_recursive This set is enough to extract and install the system part of a (full) OTA package. Adds the updater binary that extracts an edify script from the OTA package and then executes it. Minor changes to the edify core (adds a sleep() builtin for debugging, adds "." to the set of characters that can appear in an unquoted string).
* core of edify, an eventual replacement for amendDoug Zongker2009-06-107-0/+889
Edify is a simple scripting language for OTA installation, to be used when we move to OTAs being installed via binaries shipped with the package.