<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Htc-Desire-Z on tsvinc</title>
		<link>https://tsvinc.dev/tags/htc-desire-z/</link>
		<description>Recent content in Htc-Desire-Z on tsvinc</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Sun, 11 Jan 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://tsvinc.dev/tags/htc-desire-z/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>HTC Desire Z battery tile: the SD card its launcher can&#39;t write</title>
				<link>https://tsvinc.dev/posts/118ma-fuel-gauge-tile/</link>
				<pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate>
				<guid>https://tsvinc.dev/posts/118ma-fuel-gauge-tile/</guid>
				<description>&lt;p&gt;The first builds of the logger turned the tile green and wrote nothing. The fifth place I tried to put its file worked. About thirteen hours after the first of those builds, I moved the file to the SD card on principle, and well after midnight I found it had written nothing again. The tile itself, the part with actual logic in it, took one build.&lt;/p&gt;&#xA;&lt;p&gt;The tile lives on MeshLauncher, the home screen I wrote for my HTC Desire Z, a 2010 phone on CyanogenMod 7 (Android 2.3, a community build) where I had started replacing stock apps with small ones of my own. MeshLauncher &lt;a href=&#34;https://tsvinc.dev/posts/aosp-test-keys/&#34;&gt;runs as UID 1000&lt;/a&gt;, the system user, because this build trusts the platform key it is signed with. Hold on to that UID; it is the villain. The tile shows the phone&#39;s current draw from a kernel file, &lt;code&gt;smem_text&lt;/code&gt;, which &lt;a href=&#34;https://tsvinc.dev/posts/power-monitoring-sysfs/&#34;&gt;the previous post&lt;/a&gt; takes apart. Tap it and it logs one CSV line every ten seconds. This post is the day it took to find a directory that would accept those lines.&lt;/p&gt;</description>
			</item>
			<item>
				<title>HTC Desire Z battery drain in milliamps, straight from sysfs</title>
				<link>https://tsvinc.dev/posts/power-monitoring-sysfs/</link>
				<pubDate>Sun, 19 Oct 2025 00:00:00 +0000</pubDate>
				<guid>https://tsvinc.dev/posts/power-monitoring-sysfs/</guid>
				<description>&lt;p&gt;The battery icon said 100% for the whole session, and it was telling the truth. The phone was on a USB cable and full, so 100% was the correct answer to a question I had stopped asking. The number I wanted sat one layer down. In one 70-second stretch of my log, the phone&#39;s estimated time left on a full charge went from 6.8 hours to 15.3 and the percentage did not twitch. I have a soft spot for a gauge that is accurate and useless at the same time. This one gets a place on the shelf.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Packing a battery-first kernel into an HTC Desire Z boot.img</title>
				<link>https://tsvinc.dev/posts/battery-first-kernel/</link>
				<pubDate>Thu, 07 Aug 2025 00:00:00 +0000</pubDate>
				<guid>https://tsvinc.dev/posts/battery-first-kernel/</guid>
				<description>&lt;p&gt;Before I built a kernel for my HTC Desire Z, I wrote a plan for it, and the plan was confident about the end. Build the kernel and its modules, dump the boot partition, take the image apart, swap the kernel, put it back, flash it, check the frequency table, measure idle current. The middle of that, everything between &amp;quot;dump&amp;quot; and &amp;quot;flash&amp;quot;, was a single comment line. I wrote that line. I have some notes for the man who wrote it.&lt;/p&gt;</description>
			</item>
			<item>
				<title>HTC Desire Z custom kernel killed Wi-Fi: version magic and insmod</title>
				<link>https://tsvinc.dev/posts/wifi-version-magic/</link>
				<pubDate>Fri, 30 May 2025 00:00:00 +0000</pubDate>
				<guid>https://tsvinc.dev/posts/wifi-version-magic/</guid>
				<description>&lt;p&gt;The fix, for anyone in a hurry: rebuild the Wi-Fi module from inside the kernel tree, take one &lt;code&gt;-Werror&lt;/code&gt; out of the Broadcom driver&#39;s Makefile, copy the new &lt;code&gt;bcm4329.ko&lt;/code&gt; over the old one in &lt;code&gt;/system/lib/modules&lt;/code&gt;, and reboot. On the way I also added a firmware symlink, and for a while I believed the symlink was the second half of the fix. It was the second half of a mistake I had made a few minutes earlier, and this post is mostly about how I found that out after the fact.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Desire Z undervolt: a battery kernel next to CONFIG_JESUS_PHONE</title>
				<link>https://tsvinc.dev/posts/config-jesus-phone-undervolt/</link>
				<pubDate>Mon, 21 Apr 2025 00:00:00 +0000</pubDate>
				<guid>https://tsvinc.dev/posts/config-jesus-phone-undervolt/</guid>
				<description>&lt;p&gt;The whole job, in the order it happened: twelve minutes of reading kernel source and writing a plan, a defconfig, an undervolt, three build failures, seven hours in which nobody touched it, a fourth build failure, a successful build, one &lt;code&gt;fastboot flash boot&lt;/code&gt;, and a phone that came back up on a kernel I had compiled myself. The phone is my HTC Desire Z, the 2010 keyboard slider that runs CyanogenMod 7 (Android 2.3) in this series, and that I had just told, in so many words, to put its battery ahead of everything else. Speed second. Fun, apparently, third.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Terraria on the HTC Desire Z: a DRM loop and a dead edge</title>
				<link>https://tsvinc.dev/posts/terraria-dead-zone/</link>
				<pubDate>Sat, 28 Dec 2024 00:00:00 +0000</pubDate>
				<guid>https://tsvinc.dev/posts/terraria-dead-zone/</guid>
				<description>&lt;p&gt;My thumb is on the row of hearts at the top of the screen, and nothing happens. Not a slow response, not a wrong item selected: the game behaves as if the thumb is somewhere else entirely. Tapping again, slower and with more conviction, is a debugging technique with a perfect record of not working, and it kept that record. By the end of the afternoon I had patched the game&#39;s license check three times, signed it with two different keys and swapped it for a newer build, all to arrive at a screen I could not touch.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A camera app for the HTC Desire Z, cut from 13,144 lines to 881</title>
				<link>https://tsvinc.dev/posts/meshcam-android-gingerbread/</link>
				<pubDate>Tue, 12 Nov 2024 00:00:00 +0000</pubDate>
				<guid>https://tsvinc.dev/posts/meshcam-android-gingerbread/</guid>
				<description>&lt;p&gt;The plan was a fork. Take AnonCam, an open-source camera built on the Android 2.3 camera app, delete what my phone does not need, keep the rest. What shipped is 881 lines, and the part of AnonCam still in it fits in three files, renamed and cut down. I call that a fork the way I call a house with one original doorframe a renovation: technically, and only when nobody is checking the paperwork.&lt;/p&gt;</description>
			</item>
			<item>
				<title>HTC Desire Z journal app: 8 KB that would not fit in 900 MB</title>
				<link>https://tsvinc.dev/posts/journal-app-android-gingerbread/</link>
				<pubDate>Wed, 04 Sep 2024 00:00:00 +0000</pubDate>
				<guid>https://tsvinc.dev/posts/journal-app-android-gingerbread/</guid>
				<description>&lt;p&gt;The package manager looked at an APK of 8,482 bytes, looked at a &lt;code&gt;/data&lt;/code&gt; partition that &lt;code&gt;df&lt;/code&gt; had just reported with 928,136 KB available, and answered &lt;code&gt;INSTALL_FAILED_INSUFFICIENT_STORAGE&lt;/code&gt;. I have been lied to by this phone before, Android, but rarely with the evidence printed on the same screen a few commands earlier.&lt;/p&gt;&#xA;&lt;p&gt;The phone is my HTC Desire Z, a 2010 slider with a hardware keyboard, running CyanogenMod 7 (the community build of Android 2.3); these days most of what runs on it is code I compiled myself with a Java 6 toolchain, because almost nothing current installs. This part is about one more such app: a journal that keeps one plain text file per day. Writing it took an evening. Getting the phone to accept it, test it and photograph it took the rest of that evening, and the photograph came with a correction to my own notes.&lt;/p&gt;</description>
			</item>
			<item>
				<title>HTC Desire Z bought for parts: S-OFF, SuperCID and 4202 mV</title>
				<link>https://tsvinc.dev/posts/4202-millivolts/</link>
				<pubDate>Fri, 14 Jul 2023 00:00:00 +0000</pubDate>
				<guid>https://tsvinc.dev/posts/4202-millivolts/</guid>
				<description>&lt;p&gt;It arrived as a parts phone: an HTC Desire Z, the 2010 Android slider with a four-row hardware keyboard, bought as a donor for whatever still worked. I expected a cracked digitizer and a battery swollen into a pillow. Then I plugged it in, and every question I asked it over USB came back with better news than the last. When a phone from 2010 starts doing that, I stop enjoying it and start keeping notes.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
