Merge pull request #10793 from RandomShaper/fix-android-dbg-pre-21

Fix pre-Lollipop Android debug
This commit is contained in:
Rémi Verschelde 2017-08-31 11:00:01 +02:00 committed by GitHub
commit b86aa5614f

View file

@ -204,7 +204,7 @@ class EditorExportAndroid : public EditorExportPlatform {
String id;
String name;
String description;
int release;
int api_level;
};
struct APKExportData {
@ -278,7 +278,7 @@ class EditorExportAndroid : public EditorExportPlatform {
if (ea->devices[j].id == ldevices[i]) {
d.description = ea->devices[j].description;
d.name = ea->devices[j].name;
d.release = ea->devices[j].release;
d.api_level = ea->devices[j].api_level;
}
}
@ -299,7 +299,7 @@ class EditorExportAndroid : public EditorExportPlatform {
String vendor;
String device;
d.description + "Device ID: " + d.id + "\n";
d.release = 0;
d.api_level = 0;
for (int j = 0; j < props.size(); j++) {
String p = props[j];
@ -310,9 +310,9 @@ class EditorExportAndroid : public EditorExportPlatform {
} else if (p.begins_with("ro.build.display.id=")) {
d.description += "Build: " + p.get_slice("=", 1).strip_edges() + "\n";
} else if (p.begins_with("ro.build.version.release=")) {
const String release_str = p.get_slice("=", 1).strip_edges();
d.description += "Release: " + release_str + "\n";
d.release = release_str.to_int();
d.description += "Release: " + p.get_slice("=", 1).strip_edges() + "\n";
} else if (p.begins_with("ro.build.version.sdk=")) {
d.api_level = p.get_slice("=", 1).to_int();
} else if (p.begins_with("ro.product.cpu.abi=")) {
d.description += "CPU: " + p.get_slice("=", 1).strip_edges() + "\n";
} else if (p.begins_with("ro.product.manufacturer=")) {
@ -1073,6 +1073,10 @@ public:
//export_temp
ep.step("Exporting APK", 0);
const bool use_remote = (p_debug_flags & DEBUG_FLAG_REMOTE_DEBUG) || (p_debug_flags & DEBUG_FLAG_DUMB_CLIENT);
const bool use_reverse = devices[p_device].api_level >= 21;
if (use_reverse)
p_debug_flags |= DEBUG_FLAG_REMOTE_DEBUG_LOCALHOST;
String export_to = EditorSettings::get_singleton()->get_settings_path() + "/tmp/tmpexport.apk";
@ -1119,7 +1123,12 @@ public:
return ERR_CANT_CREATE;
}
if (p_debug_flags & DEBUG_FLAG_REMOTE_DEBUG) {
if (use_remote) {
if (use_reverse) {
static const char *const msg = "** Device API >= 21; debugging over USB **";
EditorNode::get_singleton()->get_log()->add_message(msg);
print_line(String(msg).to_upper());
args.clear();
args.push_back("-s");
@ -1128,6 +1137,8 @@ public:
args.push_back("--remove-all");
OS::get_singleton()->execute(adb, args, true, NULL, NULL, &rv);
if (p_debug_flags & DEBUG_FLAG_REMOTE_DEBUG) {
int dbg_port = EditorSettings::get_singleton()->get("network/debug/remote_port");
args.clear();
args.push_back("-s");
@ -1154,6 +1165,13 @@ public:
err = OS::get_singleton()->execute(adb, args, true, NULL, NULL, &rv);
print_line("Reverse result2: " + itos(rv));
}
} else {
static const char *const msg = "** Device API < 21; debugging over Wi-Fi **";
EditorNode::get_singleton()->get_log()->add_message(msg);
print_line(String(msg).to_upper());
}
}
ep.step("Running on Device..", 3);
args.clear();
@ -1162,7 +1180,7 @@ public:
args.push_back("shell");
args.push_back("am");
args.push_back("start");
if ((bool)EditorSettings::get_singleton()->get("export/android/force_system_user") && devices[p_device].release >= 17) { // Multi-user introduced in Android 17
if ((bool)EditorSettings::get_singleton()->get("export/android/force_system_user") && devices[p_device].api_level >= 17) { // Multi-user introduced in Android 17
args.push_back("--user");
args.push_back("0");
}