Merge pull request #32854 from cooperra/fix-wireless-adb-debugging
Fix Android deploy with Remote Debug or Network FS over Wi-Fi
This commit is contained in:
commit
0e6e64c9e9
1 changed files with 18 additions and 3 deletions
|
@ -220,6 +220,7 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
|
||||||
String name;
|
String name;
|
||||||
String description;
|
String description;
|
||||||
int api_level;
|
int api_level;
|
||||||
|
bool usb;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct APKExportData {
|
struct APKExportData {
|
||||||
|
@ -246,17 +247,20 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
|
||||||
String devices;
|
String devices;
|
||||||
List<String> args;
|
List<String> args;
|
||||||
args.push_back("devices");
|
args.push_back("devices");
|
||||||
|
args.push_back("-l");
|
||||||
int ec;
|
int ec;
|
||||||
OS::get_singleton()->execute(adb, args, true, NULL, &devices, &ec);
|
OS::get_singleton()->execute(adb, args, true, NULL, &devices, &ec);
|
||||||
|
|
||||||
Vector<String> ds = devices.split("\n");
|
Vector<String> ds = devices.split("\n");
|
||||||
Vector<String> ldevices;
|
Vector<String> ldevices;
|
||||||
|
Vector<bool> ldevices_usbconnection;
|
||||||
for (int i = 1; i < ds.size(); i++) {
|
for (int i = 1; i < ds.size(); i++) {
|
||||||
|
|
||||||
String d = ds[i];
|
String d = ds[i];
|
||||||
int dpos = d.find("device");
|
int dpos = d.find(" device ");
|
||||||
if (dpos == -1)
|
if (dpos == -1)
|
||||||
continue;
|
continue;
|
||||||
|
ldevices_usbconnection.push_back(d.find(" usb:") != -1);
|
||||||
d = d.substr(0, dpos).strip_edges();
|
d = d.substr(0, dpos).strip_edges();
|
||||||
ldevices.push_back(d);
|
ldevices.push_back(d);
|
||||||
}
|
}
|
||||||
|
@ -287,6 +291,7 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
|
||||||
|
|
||||||
Device d;
|
Device d;
|
||||||
d.id = ldevices[i];
|
d.id = ldevices[i];
|
||||||
|
d.usb = ldevices_usbconnection[i];
|
||||||
for (int j = 0; j < ea->devices.size(); j++) {
|
for (int j = 0; j < ea->devices.size(); j++) {
|
||||||
if (ea->devices[j].id == ldevices[i]) {
|
if (ea->devices[j].id == ldevices[i]) {
|
||||||
d.description = ea->devices[j].description;
|
d.description = ea->devices[j].description;
|
||||||
|
@ -341,9 +346,17 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
|
||||||
} else if (p.begins_with("ro.opengles.version=")) {
|
} else if (p.begins_with("ro.opengles.version=")) {
|
||||||
uint32_t opengl = p.get_slice("=", 1).to_int();
|
uint32_t opengl = p.get_slice("=", 1).to_int();
|
||||||
d.description += "OpenGL: " + itos(opengl >> 16) + "." + itos((opengl >> 8) & 0xFF) + "." + itos((opengl)&0xFF) + "\n";
|
d.description += "OpenGL: " + itos(opengl >> 16) + "." + itos((opengl >> 8) & 0xFF) + "." + itos((opengl)&0xFF) + "\n";
|
||||||
|
} else if (p.begins_with("ro.boot.serialno=")) {
|
||||||
|
d.description += "Serial: " + p.get_slice("=", 1).strip_edges() + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (d.usb) {
|
||||||
|
d.description += "Connection: USB\n";
|
||||||
|
} else {
|
||||||
|
d.description += "Connection: " + d.id + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
d.name = vendor + " " + device;
|
d.name = vendor + " " + device;
|
||||||
if (device == String()) continue;
|
if (device == String()) continue;
|
||||||
}
|
}
|
||||||
|
@ -1415,7 +1428,9 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool use_remote = (p_debug_flags & DEBUG_FLAG_REMOTE_DEBUG) || (p_debug_flags & DEBUG_FLAG_DUMB_CLIENT);
|
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;
|
const bool use_reverse = devices[p_device].api_level >= 21 && devices[p_device].usb;
|
||||||
|
// Note: Reverse can still fail if device is connected by both usb and network
|
||||||
|
// Ideally we'd know for sure whether adb reverse would work before we build the APK
|
||||||
|
|
||||||
if (use_reverse)
|
if (use_reverse)
|
||||||
p_debug_flags |= DEBUG_FLAG_REMOTE_DEBUG_LOCALHOST;
|
p_debug_flags |= DEBUG_FLAG_REMOTE_DEBUG_LOCALHOST;
|
||||||
|
@ -1520,7 +1535,7 @@ public:
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
static const char *const msg = "--- Device API < 21; debugging over Wi-Fi ---";
|
static const char *const msg = "--- Device API < 21 or no USB connection; debugging over Wi-Fi ---";
|
||||||
EditorNode::get_singleton()->get_log()->add_message(msg, EditorLog::MSG_TYPE_EDITOR);
|
EditorNode::get_singleton()->get_log()->add_message(msg, EditorLog::MSG_TYPE_EDITOR);
|
||||||
print_line(String(msg).to_upper());
|
print_line(String(msg).to_upper());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue