mirror of https://github.com/Genymobile/scrcpy
Add debugging method for Android >= 11
Fixed #5346 <https://github.com/Genymobile/scrcpy/issues/5346> PR #5466 <https://github.com/Genymobile/scrcpy/pull/5466> Signed-off-by: Romain Vimont <rom@rom1v.com>
This commit is contained in:
parent
16710f36b2
commit
faa89c3b82
|
@ -213,10 +213,15 @@ execute_server(struct sc_server *server,
|
||||||
// Android < 9
|
// Android < 9
|
||||||
dbg = "-agentlib:jdwp=transport=dt_socket,suspend=y,server=y,address="
|
dbg = "-agentlib:jdwp=transport=dt_socket,suspend=y,server=y,address="
|
||||||
SERVER_DEBUGGER_PORT;
|
SERVER_DEBUGGER_PORT;
|
||||||
} else {
|
} else if (sdk_version < 30) {
|
||||||
// Android >= 9
|
// Android >= 9 && Android < 11
|
||||||
dbg = "-XjdwpProvider:internal -XjdwpOptions:transport=dt_socket,"
|
dbg = "-XjdwpProvider:internal -XjdwpOptions:transport=dt_socket,"
|
||||||
"suspend=y,server=y,address=" SERVER_DEBUGGER_PORT;
|
"suspend=y,server=y,address=" SERVER_DEBUGGER_PORT;
|
||||||
|
} else {
|
||||||
|
// Android >= 11
|
||||||
|
// Contrary to the other methods, this does not suspend on start.
|
||||||
|
// <https://github.com/Genymobile/scrcpy/pull/5466>
|
||||||
|
dbg = "-XjdwpProvider:adbconnection";
|
||||||
}
|
}
|
||||||
cmd[count++] = dbg;
|
cmd[count++] = dbg;
|
||||||
#endif
|
#endif
|
||||||
|
@ -408,10 +413,13 @@ execute_server(struct sc_server *server,
|
||||||
cmd[count++] = NULL;
|
cmd[count++] = NULL;
|
||||||
|
|
||||||
#ifdef SERVER_DEBUGGER
|
#ifdef SERVER_DEBUGGER
|
||||||
LOGI("Server debugger waiting for a client on device port "
|
LOGI("Server debugger listening on port " SERVER_DEBUGGER_PORT "...");
|
||||||
SERVER_DEBUGGER_PORT "...");
|
// For Android < 11, from the computer:
|
||||||
// From the computer, run
|
// - run `adb forward tcp:5005 tcp:5005`
|
||||||
// adb forward tcp:5005 tcp:5005
|
// For Android >= 11:
|
||||||
|
// - execute `adb jdwp` to get the jdwp port
|
||||||
|
// - run `adb forward tcp:5005 jdwp:XXXX` (replace XXXX)
|
||||||
|
//
|
||||||
// Then, from Android Studio: Run > Debug > Edit configurations...
|
// Then, from Android Studio: Run > Debug > Edit configurations...
|
||||||
// On the left, click on '+', "Remote", with:
|
// On the left, click on '+', "Remote", with:
|
||||||
// Host: localhost
|
// Host: localhost
|
||||||
|
|
|
@ -461,17 +461,29 @@ meson setup x -Dserver_debugger=true
|
||||||
meson configure x -Dserver_debugger=true
|
meson configure x -Dserver_debugger=true
|
||||||
```
|
```
|
||||||
|
|
||||||
Then recompile.
|
Then recompile, and run scrcpy.
|
||||||
|
|
||||||
When you start scrcpy, it will start a debugger on port 5005 on the device.
|
For Android < 11, it will start a debugger on port 5005 on the device and wait:
|
||||||
Redirect that port to the computer:
|
Redirect that port to the computer:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
adb forward tcp:5005 tcp:5005
|
adb forward tcp:5005 tcp:5005
|
||||||
```
|
```
|
||||||
|
|
||||||
In Android Studio, _Run_ > _Debug_ > _Edit configurations..._ On the left, click on
|
For Android >= 11, first find the listening port:
|
||||||
`+`, _Remote_, and fill the form:
|
|
||||||
|
```bash
|
||||||
|
adb jdwp
|
||||||
|
```
|
||||||
|
|
||||||
|
Then redirect that port:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
adb forward tcp:5005 jdwp:XXXX # replace XXXX
|
||||||
|
```
|
||||||
|
|
||||||
|
In Android Studio, _Run_ > _Debug_ > _Edit configurations..._ On the left, click
|
||||||
|
on `+`, _Remote_, and fill the form:
|
||||||
|
|
||||||
- Host: `localhost`
|
- Host: `localhost`
|
||||||
- Port: `5005`
|
- Port: `5005`
|
||||||
|
|
Loading…
Reference in New Issue