<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Android on Cyrus Yip's blog</title><link>https://cyrusyip.org/en/tags/android/</link><description>Recent content in Android on Cyrus Yip's blog</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Sat, 18 Oct 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://cyrusyip.org/en/tags/android/index.xml" rel="self" type="application/rss+xml"/><item><title>How to Enable Per-App Language Preferences for Every App</title><link>https://cyrusyip.org/en/posts/2025/10/18/enable-per-app-language-preferences/</link><pubDate>Sat, 18 Oct 2025 00:00:00 +0800</pubDate><guid>https://cyrusyip.org/en/posts/2025/10/18/enable-per-app-language-preferences/</guid><description>&lt;p&gt;Android 13 introduces &lt;a href="https://developer.android.com/guide/topics/resources/app-languages"&gt;Per-app language preferences&lt;/a&gt;, which allows you to set different languages for different apps. It is a useful feature in Android, but it&amp;rsquo;s not available for all apps. Fortunately, we can enable this feature for every app.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Enable &lt;a href="https://developer.android.com/studio/debug/dev-options"&gt;developer options&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enable USB debugging in developer options.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Connect your phone to your PC and run the following command:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb shell settings put global settings_app_locale_opt_in_enabled &lt;span class="nb"&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If the command does not work for your device&amp;rsquo;s operating system (e.g. HyperOS), try &lt;a href="https://github.com/VegaBobo/Language-Selector/releases"&gt;Language Selector&lt;/a&gt; instead.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Reference: &lt;a href="https://www.reddit.com/r/Android/comments/wrlgh2/how_to_make_every_app_appear_in_android_13s_new/"&gt;How to make every app appear in Android 13&amp;rsquo;s new per-app language settings : r/Android&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Upgrade Firmware for OnePlus Ace 3</title><link>https://cyrusyip.org/en/posts/2025/05/06/oneplus-ace3-upgrade-firmware/</link><pubDate>Tue, 06 May 2025 00:00:00 +0800</pubDate><guid>https://cyrusyip.org/en/posts/2025/05/06/oneplus-ace3-upgrade-firmware/</guid><description>&lt;p&gt;My OnePlus Ace 3 runs on PixelOS, which doesn&amp;rsquo;t include the firmware, so I need to upgrade the firmware by myself.&lt;/p&gt;
&lt;p&gt;Firmware is installed via fastboot and fastbootd, so we need to test them:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Connect the phone to the computer&lt;/li&gt;
&lt;li&gt;Press the volume-down button and power button to enter fastboot&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;fastboot devices&lt;/code&gt;, and make sure the phone is in fastboot&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;fastboot reboot fastboot&lt;/code&gt; to enter fastbootd&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;fastboot devices&lt;/code&gt;, and make sure the phone is in fastbootd&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;My phone runs on &lt;code&gt;PixelOS_aston-15.0-20250424&lt;/code&gt; with &lt;code&gt;PJE110_15.0.0.500&lt;/code&gt; firmware, and I want to upgrade the firmware to &lt;code&gt;PJE110_15.0.0.701&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Installation steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Press the volume-down button and power button to enter fastboot.&lt;/li&gt;
&lt;li&gt;Download the firmware from &lt;a href="https://github.com/inferno0230/op12r-fw-repo/releases"&gt;this link&lt;/a&gt;. I will download &lt;a href="https://github.com/inferno0230/op12r-fw-repo/releases/tag/PJE110_15.0.0.701%28CN01%29"&gt;&lt;code&gt;PJE110_15.0.0.701&lt;/code&gt;&lt;/a&gt;. Extract the file.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;install_images.sh&lt;/code&gt; on Linux/macOS, and &lt;code&gt;install_images.bat&lt;/code&gt; on Windows.&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Upgrade OnePlus Ace 3 from PixelOS 14 to PixelOS 15</title><link>https://cyrusyip.org/en/posts/2025/02/13/oneplus-ace3-from-pixelos14-to-pixelos15/</link><pubDate>Thu, 13 Feb 2025 00:00:00 +0800</pubDate><guid>https://cyrusyip.org/en/posts/2025/02/13/oneplus-ace3-from-pixelos14-to-pixelos15/</guid><description>&lt;h2 class="heading" id="required-files"&gt;
 Required files&lt;span class="heading__anchor"&gt; &lt;a href="#required-files"&gt;#&lt;/a&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://droidwin.com/download-oneplus-12r-ace-3-edl-unbrick-firmware-rom/"&gt;PJE110domestic_11_14.0.0.317CN01_2024012904340000.zip&lt;/a&gt; (Click All Packages: DOWNLOAD. Log in a Google account if you can&amp;rsquo;t download.)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://yun.daxiaamu.com/OnePlus_Roms/%E4%B8%80%E5%8A%A0OnePlus%20ACE%203/ColorOS%20PJE110_15.0.0.500%28CN01%29%20C.32/"&gt;ColorOS PJE110_15.0.0.500(CN01) C.32 全量包&lt;/a&gt; (Copy the link of 官方链接 and use aria2 or Aria2App to download the file.)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;1.3.zip&lt;/code&gt; and &lt;code&gt;prog_firehose_ddr.zip&lt;/code&gt; (Download files from &lt;a href="https://xdaforums.com/t/12r-ace-3-edl-downloadtool-to-restore-your-device-to-oxygenos-coloros.4654245/"&gt;How To Guide - [12R/Ace 3] EDL DownloadTool to restore your device to OxygenOS/ColorOS | XDA Forums&lt;/a&gt;.)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 class="heading" id="steps"&gt;
 Steps&lt;span class="heading__anchor"&gt; &lt;a href="#steps"&gt;#&lt;/a&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Backup apps and data using &lt;a href="https://github.com/XayahSuSuSu/Android-DataBackup"&gt;DataBackup&lt;/a&gt; (root required, optional step).&lt;/li&gt;
