<feed xmlns='http://www.w3.org/2005/Atom'>
<title>android/scrcpy-android/test-rig, branch master</title>
<subtitle>[no description]</subtitle>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/'/>
<entry>
<title>test-rig: exercise release paths</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=7166ac47c58a4a8acccebb07ae9395773ad9958e'/>
<id>7166ac47c58a4a8acccebb07ae9395773ad9958e</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>build: verify release inputs</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=0f88f2c1e5e108021ccddeee24f1216107115791'/>
<id>0f88f2c1e5e108021ccddeee24f1216107115791</id>
<content type='text'>
Pin and verify what goes into a release: JitPack confined to the
SPAKE2 module via exclusiveContent, the vendored subtree pulled by
commit SHA instead of a mutable tag, a pinned Docker base digest with
a checksummed cmdline-tools download, and a verifyScrcpyServer task
wired into every assets merge. The expected server checksum can be
overridden with -PscrcpyServerSha256 when the jar is built from
source.

build-apk now requires apksigner and fails unless independent
signature verification succeeds. Split the test image into unit and
e2e targets so JVM-only test runs do not download an emulator. Ship
THIRD_PARTY_NOTICES and the LGPL text for SPAKE2 in the APK. Add
scripts/check as the host quality gate.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pin and verify what goes into a release: JitPack confined to the
SPAKE2 module via exclusiveContent, the vendored subtree pulled by
commit SHA instead of a mutable tag, a pinned Docker base digest with
a checksummed cmdline-tools download, and a verifyScrcpyServer task
wired into every assets merge. The expected server checksum can be
overridden with -PscrcpyServerSha256 when the jar is built from
source.

build-apk now requires apksigner and fails unless independent
signature verification succeeds. Split the test image into unit and
e2e targets so JVM-only test runs do not download an emulator. Ship
THIRD_PARTY_NOTICES and the LGPL text for SPAKE2 in the APK. Add
scripts/check as the host quality gate.
</pre>
</div>
</content>
</entry>
<entry>
<title>test-rig: pre-install AGP's build-tools 34 pin</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=d4250691b403a8d5837bed431d86fe8dcb12c293'/>
<id>d4250691b403a8d5837bed431d86fe8dcb12c293</id>
<content type='text'>
AGP 8.7 downloads build-tools;34.0.0 into the SDK at build time when
it is missing, which made the first test run in a fresh image reach
for the network. Bake it into the image.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
AGP 8.7 downloads build-tools;34.0.0 into the SDK at build time when
it is missing, which made the first test run in a fresh image reach
for the network. Bake it into the image.
</pre>
</div>
</content>
</entry>
<entry>
<title>treewide: correct stale comments</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=9f832c148fdd3d9d3e4673e89d2d052c2bcd1efa'/>
<id>9f832c148fdd3d9d3e4673e89d2d052c2bcd1efa</id>
<content type='text'>
- MuxRecorder claimed minSdk 35; it is 31.
- Adb claimed API 34 is the current Android max, next to
  compileSdk 35.
- Server claimed the openAbstract budget is wall-clock bounded below
  the e2e deadline; the deadline is per stream, so the worst case is
  not. Describe what actually holds instead.
- Pixhash contradicted itself about java.desktop availability.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- MuxRecorder claimed minSdk 35; it is 31.
- Adb claimed API 34 is the current Android max, next to
  compileSdk 35.
- Server claimed the openAbstract budget is wall-clock bounded below
  the e2e deadline; the deadline is per stream, so the worst case is
  not. Describe what actually holds instead.
- Pixhash contradicted itself about java.desktop availability.
</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>
