Commit Graph

360 Commits

Author SHA1 Message Date
Doug Zongker 48704798ea run minadbd as shell user, remove unused code
Make minadbd drop its root privileges after initializing.  We need to
make the /tmp directory writable by the shell group so that it can
drop the sideloaded file there.
2012-03-20 10:50:23 -07:00
Doug Zongker 45fdb3899d Merge "allow recovery UI to ignore certain keypresses" into ics-aah 2012-01-18 14:02:41 -08:00
Doug Zongker 336a9949c4 allow recovery UI to ignore certain keypresses
Change-Id: Id182bb95ffcc475c5acabb29b413e422302ae7f2
2012-01-18 13:46:26 -08:00
Doug Zongker e83b7cf8f1 support "sideload over ADB" mode
Rather than depending on the existence of some place to store a file
that is accessible to users on an an unbootable device (eg, a physical
sdcard, external USB drive, etc.), add support for sideloading
packages sent to the device with adb.

This change adds a "minimal adbd" which supports nothing but receiving
a package over adb (with the "adb sideload" command) and storing it to
a fixed filename in the /tmp ramdisk, from where it can be verified
and sideloaded in the usual way.  This should be leave available even
on locked user-build devices.

The user can select "apply package from ADB" from the recovery menu,
which starts minimal-adb mode (shutting down any real adbd that may be
running).  Once minimal-adb has received a package it exits
(restarting real adbd if appropriate) and then verification and
installation of the received package proceeds.

always initialize usb product, vendor, etc. for adb in recovery

Set these values even on non-debuggable builds, so that the mini-adb
now in recovery can work.
2012-01-18 10:35:28 -08:00
Doug Zongker d538eb77ca fix verifier test
Needs to link with libminui and ui.cpp now.

Change-Id: I5005e12cf8adb13d320921e3f9174e8c7304d7bf
2011-11-01 12:42:30 -07:00
Doug Zongker a4e88e45de move key processing to RecoveryUI
Move the key for handling keys from ScreenRecoveryUI to RecoveryUI, so
it can be used by devices without screens.  Remove the UIParameters
struct and replace it with some new member variables in
ScreenRecoveryUI.

Change-Id: I4c0e659edcbedc0b9e86ed261ae4dbb3c6097414
2011-11-01 11:04:27 -07:00
Doug Zongker 5e12cc31f0 Merge "verifier_test needs to provide a UI object" into ics-aah 2011-10-31 14:51:52 -07:00
Doug Zongker bd8e7fbb1a verifier_test needs to provide a UI object
Change-Id: Iddbb6f0aefdcbd131457690fddeddb0a873ea856
2011-10-31 14:51:18 -07:00
Doug Zongker 7d0542f280 C++ class for device-specific code
Replace the device-specific functions with a class.  Move some of the
key handling (for log visibility toggling and rebooting) into the UI
class.  Fix up the key handling so there is less crosstalk between the
immediate keys and the queued keys (an increasing annoyance on
button-limited devices).