&lt;li&gt;Follow &lt;a href="https://xdaforums.com/t/12r-ace-3-edl-downloadtool-to-restore-your-device-to-oxygenos-coloros.4654245/"&gt;How To Guide - [12R/Ace 3] EDL DownloadTool to restore your device to OxygenOS/ColorOS | XDA Forums&lt;/a&gt; to flash &lt;code&gt;PJE110domestic_11_14.0.0.317CN01_2024012904340000.zip&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Flash &lt;code&gt;ColorOS PJE110_15.0.0.500&lt;/code&gt; using local install on ColorOS 14 (flash ColorOS 15 the first time). Try &lt;a href="https://xdaforums.com/t/general-local-install-issues-on-system-updater-and-how-to-fix-it.4714365/"&gt;General - General Local install issues on system updater and how to fix it | XDA Forums&lt;/a&gt; if local install is gray in the system updater.&lt;/li&gt;
&lt;li&gt;Flash &lt;code&gt;ColorOS PJE110_15.0.0.500&lt;/code&gt; using local install on ColorOS 15 (flash ColorOS 15 the second time).&lt;/li&gt;
&lt;li&gt;Flash &lt;a href="https://pixelos.net/download/aston"&gt;PixelOS 15&lt;/a&gt; following the instructions on the website.&lt;/li&gt;
&lt;li&gt;Restore data using DataBackup (optional step).&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;This post was shared on &lt;a href="https://xdaforums.com/t/upgrade-oneplus-ace-3-from-pixelos-14-to-pixelos-15.4718511/"&gt;XDA forum&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>How to install Google Play on OPPO / OnePlus / ColorOS</title><link>https://cyrusyip.org/en/posts/2024/11/15/install-google-play-on-coloros/</link><pubDate>Fri, 15 Nov 2024 00:00:00 +0800</pubDate><guid>https://cyrusyip.org/en/posts/2024/11/15/install-google-play-on-coloros/</guid><description>&lt;ol&gt;
&lt;li&gt;Enable Google Services: Open Settings, search &amp;ldquo;google&amp;rdquo;, open &amp;ldquo;Google setting&amp;rdquo;, and enable &amp;ldquo;Google Mobile Services&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Install Google Play: Open App Market, search &amp;ldquo;google play&amp;rdquo;, update &amp;ldquo;谷歌应用市场&amp;rdquo;, and Play Store will appear on the home screen after updating.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;Tested device: OnePlus Ace 3 (ColorOS 14) and OPPO Reno12 (ColorOS 14).&lt;/p&gt;</description></item><item><title>How to Enable Call Recording on Xiaomi / Redmi / HyperOS / MIUI</title><link>https://cyrusyip.org/en/posts/2023/11/27/miui-call-recording/</link><pubDate>Mon, 27 Nov 2023 00:00:00 +0800</pubDate><guid>https://cyrusyip.org/en/posts/2023/11/27/miui-call-recording/</guid><description>&lt;p&gt;This tutorial is only tested on the China versions of MIUI and HyperOS. Tested devices: Redmi K40s (MIUI 14.0.7.0.TLMCNXM), Redmi Note 12 Turbo, and Redmi Turbo 3 (HyperOS 1.0.16.0.UNPCNXM).&lt;/p&gt;
&lt;h2 class="heading" id="hyperos-guide"&gt;
 HyperOS Guide&lt;span class="heading__anchor"&gt; &lt;a href="#hyperos-guide"&gt;#&lt;/a&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;Call recording in phone:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open settings&lt;/li&gt;
