<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Some stuff &#187; Android</title>
	<atom:link href="http://blog.yhuang.org/?feed=rss2&#038;tag=android" rel="self" type="application/rss+xml" />
	<link>https://blog.yhuang.org</link>
	<description>here.</description>
	<lastBuildDate>Wed, 27 Aug 2025 08:50:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>The non-existence of Android backup and restore</title>
		<link>https://blog.yhuang.org/?p=1715</link>
		<comments>https://blog.yhuang.org/?p=1715#comments</comments>
		<pubDate>Sat, 26 Mar 2016 21:38:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[adb]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Backup software]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Google Apps]]></category>

		<guid isPermaLink="false">http://scripts.mit.edu/~zong/wpress/?p=1715</guid>
		<description><![CDATA[People change phones. They want their programs and data to show up on their new phones. Apple has solved this problem. Somehow, Google has not. As explained here, settings can be synced through Google&#8217;s sync API. It is however useless except for Google&#8217;s own apps and whoever uses their API (maybe nobody). But as far [...]]]></description>
			<content:encoded><![CDATA[<p>People change phones. They want their programs and data to show up on their new phones. <a href="https://support.apple.com/en-us/HT204184">Apple has solved this problem</a>. Somehow, Google has not. As explained <a href="https://www.slightfuture.com/blog/abysmal-android-backups">here</a>, settings can be synced through Google&#8217;s sync API. It is however useless except for Google&#8217;s own apps and whoever uses their API (maybe nobody).</p>
<p>But as far as full-system backup and restore options go, you either have to root your system and use Nandroid or Titanium to backup to the phone storage itself, or you have to rely on <em><a href="http://forum.xda-developers.com/galaxy-nexus/general/guide-phone-backup-unlock-root-t1420351">adb backup</a></em>. <a href="http://lifehacker.com/the-most-useful-things-you-can-do-with-adb-and-fastboot-1590337225">adb is Android Device Bridge</a>, something that is accessed through the Developer Mode on Android. It feels like Google has given up on this feature midway through and just left it flopping around, because it simply does not work. Although I haven&#8217;t had trouble getting backup to work (&#8216;adb backup -apk -shared -all -f [file]&#8216;), I could not get restore (&#8216;adb restore [file]&#8216;) to work automatically because of <a href="https://code.google.com/p/android/issues/detail?id=34311">this</a> bug (which incidentally is also <a href="?p=1711">obsoleted</a>).<br />
<span id="more-1715"></span><br />
It turns out you need to get into Settings->Apps and kill as many running processes as you can, and then while restore is going on, monitor through <em>adb shell</em> and <em>logcat | grep Backup</em>, and continuously <em>pm disable</em> a number of running processes including com.google.android.googlequicksearchbox, com.google.android.plus, com.google.android.music, or whatever else restore is stuck on. If you&#8217;re lucky, the restore process finally &#8220;finishes&#8221; and half of your apps and data are restored, while the rest are either not installed, or installed as some old OS-default version, including Google&#8217;s own apps like Talk, Maps, etc. on account of Google Play services not being restored. Yeah, thanks, Google!</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.yhuang.org/?feed=rss2&#038;p=1715</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Google marks bugs it doesn&#8217;t want to deal with as &#8216;obsolete&#8217;</title>
		<link>https://blog.yhuang.org/?p=1711</link>
		<comments>https://blog.yhuang.org/?p=1711#comments</comments>
		<pubDate>Sat, 26 Mar 2016 21:05:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Epistemology]]></category>
		<category><![CDATA[Existence]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Media Transfer Protocol]]></category>
		<category><![CDATA[Reddit]]></category>
		<category><![CDATA[Software bug]]></category>
		<category><![CDATA[Unreproducible]]></category>

		<guid isPermaLink="false">http://scripts.mit.edu/~zong/wpress/?p=1711</guid>
		<description><![CDATA[Apparently Google has a habit of marking bugs it doesn&#8217;t want to deal with as obsolete. According to Google&#8217;s own Life of a Bug explainer, a bug categorized as &#8220;Obsolete&#8221; means, Obsolete: Similar to Unreproducible, but with a reasonable certainty that the bug did exist in the reported version but was already fixed in a [...]]]></description>
			<content:encoded><![CDATA[<p>Apparently Google has a habit of marking bugs it doesn&#8217;t want to deal with as obsolete. According to Google&#8217;s own <a href="https://source.android.com/source/life-of-a-bug.html">Life of a Bug</a> explainer, a bug categorized as &#8220;Obsolete&#8221; means,</p>
<blockquote><p>Obsolete: Similar to Unreproducible, but with a reasonable certainty that the bug did exist in the reported version but was already fixed in a later release.</p></blockquote>
<p>&#8230;which is a lie. I give two pieces of solid evidence for why this is a lie.<br />
<span id="more-1711"></span><br />
<strong>Exhibit A.</strong> <a href="https://code.google.com/p/android/issues/detail?id=38282">An egregious bug with the Media Transfer Protocol (MTP) on Android</a> that has been <a href="http://android.stackexchange.com/questions/46315/not-all-files-are-visible-over-mtp">reproducible by hundreds, if not thousands of users</a>, on practically all Android phones, and has been reported since late 2012, and which still exists to this day in the latest Android Marshmallow, has been marked as &#8220;Obsolete&#8221; in 2014. Now you tell me if this bug is either &#8220;unreproducible&#8221; or &#8220;with a reasonable certainty &#8230; fixed in a later release&#8221;? Persistent users have filed a <a href="https://code.google.com/p/android/issues/detail?id=195362">new bug report</a> that is now &#8220;Assigned.&#8221; Let&#8217;s see what <em>life outcome</em> this <em>incarnation</em> of a bug has.</p>
<p><strong>Exhibit B.</strong> <a href="https://www.reddit.com/r/androiddev/comments/2on1fe/google_closed_11889_android_bugs_last_48_hours/">According to Reddit</a>, Google closed 11889 bugs (actually 11879) within a couple of days with the status &#8220;Obsolete&#8221; in December 2014, the above-mentioned bug among them. In comparison, the total number of bugs closed in the same period was only 11988, so this was a massive purge. Now, it is not humanly possible to evaluate nearly twelve thousand bugs in two days to determine whether &#8220;with a reasonable certainty &#8230; the bug did exist &#8230; but was already fixed.&#8221; The logical conclusion is therefore <em>nobody bothered to look at these bugs</em> and <em>nobody bothered to triage</em> when they reached potential end-of-life. Sounds like a broken bug handling system to me.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.yhuang.org/?feed=rss2&#038;p=1711</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>android dialer idiocy</title>
		<link>https://blog.yhuang.org/?p=1618</link>
		<comments>https://blog.yhuang.org/?p=1618#comments</comments>
		<pubDate>Thu, 18 Dec 2014 04:18:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[DTMF]]></category>
		<category><![CDATA[Google Voice]]></category>
		<category><![CDATA[volume]]></category>

		<guid isPermaLink="false">http://allegro.mit.edu/~zong/wpress/?p=1618</guid>
		<description><![CDATA[So on the Android dialer, if you turn down the system volume, the in-call DTMF tones are also turned down in volume. (See here &#8212; I&#8217;ve verified this.) Now guys, I know it saves a few lines of code, but WTF?]]></description>
			<content:encoded><![CDATA[<p>So on the Android dialer, if you turn down the system volume, the in-call DTMF tones are also turned down in volume. (See <a href="https://productforums.google.com/forum/#!topic/voice/WclM4MfkAFo">here</a> &#8212; I&#8217;ve verified this.) Now guys, I know it saves a few lines of code, but WTF?</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.yhuang.org/?feed=rss2&#038;p=1618</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
