归档
所有归档文章。
站点更新记录:文档站在往上加教程,两个小工具也顺手改了改
记录一下最近一段时间博客和文档站的更新情况,文档站开始往上加从零上手 Linux 开发环境的系列教程,两个 CLI 小工具也做了一轮小修小补。
住宅 IP 和机房 IP:为什么有些网站能认出你在用代理
同样是"换了个 IP",有的访问畅通无阻,有的却被网站直接判定为可疑流量,差别往往出在这个 IP 是住宅 IP 还是机房 IP。
VPN 和代理服务器有什么区别
VPN 和代理都能改变对外暴露的 IP,但两者在工作层级、加密方式、覆盖范围上其实差别不小,这篇把这几个概念之间的关系理清楚。
SELinux 是什么,为什么安卓关不掉也绕不开
安卓底层跑着一套叫 SELinux 的安全机制,Enforcing、Permissive 这些状态到底是什么意思,它和前面聊过的 UID 权限模型又是什么关系。
Android 权限模型简史:从安装时全给到用时才问
现在装 App 时那种"用到某个功能才弹窗要权限"的体验,并不是安卓一开始就有的设计,这篇聊聊权限模型这些年经历了怎样的转变。
APK 签名验证:换了签名的包为什么装不上去
安卓上经常见到"签名不一致,无法安装"这种报错,这篇聊聊 APK 签名机制具体在验证什么,以及它和证书、覆盖安装之间的关系。
刷入一个自定义 ROM,手机里到底发生了什么
"刷机"这两个字背后其实是好几个分区被依次替换的过程,这篇顺着 Recovery、镜像文件、分区写入这条线,把整个流程拆开讲一遍。
A/B 分区:手机系统更新为什么可以边用边装
现在的安卓设备升级系统时通常不需要长时间停机等待安装,背后靠的是 A/B 分区这套设计,这篇聊聊它具体是怎么运作的。
Bootloader 解锁到底在解锁什么
刷机前绕不开的"解锁 Bootloader"这一步,到底解锁的是什么机制,为什么厂商默认要锁上,解锁之后又会触发哪些系统层面的变化。
Root 权限到底是什么:从 su 到 Magisk
安卓上说的"root"具体指的是哪一层权限,早期的 su 授权方案和现在流行的 Magisk 分别是怎么实现的,为什么后者被称作"无系统分区修改"。
Telegram Bot 能做什么?从一个签到机器人讲起
Telegram Bot 是怎么运作的,BotFather、Bot Token、Webhook 和轮询这些概念分别是什么,普通人搭一个签到机器人大概需要哪些东西。
谷歌服务三件套与微G:安卓上没有 GMS 会怎样
安卓上说的"谷歌框架"到底指什么,GMS 缺失会造成什么影响,微G 这类开源替代方案又是怎么绕开这个问题的。
什么是 CDN?静态网站为什么都爱用它
CDN 到底解决了什么问题,边缘节点、回源、缓存命中这些概念分别是什么意思,静态站部署到 CDN 上又图什么。
命令行参数怎么设计?key:value 解析踩过的几个坑
写 shane-new-post / shane-new-doc 时在命令行参数格式上的取舍,以及布尔值解析、别名、容错这几个具体问题是怎么处理的。
npm 的 postinstall 到底在做什么?从我写的两个 CLI 讲起
借着自己写的 shane-new-post / shane-new-doc,聊聊 npm 生命周期脚本、postinstall 的运行时机,以及为什么现在很多包管理器默认要拦截它。
shane-new-doc:给 Starlight 文档站配套的脚手架
shane-new-post 的兄弟工具 shane-new-doc,专门为 Astro Starlight 文档站的目录结构和 sidebar 排序而设计。
写了个小工具 shane-new-post,让新建博客文章这件事更省心
记录一下 shane-new-post 这个 npm 小工具的来龙去脉:为什么写、能做什么、怎么装、怎么用。
自己动手搭博客:这次选型时我到底在纠结什么
从 WordPress 到静态站,记录一下这次重新搭博客时纠结过的几个问题,以及最后为什么选了 Astro。
HTTP 与 HTTPS 有什么区别?聊聊 TLS 握手那些事
HTTPS 到底比 HTTP 多做了什么,证书为什么能建立信任,握手的几个来回具体在传什么。
什么是 DNS?一次域名解析背后到底发生了什么
从在地址栏敲下一个域名开始,聊聊 DNS 递归查询、权威服务器、TTL 缓存这些概念到底是什么意思。
telegram.org下载的TG和play商店下载的TG有什么区别
官网版和Play商店版Telegram的区别与选择建议
我的第一篇文章
瞎写的 第一篇文章