&lt;li&gt;Search &amp;ldquo;call recording&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Tap &amp;ldquo;call recording (App/Other settings/Sytem app settings/Phone/Call recording)&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Enable &amp;ldquo;Record calls automatically&amp;rdquo;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Call recording in apps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open settings&lt;/li&gt;
&lt;li&gt;Search &amp;ldquo;recorder&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Tap &amp;ldquo;Recorder (Apps/Additional settings/System app settings/Recorder)&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Tap &amp;ldquo;Voice Call Recorder&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Enable &amp;ldquo;Voice Call Recorder&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Enable &amp;ldquo;Record calls automatically&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Select available apps (WeChat and QQ are supported)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 class="heading" id="miui-guide"&gt;
 MIUI Guide&lt;span class="heading__anchor"&gt; &lt;a href="#miui-guide"&gt;#&lt;/a&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;Call recording in phone: Open Settings -&amp;gt; Apps -&amp;gt; System app settings -&amp;gt; Call settings -&amp;gt; Call recording -&amp;gt; enable &amp;ldquo;Call recording notification&amp;rdquo; and &amp;ldquo;Record calls automatically&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Call recording in apps: Open Settings -&amp;gt; Apps -&amp;gt; System app settings -&amp;gt; Recorder -&amp;gt; Voice Call Recorder -&amp;gt; enable &amp;ldquo;Voice Call Recorder&amp;rdquo; and &amp;ldquo;Record calls automatically&amp;rdquo; (WeChat and QQ are supported)&lt;/p&gt;</description></item><item><title>How to Fix Banking Apps / SafetyNet / Play Integrity on LineageOS without Root</title><link>https://cyrusyip.org/en/posts/2023/10/10/lineageos-ih8sn/</link><pubDate>Tue, 10 Oct 2023 00:00:00 +0800</pubDate><guid>https://cyrusyip.org/en/posts/2023/10/10/lineageos-ih8sn/</guid><description>&lt;h2 class="heading" id="summary"&gt;
 Summary&lt;span class="heading__anchor"&gt; &lt;a href="#summary"&gt;#&lt;/a&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;Flash ih8sn provided by &lt;a href="https://github.com/althafvly/ih8sn"&gt;althafvly&lt;/a&gt; or your maintainer(s) via Lineage Recovery, and banking apps will work correctly.&lt;/p&gt;
&lt;h2 class="heading" id="explanation"&gt;
 Explanation&lt;span class="heading__anchor"&gt; &lt;a href="#explanation"&gt;#&lt;/a&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;When you use banking apps on LineageOS without root, they may show the misleading error message that your device is rooted. Banking apps actually check SafetyNet or Play Integrity, both of which are used to verify device integrity.&lt;/p&gt;
