Merge changes from topic "debug_ramdisk_path" am: c4a1a32e91 am: d6fbaa0945

Original change: https://android-review.googlesource.com/c/platform/system/core/+/1687907

Change-Id: I6d0b6702c024a351185885f6e9994a87a5b03f74
This commit is contained in:
Treehugger Robot 2021-04-28 18:41:45 +00:00 committed by Automerger Merge Worker
commit ee2cb68b2d

View file

@ -329,10 +329,23 @@ int FirstStageMain(int argc, char** argv) {
// If "/force_debuggable" is present, the second-stage init will use a userdebug
// sepolicy and load adb_debug.prop to allow adb root, if the device is unlocked.
bool found_debuggable = false;
std::string adb_debug_prop("/adb_debug.prop");
std::string userdebug_sepolicy("/userdebug_plat_sepolicy.cil");
if (access("/force_debuggable", F_OK) == 0) {
found_debuggable = true;
} else if (access("/first_stage_ramdisk/force_debuggable", F_OK) == 0) {
// Fallback to legacy debug resource paths.
// TODO(b/186485355): removes the fallback path once it is not needed.
found_debuggable = true;
adb_debug_prop.insert(0, "/first_stage_ramdisk");
userdebug_sepolicy.insert(0, "/first_stage_ramdisk");
}
if (found_debuggable) {
std::error_code ec; // to invoke the overloaded copy_file() that won't throw.
if (!fs::copy_file("/adb_debug.prop", kDebugRamdiskProp, ec) ||
!fs::copy_file("/userdebug_plat_sepolicy.cil", kDebugRamdiskSEPolicy, ec)) {
if (!fs::copy_file(adb_debug_prop, kDebugRamdiskProp, ec) ||
!fs::copy_file(userdebug_sepolicy, kDebugRamdiskSEPolicy, ec)) {
LOG(ERROR) << "Failed to setup debug ramdisk";
} else {
// setenv for second-stage init to read above kDebugRamdisk* files.