Swind / pure-python-adb

This is pure-python implementation of the ADB client.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

screencap not working on waydroid

GordonGuenther opened this issue · comments

Hi,

when using waydroid with hardware acceleration screencap doesn't create readable files anymore.

The issue with waydroid and hardware acceleration is that, the native screencap in adb shell is writing out an error /vendor/etc/hwdata/amdgpu.ids: No such file or directory but still creates a valid image file. If called via ppadb there is no error thrown, just the file that has been written is not a valid image anymore. The error message is written at the start of the file instead.

I slightly adapted the example code to test this:

client = AdbClient(host='127.0.0.1', port=5037)
devices = client.devices()
device = devices[0]

response = device.shell('wm size')
print(response)

result = device.screencap()
with open("screen.png", "wb") as fp:
    fp.write(result)

As a workaround changing the cmd in the screencap method of command/transport/init.py from
cmd = "shell:/system/bin/screencap -p" to cmd = "shell:/system/bin/screencap 2>/dev/null -p"
works for me