<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Python on Blog.</title><link>https://aliveoutside.github.io/tags/python/</link><description>Recent content in Python on Blog.</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Fri, 01 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://aliveoutside.github.io/tags/python/index.xml" rel="self" type="application/rss+xml"/><item><title>Beating the 678-Byte APK on Modern Android</title><link>https://aliveoutside.github.io/posts/beating-678-byte-apk-on-modern-android/</link><pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate><guid>https://aliveoutside.github.io/posts/beating-678-byte-apk-on-modern-android/</guid><description>&lt;p&gt;There&amp;rsquo;s an old repo called &lt;a href="https://github.com/fractalwrench/ApkGolf"&gt;fractalwrench/ApkGolf&lt;/a&gt; with a &lt;code&gt;678&lt;/code&gt;-byte APK in it. For a while that was the smallest known valid Android package. The problem is that it skips &lt;code&gt;targetSdkVersion&lt;/code&gt;, which defaults to &lt;code&gt;0&lt;/code&gt;, and Android 14+ rejects that with &lt;code&gt;INSTALL_FAILED_DEPRECATED_SDK_VERSION&lt;/code&gt;. So the record holder doesn&amp;rsquo;t really install anymore unless you pass a bypass flag.&lt;/p&gt;
&lt;p&gt;I wanted to see if I could beat it anyway. I ended up writing the whole thing from scratch in Python (manifest builder, ZIP assembler, certificate generator, v2 signer) and eventually got a plain-&lt;code&gt;adb install&lt;/code&gt; build down to &lt;strong&gt;656 bytes&lt;/strong&gt; on my test device.&lt;/p&gt;</description></item></channel></rss>