<feed xmlns='http://www.w3.org/2005/Atom'>
<title>android/scrcpy-android/README, branch 0.5</title>
<subtitle>[no description]</subtitle>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/'/>
<entry>
<title>docs: document verified release behavior</title>
<updated>2026-08-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-08-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=e9315ab503443a4e05ec9c9b363e73a174ef82d6'/>
<id>e9315ab503443a4e05ec9c9b363e73a174ef82d6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>test: add a screenshot capture tier</title>
<updated>2026-07-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-07-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=f6668454daaa0b5b559723b3bb685c244456247b'/>
<id>f6668454daaa0b5b559723b3bb685c244456247b</id>
<content type='text'>
The store screenshots were made by hand, so nothing kept them in step
with the UI. Add ./test screenshots, which boots a pixel_6 AVD on the
same image the e2e tier uses and overwrites the tracked PNGs.

The AVD is its own so a capture run cannot disturb the device state e2e
asserts against, and the panel comes from the device profile: forcing
geometry with wm size on a booted software-GPU emulator ANRs SystemUI
and the ANR dialog lands in the capture. SystemUI demo mode does the
same, so the status bar is left live. Each shot is rejected unless the
app owns the focused window and the PNG has the expected geometry.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The store screenshots were made by hand, so nothing kept them in step
with the UI. Add ./test screenshots, which boots a pixel_6 AVD on the
same image the e2e tier uses and overwrites the tracked PNGs.

The AVD is its own so a capture run cannot disturb the device state e2e
asserts against, and the panel comes from the device profile: forcing
geometry with wm size on a booted software-GPU emulator ANRs SystemUI
and the ANR dialog lands in the capture. SystemUI demo mode does the
same, so the status bar is left live. Each shot is rejected unless the
app owns the focused window and the PNG has the expected geometry.
</pre>
</div>
</content>
</entry>
<entry>
<title>app: enter the device address as one host:port field</title>
<updated>2026-07-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-07-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=30ee8be82e44d1a8250d1f6e27e71f7d5f24aec5'/>
<id>30ee8be82e44d1a8250d1f6e27e71f7d5f24aec5</id>
<content type='text'>
The form asked for a host, a pairing port and a connection port as three
separate fields. Nothing on screen says which port is which, and the two
are only distinguishable if the reader already knows how adb pair works
on Android 11+.

Take the connection endpoint the way the target prints it, as a single
"ip:port" string copied off the Wireless debugging screen, and leave the
pairing dialog with just its port and code. Devices.parseAddress() does
the split and rejects anything malformed rather than guessing: an
unbracketed IPv6 literal would otherwise be split at the wrong colon.

Reported on the F-Droid submission (fdroiddata!41394).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The form asked for a host, a pairing port and a connection port as three
separate fields. Nothing on screen says which port is which, and the two
are only distinguishable if the reader already knows how adb pair works
on Android 11+.

Take the connection endpoint the way the target prints it, as a single
"ip:port" string copied off the Wireless debugging screen, and leave the
pairing dialog with just its port and code. Devices.parseAddress() does
the split and rejects anything malformed rather than guessing: an
unbracketed IPv6 literal would otherwise be split at the wrong colon.

Reported on the F-Droid submission (fdroiddata!41394).
</pre>
</div>
</content>
</entry>
<entry>
<title>readme: document security and release policy</title>
<updated>2026-07-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-07-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=701788299cd1b37dfdfc22b36e83ffd85e73a5ff'/>
<id>701788299cd1b37dfdfc22b36e83ffd85e73a5ff</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>readme: document vendor/scrcpy and fastlane, fix build steps</title>
<updated>2026-07-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-07-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=bddc306de0cebde44f99b3a9c4ddba130946bef3'/>
<id>bddc306de0cebde44f99b3a9c4ddba130946bef3</id>
<content type='text'>
The layout section did not mention the scrcpy submodule (used by the
F-Droid build to compile scrcpy-server from source) or the fastlane
store metadata. The build steps told everyone to run fetch-vendor,
but the vendored tree is committed; the script is only for bumping
the pin, and running it mutates local history via git subtree.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The layout section did not mention the scrcpy submodule (used by the
F-Droid build to compile scrcpy-server from source) or the fastlane
store metadata. The build steps told everyone to run fetch-vendor,
but the vendored tree is committed; the script is only for bumping
the pin, and running it mutates local history via git subtree.
</pre>
</div>
</content>
</entry>
<entry>
<title>scrcpy-android: mirror an Android device over wireless ADB</title>
<updated>2026-06-24T19:14:50+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-01-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=eb0c8951196c637e44daf3c0617b131b997d5d2c'/>
<id>eb0c8951196c637e44daf3c0617b131b997d5d2c</id>
<content type='text'>
Native Java app for Android 12+ that mirrors another Android
device over wireless ADB, forwarding video, audio, touch input,
and clipboard. Bundles a pinned scrcpy-server.jar and the
vendored libadb-android stack. Supports h264/h265/av1 video and
raw/opus audio with in-app codec selection. No NDK, no Kotlin.
Includes JVM unit tests and a Docker-based emulator e2e rig.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Native Java app for Android 12+ that mirrors another Android
device over wireless ADB, forwarding video, audio, touch input,
and clipboard. Bundles a pinned scrcpy-server.jar and the
vendored libadb-android stack. Supports h264/h265/av1 video and
raw/opus audio with in-app codec selection. No NDK, no Kotlin.
Includes JVM unit tests and a Docker-based emulator e2e rig.
</pre>
</div>
</content>
</entry>
</feed>
