Snap for 6545159 from b51a1b7335
to mainline-release
Change-Id: I7e51975b2039d7ef4cdef10d327ead5cff23010d
This commit is contained in:
commit
cf7f053298
|
@ -29,6 +29,7 @@
|
|||
#include <android-base/file.h>
|
||||
#include <android-base/logging.h>
|
||||
#include <android-base/macros.h>
|
||||
#include <android-base/properties.h>
|
||||
#include <android-base/strings.h>
|
||||
#include <uuid/uuid.h>
|
||||
|
||||
|
@ -140,6 +141,10 @@ static std::string GenerateUuid() {
|
|||
return std::string{uuid_chars};
|
||||
}
|
||||
|
||||
static bool IsRecovery() {
|
||||
return access("/system/bin/recovery", F_OK) == 0;
|
||||
}
|
||||
|
||||
bool DeviceMapper::CreateDevice(const std::string& name, const DmTable& table, std::string* path,
|
||||
const std::chrono::milliseconds& timeout_ms) {
|
||||
std::string uuid = GenerateUuid();
|
||||
|
@ -160,6 +165,16 @@ bool DeviceMapper::CreateDevice(const std::string& name, const DmTable& table, s
|
|||
if (timeout_ms <= std::chrono::milliseconds::zero()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (IsRecovery()) {
|
||||
bool non_ab_device = android::base::GetProperty("ro.build.ab_update", "").empty();
|
||||
int sdk = android::base::GetIntProperty("ro.build.version.sdk", 0);
|
||||
if (non_ab_device && sdk && sdk <= 29) {
|
||||
LOG(INFO) << "Detected ueventd incompatibility, reverting to legacy libdm behavior.";
|
||||
unique_path = *path;
|
||||
}
|
||||
}
|
||||
|
||||
if (!WaitForFile(unique_path, timeout_ms)) {
|
||||
LOG(ERROR) << "Failed waiting for device path: " << unique_path;
|
||||
DeleteDevice(name);
|
||||
|
|
|
@ -678,9 +678,12 @@ static void DoReboot(unsigned int cmd, const std::string& reason, const std::str
|
|||
// Reap subcontext pids.
|
||||
ReapAnyOutstandingChildren();
|
||||
|
||||
// 3. send volume shutdown to vold
|
||||
// 3. send volume abort_fuse and volume shutdown to vold
|
||||
Service* vold_service = ServiceList::GetInstance().FindService("vold");
|
||||
if (vold_service != nullptr && vold_service->IsRunning()) {
|
||||
// Manually abort FUSE connections, since the FUSE daemon is already dead
|
||||
// at this point, and unmounting it might hang.
|
||||
CallVdc("volume", "abort_fuse");
|
||||
CallVdc("volume", "shutdown");
|
||||
vold_service->Stop();
|
||||
} else {
|
||||
|
|
|
@ -47,7 +47,7 @@ AStatsEvent* AStatsEventList_addStatsEvent(AStatsEventList* pull_data) {
|
|||
}
|
||||
|
||||
static const int64_t DEFAULT_COOL_DOWN_MILLIS = 1000LL; // 1 second.
|
||||
static const int64_t DEFAULT_TIMEOUT_MILLIS = 10000LL; // 10 seconds.
|
||||
static const int64_t DEFAULT_TIMEOUT_MILLIS = 2000LL; // 2 seconds.
|
||||
|
||||
struct AStatsManager_PullAtomMetadata {
|
||||
int64_t cool_down_millis;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
namespace {
|
||||
|
||||
static const int64_t DEFAULT_COOL_DOWN_MILLIS = 1000LL; // 1 second.
|
||||
static const int64_t DEFAULT_TIMEOUT_MILLIS = 10000LL; // 10 seconds.
|
||||
static const int64_t DEFAULT_TIMEOUT_MILLIS = 2000LL; // 2 seconds.
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
|
|
@ -177,6 +177,9 @@ on init
|
|||
mount binder binder /dev/binderfs stats=global
|
||||
chmod 0755 /dev/binderfs
|
||||
|
||||
# Mount fusectl
|
||||
mount fusectl none /sys/fs/fuse/connections
|
||||
|
||||
symlink /dev/binderfs/binder /dev/binder
|
||||
symlink /dev/binderfs/hwbinder /dev/hwbinder
|
||||
symlink /dev/binderfs/vndbinder /dev/vndbinder
|
||||
|
|
|
@ -5,6 +5,7 @@ service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-sys
|
|||
group root readproc reserved_disk
|
||||
socket zygote stream 660 root system
|
||||
socket usap_pool_primary stream 660 root system
|
||||
onrestart exec_background - system system -- /system/bin/vdc volume abort_fuse
|
||||
onrestart write /sys/power/state on
|
||||
onrestart restart audioserver
|
||||
onrestart restart cameraserver
|
||||
|
|
|
@ -5,6 +5,7 @@ service zygote /system/bin/app_process32 -Xzygote /system/bin --zygote --start-s
|
|||
group root readproc reserved_disk
|
||||
socket zygote stream 660 root system
|
||||
socket usap_pool_primary stream 660 root system
|
||||
onrestart exec_background - system system -- /system/bin/vdc volume abort_fuse
|
||||
onrestart write /sys/power/state on
|
||||
onrestart restart audioserver
|
||||
onrestart restart cameraserver
|
||||
|
|
|
@ -5,6 +5,7 @@ service zygote /system/bin/app_process64 -Xzygote /system/bin --zygote --start-s
|
|||
group root readproc reserved_disk
|
||||
socket zygote stream 660 root system
|
||||
socket usap_pool_primary stream 660 root system
|
||||
onrestart exec_background - system system -- /system/bin/vdc volume abort_fuse
|
||||
onrestart write /sys/power/state on
|
||||
onrestart restart audioserver
|
||||
onrestart restart cameraserver
|
||||
|
|
|
@ -5,6 +5,7 @@ service zygote /system/bin/app_process64 -Xzygote /system/bin --zygote --start-s
|
|||
group root readproc reserved_disk
|
||||
socket zygote stream 660 root system
|
||||
socket usap_pool_primary stream 660 root system
|
||||
onrestart exec_background - system system -- /system/bin/vdc volume abort_fuse
|
||||
onrestart write /sys/power/state on
|
||||
onrestart restart audioserver
|
||||
onrestart restart cameraserver
|
||||
|
|
Loading…
Reference in New Issue