<feed xmlns='http://www.w3.org/2005/Atom'>
<title>android/rsend/rsh/build.sh, branch master</title>
<subtitle>[no description]</subtitle>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/rsend/'/>
<entry>
<title>build: pin the build host and the shipped ABIs</title>
<updated>2026-08-23T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-08-23T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/rsend/commit/?id=174521e494159bb0e65c551b440fe732767bdd6d'/>
<id>174521e494159bb0e65c551b440fe732767bdd6d</id>
<content type='text'>
The native scripts picked an NDK host tag for macOS as well, but
ci/setup-toolchain.sh provisions nothing outside Linux x86_64 and no
pipeline exercises the other branch. Fail with the message setup already
gives instead of naming a toolchain nobody can obtain here.

The armeabi-v7a and x86 cases were never reachable either: ABIS ships
arm64-v8a and x86_64, and ci/verify-apk.sh has no machine check for the
other two, so adding one to ABIS failed the build it was meant to
enable. Record what a new ABI actually costs instead of inviting a
one-line edit that cannot work.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The native scripts picked an NDK host tag for macOS as well, but
ci/setup-toolchain.sh provisions nothing outside Linux x86_64 and no
pipeline exercises the other branch. Fail with the message setup already
gives instead of naming a toolchain nobody can obtain here.

The armeabi-v7a and x86 cases were never reachable either: ABIS ships
arm64-v8a and x86_64, and ci/verify-apk.sh has no machine check for the
other two, so adding one to ABIS failed the build it was meant to
enable. Record what a new ABI actually costs instead of inviting a
one-line edit that cannot work.
</pre>
</div>
</content>
</entry>
<entry>
<title>native: harden rsync and SSH transport</title>
<updated>2026-08-16T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-08-16T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/rsend/commit/?id=beaa0c970d6c3538119b8a34a3f2f754b45e54cf'/>
<id>beaa0c970d6c3538119b8a34a3f2f754b45e54cf</id>
<content type='text'>
Update rsync to 3.5.0 and Go to 1.26.6. Bound SSH handshakes, pin
host-key types, and build 16 KB-aligned hardened executables.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update rsync to 3.5.0 and Go to 1.26.6. Bound SSH handshakes, pin
host-key types, and build 16 KB-aligned hardened executables.
</pre>
</div>
</content>
</entry>
<entry>
<title>native: pick the NDK host toolchain tag by build host</title>
<updated>2026-07-01T00:00:00+00:00</updated>
<author>
<name>jsvk</name>
<email>850037+jsvk@users.noreply.github.com</email>
</author>
<published>2026-07-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/rsend/commit/?id=977629ec3effeaeab698fcc4f42c7827c2b181ed'/>
<id>977629ec3effeaeab698fcc4f42c7827c2b181ed</id>
<content type='text'>
The NDK names its prebuilt toolchain directory after the build host,
not the target. Hardcoding linux-x86_64 broke rsync/build.sh and
rsh/build.sh on macOS, which ships the toolchain under darwin-x86_64
(x86_64 binaries, run under Rosetta on Apple Silicon). Detect the
host with uname and fail loud on anything else.

Link: https://codeberg.org/0xlena/rsend/pulls/1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The NDK names its prebuilt toolchain directory after the build host,
not the target. Hardcoding linux-x86_64 broke rsync/build.sh and
rsh/build.sh on macOS, which ships the toolchain under darwin-x86_64
(x86_64 binaries, run under Rosetta on Apple Silicon). Detect the
host with uname and fail loud on anything else.

Link: https://codeberg.org/0xlena/rsend/pulls/1
</pre>
</div>
</content>
</entry>
<entry>
<title>rsend: push phone folders to a home SSH host over rsync</title>
<updated>2026-01-01T00:00:00+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/rsend/commit/?id=7e04941bccb2683f8a6e3ee38a99c50129234dd1'/>
<id>7e04941bccb2683f8a6e3ee38a99c50129234dd1</id>
<content type='text'>
A small Android app for one-way folder backup, a KISS alternative to
Syncthing. It bundles rsync (built from pinned source via the NDK) and
a pure-Go SSH transport, both shipped in the APK as lib*.so and run from
the native library directory.

rsend pins the host key, stores the ed25519 identity Keystore-encrypted,
pushes each folder additively or as a mirror, and runs on demand or on a
WiFi-only schedule. The build is self-contained and reproducible: make
setup provisions the toolchain, make builds rsync, rsh, and the APK.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A small Android app for one-way folder backup, a KISS alternative to
Syncthing. It bundles rsync (built from pinned source via the NDK) and
a pure-Go SSH transport, both shipped in the APK as lib*.so and run from
the native library directory.

rsend pins the host key, stores the ed25519 identity Keystore-encrypted,
pushes each folder additively or as a mirror, and runs on demand or on a
WiFi-only schedule. The build is self-contained and reproducible: make
setup provisions the toolchain, make builds rsync, rsh, and the APK.
</pre>
</div>
</content>
</entry>
</feed>