&lt;p&gt;After flashing ih8sn, LineageOS will pass those two tests, banking apps won&amp;rsquo;t complain any more, and Netflix will be available on Google Play. You can install YASNAC and Play Integrity API Checker to check. LineageOS will pass &lt;code&gt;Basic integrity&lt;/code&gt; and &lt;code&gt;CTS profile match&lt;/code&gt; on the former, &lt;code&gt;MEET_DEVICE_INTEGRITY&lt;/code&gt; and &lt;code&gt;MEET_BASIC_INTEGRITY&lt;/code&gt; on the latter.&lt;/p&gt;
&lt;p&gt;This tutorial was tested on &lt;a href="https://wiki.lineageos.org/devices/lisa/variant3/"&gt;Mi 11 LE (lisa)&lt;/a&gt; and &lt;a href="https://wiki.lineageos.org/devices/grus/"&gt;Mi 9 SE (grus)&lt;/a&gt; on LineageOS 20.&lt;/p&gt;
&lt;!--
ih8sn works on 20-20231007-NIGHTLY-lisa and 20-20231002-NIGHTLY-grus.
--&gt;
&lt;p&gt;Fun fact: ih8sn means &lt;strong&gt;I&lt;/strong&gt; &lt;strong&gt;ha&lt;/strong&gt;te &lt;strong&gt;S&lt;/strong&gt;afety&lt;strong&gt;N&lt;/strong&gt;et.&lt;/p&gt;</description></item><item><title>How to Install Google Play On Xiaomi / Redmi / HyperOS / MIUI</title><link>https://cyrusyip.org/en/posts/2023/05/05/google-play-miui/</link><pubDate>Fri, 05 May 2023 00:00:00 +0800</pubDate><guid>https://cyrusyip.org/en/posts/2023/05/05/google-play-miui/</guid><description>&lt;h2 class="heading" id="guide"&gt;
 Guide&lt;span class="heading__anchor"&gt; &lt;a href="#guide"&gt;#&lt;/a&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;China Xiaomi / Redmi phones in &lt;a href="https://support.google.com/googleplay/answer/1727131"&gt;Google Play supported devices&lt;/a&gt;&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; have built-in Google Services. We just need to install Google Play.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Turn on Google Services
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;HyperOS&lt;/strong&gt;: Settings -&amp;gt; Additional settings -&amp;gt; Account &amp;amp; sync -&amp;gt; Basic Google Services&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MIUI&lt;/strong&gt;: Settings -&amp;gt; Account &amp;amp; sync -&amp;gt; Basic Google Services&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Install Google Play: search &amp;ldquo;google play&amp;rdquo; on GetApps, and install or update &amp;ldquo;Google Play Store&amp;rdquo;. If Google Play isn&amp;rsquo;t found on GetApps, install it from &lt;a href="https://en.aptoide.com/"&gt;Aptoide&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now you should find Play Store on the home screen.&lt;/p&gt;
&lt;p&gt;This tutorial was tested on Redmi K40S, Redmi Note 12 Turbo, Redmi Turbo 3, Mi 11 LE, and Xiaomi 14.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href="https://shitao5.org/"&gt;Shitao Wu&lt;/a&gt; for testing Xiaomi 14 (HyperOS).&lt;/p&gt;
&lt;h2 class="heading" id="notice"&gt;
 Notice&lt;span class="heading__anchor"&gt; &lt;a href="#notice"&gt;#&lt;/a&gt;&lt;/span&gt;
&lt;/h2&gt;&lt;p&gt;This guide may not work for some phones. I don&amp;rsquo;t know which phones it doesn&amp;rsquo;t work for. You need to to try it by yourself.&lt;/p&gt;
&lt;p&gt;If you haven&amp;rsquo;t buy the phone you want, you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Try this guide on the phone in a Xiaomi Store.&lt;/li&gt;
&lt;li&gt;Buy a refundable phone online and try it.&lt;/li&gt;
&lt;li&gt;Search online to see if someone succeeded with the phone you want.&lt;/li&gt;
&lt;li&gt;Ask online if this guide works for the phone you want.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have already bought the phone but this guide doesn&amp;rsquo;t work for you, you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Return or sell it, and buy another one.&lt;/li&gt;
&lt;li&gt;Unlock the bootloader and flash a custom ROM bundled with Google Play (this is quite complicated for average users. If you want to try, check &lt;a href="https://xdaforums.com/"&gt;XDA Forums&lt;/a&gt; and &lt;a href="https://xiaomi.eu/community/"&gt;xiaomi.eu&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;!--
Xiaomi 14
HyperOS: 1.0.19.0.UNCCNXM

Redmi Turbo 3
HyperOS: 1.0.14.0 UNPCNXM

P.S. In my first attempt, I found no Google Play on GetApps and installed it from Aptoide. However, I find it on GetApps now. This is weird.
--&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;It&amp;rsquo;s not prerequisite. Google Play is possible to be installed on phones not in the list.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item></channel></rss>