<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://shawnlinboy.github.io/</id><title>Shen Lin</title><subtitle>Shen Lin, aka shawnlinboy, a Developer/Vlogger/Tech unboxer/Variouser.</subtitle> <updated>2026-03-28T00:27:44+08:00</updated> <author> <name>Shen Lin</name> <uri>https://shawnlinboy.github.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://shawnlinboy.github.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://shawnlinboy.github.io/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Shen Lin </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>FAQ about aBattery</title><link href="https://shawnlinboy.github.io/posts/abattery-faq/" rel="alternate" type="text/html" title="FAQ about aBattery" /><published>2023-09-06T00:00:00+08:00</published> <updated>2026-02-28T17:20:45+08:00</updated> <id>https://shawnlinboy.github.io/posts/abattery-faq/</id> <content type="text/html" src="https://shawnlinboy.github.io/posts/abattery-faq/" /> <author> <name>Shen Lin</name> </author> <category term="aBattery" /> <summary>Last update: 2026-01-14 12:00:00 Target version: 1.0.17 📣Notice: For users running Android 16 QPR1 or above, if you continue to encounter the “Service not running” issue with Shizuku, please manually download version 13.6.0 to resolve this. ⚠️Disclaimer: aBattery has no financial or other interests in Shizuku. Q: What is aBattery? aBattery is a ready-to-use battery information view...</summary> </entry> <entry><title>使用 Cloudflare Workers 加速 Github 静态资源</title><link href="https://shawnlinboy.github.io/posts/using-cloudflare-speedup-github-assets/" rel="alternate" type="text/html" title="使用 Cloudflare Workers 加速 Github 静态资源" /><published>2023-08-25T00:00:00+08:00</published> <updated>2024-01-30T10:37:42+08:00</updated> <id>https://shawnlinboy.github.io/posts/using-cloudflare-speedup-github-assets/</id> <content type="text/html" src="https://shawnlinboy.github.io/posts/using-cloudflare-speedup-github-assets/" /> <author> <name>Shen Lin</name> </author> <category term="Web" /> <summary>今天更新一篇文章，教大家如何利用 Cloudflare Workers 搭建一个 Github 图片资源的反代。 说是反代，其实说白了就是一个简单的 url 替换，让它走一遍 Cloudflare 的 CDN。另外，除了图片，理论上所有 raw.githubusercontent.com 开头的静态资源应该都没问题。 开始之前不得不再次感慨，Cloudflare 真的是互联网公司的大善人，这一切居然是免费的。 具体步骤 打开 Cloudflare 主页，进到你要使用的域名，点击左侧的 Workers &amp;amp; Pages, 然后右边 “Create Application” 然后在创建页面点击 “Create Worker” ，下一步。 取一个你喜欢的 Name，比如我直接叫 “img”，下面的代码保持默认，然后点击 “Deploy”（不用理会下方截图上 Nam...</summary> </entry> <entry><title>aBattery Privacy Policy</title><link href="https://shawnlinboy.github.io/posts/abattery-privacy-policy/" rel="alternate" type="text/html" title="aBattery Privacy Policy" /><published>2023-08-18T00:00:00+08:00</published> <updated>2025-10-10T16:37:37+08:00</updated> <id>https://shawnlinboy.github.io/posts/abattery-privacy-policy/</id> <content type="text/html" src="https://shawnlinboy.github.io/posts/abattery-privacy-policy/" /> <author> <name>Shen Lin</name> </author> <category term="aBattery" /> <summary>aBattery Privacy Policy Last update: 2025-10-09 Shen Lin built the aBattery app as a Free app. This SERVICE is provided by Shen Lin at no cost and is intended for use as is. This page is used to inform visitors regarding my policies with the collection, use, and disclosure of personal information if anyone decides to use my Service. By using this Service, you agree to the collection and use...</summary> </entry> <entry><title>Android Telephony 模块结构简析</title><link href="https://shawnlinboy.github.io/posts/a-simple-analyse-of-android-telephony-related-modules/" rel="alternate" type="text/html" title="Android Telephony 模块结构简析" /><published>2022-07-26T00:00:00+08:00</published> <updated>2022-07-26T00:00:00+08:00</updated> <id>https://shawnlinboy.github.io/posts/a-simple-analyse-of-android-telephony-related-modules/</id> <content type="text/html" src="https://shawnlinboy.github.io/posts/a-simple-analyse-of-android-telephony-related-modules/" /> <author> <name>Shen Lin</name> </author> <category term="Android" /> <summary>本文永久链接：https://blog.linshen.me/posts/a-simple-analyse-of-android-telephony-related-modules 最近在公司被老大安排负责跟进通讯相关的一些问题，于是简单了解一下 Android 通讯相关的模块。 说实话，刚开始看的时候确实是一头雾水，因为设计的模块实在是太！多！了！要说多都还好，要命的是这些不同的模块还散落在 AOSP 的不同目录，如果不梳理记录一下，跳来跳去怎么都一头雾水，因此就有了这篇文章，我自己也好趁机梳理一下模块之间的联系。 本文基于 Android 12 源码，根据我自己的理解整理而来，如果有错误，欢迎评论区指出，毕竟这块我是新手，感谢。 主要结构 Android telephony 是一个典型的分层结构，其涉及的相关模块按照功能，从下到上，可大概分为四类： HAL 相关 ...</summary> </entry> <entry><title>由 MTK 关机闹钟实现，浅析一种低侵入式修改 framework 方案</title><link href="https://shawnlinboy.github.io/posts/how-mediatek-modify-aosp-code/" rel="alternate" type="text/html" title="由 MTK 关机闹钟实现，浅析一种低侵入式修改 framework 方案" /><published>2022-07-15T00:00:00+08:00</published> <updated>2026-02-28T17:20:45+08:00</updated> <id>https://shawnlinboy.github.io/posts/how-mediatek-modify-aosp-code/</id> <content type="text/html" src="https://shawnlinboy.github.io/posts/how-mediatek-modify-aosp-code/" /> <author> <name>Shen Lin</name> </author> <category term="Android" /> <summary>最近在修复一款 MTK 平台机器关机闹钟相关的 bug，简单了解了一下 MTK 关机闹钟的实现原理。发现相比于在 framework 里直接大动干戈，MTK 对框架的定制修改则采用了一种侵入性相对较小的方案，本文对这种方案进行了简单分析。 AlarmManger 实现关机闹钟 长期以来，AlarmManager 作为 Android 系统中掌管 Alarm 的组件，一直没有关机闹钟的原生实现。虽然站在 Google 的角度也能说得过去，毕竟不是所有的闹钟都需要在用户关机了之后再帮用户自动开机的。好在各家 SOC 厂商都会在交付给 OEM 的代码里加上各自的关机闹钟实现，原理大同小异，不在本文讨论范围。 Android 的系统服务，大部分由 XXXManager暴露给上层，并交由 XXXManagerService实现。在关机闹钟的需求中，主要涉及对如下几个类的修改： frame...</summary> </entry> </feed>