Change-Id: I8bdea6505da7974631bf3d9ac3ee308f8c0f76e1
2011-10-31 13:50:32 -07:00
Doug Zongker 7440630caa refactor ui functions into a class
Move all the functions in ui.c to be members of a ScreenRecoveryUI
class, which is a subclass of an abstract RecoveryUI class.  Recovery
then creates a global singleton instance of this class and then invoke
the methods to drive the UI.  We use this to allow substitution of a
different RecoveryUI implementation for devices with radically
different form factors (eg, that don't have a screen).

Change-Id: I7fd8b2949d0db5a3f47c52978bca183966c86f33
2011-10-28 15:13:10 -07:00
Doug Zongker 10e418d3c8 turn recovery into a C++ binary
Change-Id: I68a67a4c8edec9a74463b3d4766005ce27b51316
2011-10-28 10:33:05 -07:00
Doug Zongker d0181b8fcd 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
2011-10-19 11:26:18 -07:00
Dima Zavin 441031dadc minui: add ability to synchronize current key state
If a key is down prior to the time of initialization, we would not get the
down event for the key, and thus think that the key is not pressed.

Add an interface that allows one to provide a callback to execute
on all keys that are currently down.

Change-Id: I2a4096c0cb4c7c7a9a80d207835f168a0b418413
Signed-off-by: Dima Zavin <dima@android.com>
2011-10-12 15:53:32 -07:00
Doug Zongker f6abd409bb fix problem where the screen is sometimes all black in recovery
Change-Id: Ifa0b59e43eaf0bea9435aa4d96c5b0fc4f10fbfe
2011-09-27 13:09:48 -07:00
Doug Zongker fdfb636336 update recovery with new 3D images
Change-Id: I6d52fd1db27fdf1b61f41f598a2209b70385b106
2011-09-20 14:16:46 -07:00
Dima Zavin 88e0899617 minui: events: only open input devices with EV_KEY and/or EV_REL
Change-Id: I8283d7aaa0f66d488f462cd108350cc49657a745
Signed-off-by: Dima Zavin <dima@android.com>
2011-09-02 14:55:20 -07:00
Dima Zavin 365836736c minui: events: add ability to poll on non-input fds
Change-Id: Iad52a6f2adcae0068d252d6163586f9d7b93121d
Signed-off-by: Dima Zavin <dima@android.com>
2011-09-02 14:55:20 -07:00
Dima Zavin bc29063bf4 minui: events: refactor event acquisition
Events are now delivered through a callback mechanism during
a call to ev_dispatch(). This will allow us to extend the events
code to handle other devices/fds, not just input. One such example
is the ability to process uevents.

During initialization, we provide an input callback to ev_init
that gets called when a new event is encountered during dispatch.

ev_get has been removed and replaced with ev_get_input() helper
function that can be called from inside the callback to attempt
to get an input event.

The existing client of ev_get in recovery has been split up such
that the input thread just calls ev_wait(); ev_dispatch(); and
the input_callback handles individual events by using the
ev_get_input() helper.

Change-Id: I24d8e71bd1533876b4ab1ae751ba200fea43c049
Signed-off-by: Dima Zavin <dima@android.com>
2011-09-02 14:55:20 -07:00
Dima Zavin 4daf48a10b minui: graphics: add interface for framebuffer blank/unblank
Change-Id: I5c3ee61cbf6fadae50f10b9f2e73caceaa5048a7
Signed-off-by: Dima Zavin <dima@android.com>
2011-08-30 11:59:20 -07:00
Dima Zavin 3c7f00ede6 minui: graphics: add ability to query font size
Change-Id: I5e8f477b7b205794f2975f12e6b6010c177f6052
Signed-off-by: Dima Zavin <dima@android.com>
2011-08-30 11:58:24 -07:00
Doug Zongker c2ddaea83a change recovery images to match blue holo theme
Change-Id: I912d3ab32973c5c5e7b6b1749698f8a71d884fa3
2011-08-19 16:56:31 -07:00
Michael Ward 6242a8bc9b Support multiple recovery updater extensions.
Change-Id: I787c086223b674050c0a12fc575add9badb471af
2011-07-14 15:12:20 -07:00
Doug Zongker 8918673cf7 Merge "Check pointer for null before dereferencing" 2011-07-13 15:42:09 -07:00
Adam Bliss b2ceb696d0 Check pointer for null before dereferencing
Change-Id: Ie7563bf8fb2d627454010de7388d0992e2accf91
2011-07-13 15:24:38 -07:00
Benoit Goby 8d92ae052e Merge "Update usb_connected() to support new gadget driver" 2011-07-12 15:39:11 -07:00
Benoit Goby 7e6067e36c Update usb_connected() to support new gadget driver
Change-Id: Iabe8be5bbfa7d2bf1d13280c8734ff75b62a152f
2011-07-12 12:38:46 -07:00
Jeff Brown b0462e6ae2 Remove the simulator target from all makefiles.
Bug: 5010576

Change-Id: Ib465fdb42c8621899bea15c04a427d7ab1641a8c
2011-07-11 22:11:45 -07:00
Michael Ward 933487868f Add missing commands to recovery init.rc
Wrote some missing items in recovery, most notably the serial number so that it shows up correctly on adb.

Change-Id: If430c0b78191c8d77f781aa605b5081571451775
2011-07-07 13:29:43 -07:00
Mike Lockwood 718a2f7872 init.rc: Simplify logic for starting adbd in recovery
Always start adbd if ro.debuggable=1 rather than basing it on user preference
in persistent system properties.

Use new D001 product ID, which I just allocated for "android recovery mode"

Change-Id: I6f1eac5257eaad2e538c0a8dd549ad89219efa3e
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-29 10:22:04 -04:00
Michael Ward 9d2629c1c4 Allow applying an OTA package manually from cache.
Change-Id: I8f78377555c658a992ca95cadf11b67ddc93fed8
2011-06-24 11:53:58 -07:00
Michael Ward 3dbe66b71d Get the correct line_length.
Set the BPP and other fields and write it back, so the line_length comes back correctly.

Change-Id: I85e4e8223c79b9394ae1fb609b3026de62027ab8
2011-06-24 11:06:01 -07:00
Doug Zongker fb04b87002 fix adb root in recovery
recovery's init.rc was missing lines that made adb root work.

Change-Id: I300e6997e3b5cb9c7b542b2012eed61deb2550f1
2011-06-23 15:30:34 -07:00
Michael Ward 9d1bcdf7b8 Graphics can handle stride != xres, and BGRA support.
Change-Id: Ifee94ac08028e62a40241a089ac7c36346fea3a3
2011-06-22 15:04:00 -07:00
Mike Lockwood 7e58b65efb Fix starting adb in recovery mode
Change-Id: I8444f44d3194ff16ce54121633d5b255231393f5
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-19 02:52:01 -04:00
Jean-Baptiste Queru 5a4e03d120 am f84b2524: am 6ebedf00: am 82da01d6: Merge from gingerbread
* commit 'f84b25243d7ebeaca8424171f5ca3b192cc76d80':
2011-06-08 14:47:00 -07:00
Jean-Baptiste Queru 7f72ad7934 am a94d9548: am 1117c69f: am 7172eb7b: Merge "Mute unharmful build warning at the top of the build log:" into gingerbread
* commit 'a94d954862fab26f6159ed7bb836ba6758a569fd':
  Mute unharmful build warning at the top of the build log:
2011-06-08 14:46:59 -07:00
Jean-Baptiste Queru f84b25243d am 6ebedf00: am 82da01d6: Merge from gingerbread
* commit '6ebedf0053ccefd414e5887db316f84bd8f6c44c':
2011-06-07 13:23:26 -07:00
Jean-Baptiste Queru a94d954862 am 1117c69f: am 7172eb7b: Merge "Mute unharmful build warning at the top of the build log:" into gingerbread
* commit '1117c69fe40dccfa6090d184094c4a6d407ab8d6':
  Mute unharmful build warning at the top of the build log:
2011-06-07 13:22:51 -07:00
Jean-Baptiste Queru 6ebedf0053 am 82da01d6: Merge from gingerbread
* commit '82da01d6a32c4fbfe57155c119d4669d7faba438':
2011-06-01 14:23:11 -07:00
Jean-Baptiste Queru 82da01d6a3 Merge from gingerbread
Change-Id: I30902cdb19698f88a1ea57cf8c7667ef867d13a8
2011-06-01 14:08:15 -07:00
Jean-Baptiste Queru 1117c69fe4 am 7172eb7b: Merge "Mute unharmful build warning at the top of the build log:" into gingerbread
* commit '7172eb7b623f4b30f5a709d639fcd3fb51cd6220':
  Mute unharmful build warning at the top of the build log:
2011-06-01 08:06:14 -07:00
Jean-Baptiste Queru 7172eb7b62 Merge "Mute unharmful build warning at the top of the build log:" into gingerbread 2011-05-31 14:03:36 -07:00
Ying Wang b7b7b37457 Mute unharmful build warning at the top of the build log:
diff: out/target/product/generic/obj/PACKAGING/updater_extensions_intermediates/register.inc.list:
No such file or directory

Change-Id: I269b1703b6091b343db45b1c5cdd0962c738788b
2011-05-24 16:11:05 -07:00
The Android Open Source Project 28a08efe15 Reconcile with honeycomb-release
Change-Id: I1205ca405fdaf586ebc349fbe83969e9694fab60
2011-05-20 12:45:51 -07:00
The Android Automerger e44b41a770 am c2a158db: Merge remote branch \'goog/honeycomb-mr2\' into honeycomb-LTE
* commit 'c2a158db9588e6ad290dd0f9171a190609900387':
  delay accessing misc partition until its device exists
2011-05-09 10:53:22 -07:00
The Android Automerger c2a158db95 Merge remote branch 'goog/honeycomb-mr2' into honeycomb-LTE 2011-05-08 22:31:27 -07:00
Doug Zongker c636b7300b am 90588820: delay accessing misc partition until its device exists
* commit '90588820b7110acf142d17457f0d10cd7cb57a8a':
  delay accessing misc partition until its device exists
2011-05-04 12:46:12 -07:00
Doug Zongker 90588820b7 delay accessing misc partition until its device exists
When the misc partition is on an emmc device, recovery can get started
and try to access it before the kernel has actually created the
device.  Try statting the device before reading or writing it; delay
up to 10 seconds waiting for the device to exist.

Change-Id: I93256db4b047c76020490e8a3dc76b8ade643291
2011-05-04 11:17:35 -04:00
Doug Zongker f4bb554ee9 delay accessing misc partition until its device exists
When the misc partition is on an emmc device, recovery can get started
and try to access it before the kernel has actually created the
device.  Try statting the device before reading or writing it; delay
up to 10 seconds waiting for the device to exist.

Change-Id: I988442d5701394d7152bfab3c571e7548c364f61
2011-05-04 11:07:48 -04:00
Doug Zongker cfd256a332 delay accessing misc partition until its device exists
When the misc partition is on an emmc device, recovery can get started
and try to access it before the kernel has actually created the
device.  Try statting the device before reading or writing it; delay
up to 10 seconds waiting for the device to exist.

Change-Id: Ib9bf6c35fa2c28fc43aa7550aaaffb76c9f6e120
2011-04-22 09:33:14 -07:00