libprocessgroup symbols are being moved into libcutils in order to
optimize linking/memory usage. libprocessgroup will no longer be
required in the future (however removing references to it will come
separately).
Since libcutils is used statically here, the dependencies of
libprocessgroup need to be explicitly listed.
Bug: 135145426
Test: boot
Change-Id: I91c082f0fa2f5f5c52751065cd5f50f5cb965b23
Therefore InstallPackage() doesn't need to worry about the details of a
given Package.
Bug: 127071893
Test: run update from /bin/recovery --update_package=@path, sideload a package
Change-Id: I0caa36785b43924f884ee398e7ea640d7472a92e
Waitkey() is designed to obtain lock "key_queue_mutex" in
the very beginning of function.
int RecoveryUI::WaitKey() {
std::unique_lock<std::mutex> lk(key_queue_mutex);
...
}
However, there's case "key_queue_mutex" being applied again in
waitkey(), thus cause deadlock. There are two reproduce
scenario:
1.Executing "fastboot reboot recovery" in userspace
fastboot
2.Executing "adb reboot fastboot" in recovery os
When entering userspace fastboot/recovery, waitkey()
will wait there for user action. fastboot/adb commands
will trigger ui->interruptkey() to notify the thread
waitkey() in. In the next, waitkey() will move on and call
SetScreenSaveState(), which do LOG(ERROR) in fail case of
brightness set. LOG(ERROR) is designed to print log on
UI. Unfortunately, UI->print() applies lock "key_queue_mutex"
too, so deadlock happen.
Note:
Here is details how lock "key_queue_mutex" applied in
UI->print():
Function Print() call
Function PrintV() call
Function update_screen_locked() call
Function draw_screen_locked() call
Function draw_menu_and_test_buffer_locked() call
Function IsLongPress()
bool RecoveryUI::IsLongPress() {
std::lock_guard<std::mutex> lg(key_queue_mutex);
bool result = key_long_press;
return result;
}
Bug: 135078366
Test: no errors when running "fastboot reboot recovery" in userspace
fastboot & "adb reboot fastboot" in recovery os
Change-Id: Ida6b3c4ba9896a70021373f02a94954f0a60cf31
Signed-off-by: Zhang, GaofengX <gaofengx.zhang@intel.com>
Signed-off-by: Xihua Chen <xihua.chen@intel.com>
am: e3a45f93ab -s ours
am skip reason: change_id I5af47f8ea4d569b8507e259daef87749c0945f47 with SHA1 57a27890ce is in history
Change-Id: Ic0709af5e24a965e1e076f6c99aaab01e6d4f033
am: e3cc180d31 -s ours
am skip reason: change_id I5af47f8ea4d569b8507e259daef87749c0945f47 with SHA1 57a27890ce is in history
Change-Id: I6e660702e7a7880bf709777bce1423e1ab9c145e
This change addresses the comment in [1], which makes the results of
`adb shell getprop foo` and `adb rescue getprop foo` more consistent.
That is, both will return newline-terminated results now.
[1] https://r.android.com/c/platform/bootable/recovery/+/976340/3/minadbd/minadbd_services.cpp#188
Fixes: 134027350
Test: Run the following commands on taimen (under rescue mode):
`adb rescue getprop ro.build.fingerprint`
`adb rescue getprop ro.nonexistent`
`adb rescue getprop`
Change-Id: I5af47f8ea4d569b8507e259daef87749c0945f47
Merged-In: I5af47f8ea4d569b8507e259daef87749c0945f47
(cherry picked from commit 57a27890ce)
am: fe097f0253 -s ours
am skip reason: change_id Ic0864ca0fb51505ec1e4f38af2464591aa576201 with SHA1 d8db81a014 is in history
Change-Id: Iab964432c9499dd4e21c61204ffb8596754a474e
am: da1b196145 -s ours
am skip reason: change_id Id4667fcaf0e908c391085b22e22c957acd01d9c4 with SHA1 3b9ef341be is in history
Change-Id: I368ff9c2d3da5e0b4d24de42c9f48969a1dce015
am: 5359d777e6 -s ours
am skip reason: change_id Ic0864ca0fb51505ec1e4f38af2464591aa576201 with SHA1 d8db81a014 is in history
Change-Id: I2c4e8c7af45c56315d9a7e0637813862a9c066b3
am: 7a31ab675e -s ours
am skip reason: change_id Id4667fcaf0e908c391085b22e22c957acd01d9c4 with SHA1 3b9ef341be is in history
Change-Id: Ide33c9019fd42d5d44601f6517db945e8e1514ad
This change addresses the comment in [1], which makes the results of
`adb shell getprop foo` and `adb rescue getprop foo` more consistent.
That is, both will return newline-terminated results now.
[1] https://r.android.com/c/platform/bootable/recovery/+/976340/3/minadbd/minadbd_services.cpp#188
Test: Run the following commands on taimen (under rescue mode):
`adb rescue getprop ro.build.fingerprint`
`adb rescue getprop ro.nonexistent`
`adb rescue getprop`
Change-Id: I5af47f8ea4d569b8507e259daef87749c0945f47
It dumps all the allowed properties, similar to `adb shell getprop`.
Bug: 134027350
Test: Run the command under rescue mode.
Change-Id: Ic0864ca0fb51505ec1e4f38af2464591aa576201
Merged-In: Ic0864ca0fb51505ec1e4f38af2464591aa576201
(cherry picked from commit d8db81a014)
Most of these properties are already part of the fingerprint. This CL
allows querying them directly, instead of encouraging users to decode
from fingerprints.
Bug: 134027350
Test: Boot into rescue mode on taimen. Run `adb rescue getprop` with new
props.
Change-Id: Id4667fcaf0e908c391085b22e22c957acd01d9c4
Merged-In: Id4667fcaf0e908c391085b22e22c957acd01d9c4
(cherry picked from commit 3b9ef341be)