<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>𝚒𝚖𝚙𝚘𝚛𝚝 { 𝘑𝘢𝘤𝘬 𝘏𝘶𝘢𝘯𝘨 } 𝚏𝚛𝚘𝚖 &apos;☘️&apos; の Blog</title><description>爱你 妲妲</description><link>https://jack-huang-2010.github.io/</link><templateTheme>Firefly</templateTheme><templateThemeVersion>6.15.2</templateThemeVersion><templateThemeUrl>https://github.com/CuteLeaf/Firefly</templateThemeUrl><lastBuildDate>2026年7月28日 01:45:39</lastBuildDate><item><title>关于我的 XP</title><link>https://jack-huang-2010.github.io/posts/About-JH-XP/</link><guid isPermaLink="true">https://jack-huang-2010.github.io/posts/About-JH-XP/</guid><description>老大！已经接国家电网、南方电网、三峡大坝、白鹤滩水电站、乌东德水电站、溪洛渡水电站、向家坝水电站、大亚湾核电站、秦山核电站、华能/大唐/国电投/华电、特高压直流电、高压电塔、220V 家用电、380V 工业电、高压开关柜、变压器、换流站、光伏电站、风电场，再接特斯拉线圈、范德格拉夫起电机、等离子球、静电发生器、高压电棍、杨永信电疗仪、手摇发电机、发电自行车、一万毫安充电宝、十万毫安充电宝、摩擦起电，再接御坂美琴（炮姐）、御坂网络、皮卡丘、十万伏特/百万伏特/亿伏特、艾尼路（响雷果实）、雷影·艾、佐助/卡卡西（雷切/千鸟）、雷之呼吸、雷姆，再接艾雷王、杰顿、雷德王、银河奥特曼、维克特利、泽塔奥特曼、赛罗奥特曼、雷布朗多星人、假面骑士 01、假面骑士 Blades，再接我的世界引雷三叉戟、闪电苦力怕、避雷针、工业模组发电机，原神雷电将军、北斗、菲谢尔、赛诺、雷元素/感电/超载，王者荣耀司空震、司马懿、闪电匕首（电刀），宝可梦闪电鸟、雷伊布、捷拉奥拉、雷吉艾勒奇、电击魔兽，再接雷电法王瑞兹、凯南、泰拉瑞亚雷云法杖、apex 电妹，再接雷公电母、雷震子、宙斯、雷神托尔、雷神之锤、九天应元雷声普化天尊、闪电侠，最后接总电闸、插排、空气开关、漏电保护器、火线零线地线、全屋通电，全线满电接通！</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><content:encoded>本文已加密保护，请访问网站查看。</content:encoded></item><item><title>୧⍤⃝ WeKit Document ☃</title><link>https://jack-huang-2010.github.io/posts/WeKit-Doc/</link><guid isPermaLink="true">https://jack-huang-2010.github.io/posts/WeKit-Doc/</guid><description>୧⍤⃝ WeKit Document ☃</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;本页面内某些内容可能需要代理才能正常访问&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;提问请按照 &lt;a href=&quot;#%E6%8F%90%E9%97%AE%E7%9A%84%E8%89%BA%E6%9C%AF--%EF%B8%8F-fbi-warning-%EF%B8%8F%E4%B8%8D%E7%9C%8B%E9%B8%A1%E6%8A%8A%E7%9F%AD-10cm-%EF%B8%8F-fbi-warning-%EF%B8%8F&quot;&gt;&lt;strong&gt;提问的艺术&lt;/strong&gt;&lt;/a&gt; 准备好一些必要的材料 免得开发者追着你问日志
有问题🉑先查看 &lt;a href=&quot;#%E4%B8%80%E4%BA%9B%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98-qa&quot;&gt;一些常见问题 &lt;strong&gt;&lt;code&gt;(Q&amp;amp;A)&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; 也许能回答你一些疑惑&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;section&gt;&lt;h1&gt;🪨 &lt;strong&gt;A Stone Badge &amp;amp; 不死图腾&lt;/strong&gt;&lt;a href=&quot;#a-stone-badge--不死图腾&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://stone.professorlee.work/api/stone/Jack-Huang-2020/Blog&quot; alt=&quot;没错这个石墩子除了浪费你 5 MiB 流量外毫无作用 石墩子指向本博客的 Github 仓库 项目🔗： https://github.com/professor-lee/StoneBadge&quot; /&gt;&lt;figcaption&gt;没错这个石墩子除了浪费你 5 MiB 流量外毫无作用 石墩子指向本博客的 Github 仓库 项目🔗： https://github.com/professor-lee/StoneBadge&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟫🟫🟫🟫🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟨🟨🟨🟨🟨🟨🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟨🟨🟨🟨🟨🟨🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟧🟧🟨🟨🟧🟧🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫⬜🟩🟧🟧⬜️🟩🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟩🟩🟨🟨🟩🟩🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟧🟧🟨🟨🟧🟧🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;🟫🟫🟫🟫🟫🟧🟨🟨🟧🟫🟫🟫🟫🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;🟫🟨🟧🟫🟨🟨🟧🟧🟨🟧🟫🟧🟨🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;🟫🟫🟫🟨🟨🟨🟨🟨🟧🟧🟫🟫🟫🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟨🟧🟧🟧🟧🟨🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟫🟫🟫🟫🟫🟫🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟨🟧🟧🟧🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟨🟧🟧🟨🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟫🟫🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;展开&lt;/span&gt;&lt;span&gt;收起&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;提问的艺术&lt;a href=&quot;#提问的艺术&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;section&gt;&lt;h2&gt;❎ 错误的提问方式 ❎&lt;a href=&quot;#错误的提问方式-&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;请不要这样提问 错误的提问方式将使开发者无法解答你的问题&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;xxx 怎么搞/激活啊&lt;/p&gt;&lt;p&gt;xxx 为什么不能用啊&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;😅&quot; loading=&quot;lazy&quot; width=&quot;1000&quot; height=&quot;990&quot; src=&quot;/_astro/cnm.DsEUruU6_A17g2.webp&quot; /&gt;&lt;figcaption&gt;😅&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Important&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;进群前请确保你有一定的玩机基础 不然将会使沟通成为一场灾难&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;灾难&quot; loading=&quot;lazy&quot; width=&quot;512&quot; height=&quot;316&quot; src=&quot;/_astro/%E7%81%BE%E9%9A%BE.DmdBpcxw_ZSnrU6.webp&quot; /&gt;&lt;figcaption&gt;灾难&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;✅ 正确的提问方式 ✅&lt;a href=&quot;#正确的提问方式-&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;问题：&lt;code&gt;xxx？&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;环境：&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Root 方式&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Magisk /KernelSU /Apatch&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;微信版本&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;8.0.xx&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;API 版本&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;100 及更低/101/102&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Xposed API 调用保护&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;未启用/已启用&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Dex 优化器包装&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;支持/不支持&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;框架版本&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;xxx-it/irena/别的分支 (xxxx)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;管理器包名&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;com.android.shell/org.lsposed.manager&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;22&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;系统版本&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;23&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;xx (API xx)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;24&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;25&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;设备&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;26&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;xxx&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;27&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;28&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;系统架构&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;29&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;x86-64/arm64-v7a/v8a/v8a (4K)/risc-v&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;展开&lt;/span&gt;&lt;span&gt;收起&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;给新手的小提示&lt;/p&gt;&lt;p&gt;在 LSPosed 主界面长按即可复制设备信息&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;LSPosed&quot; loading=&quot;lazy&quot; width=&quot;1075&quot; height=&quot;2393&quot; src=&quot;/_astro/LSPosed.5qduhAew_R4VCt.webp&quot; /&gt;&lt;figcaption&gt;LSPosed&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;微信版本在 &lt;strong&gt;&lt;code&gt;微信设置&lt;/code&gt; ➡️ &lt;code&gt;关于&lt;/code&gt;&lt;/strong&gt; 里看&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;记得补充你的 Root 方式和微信版本号&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;ul&gt;
&lt;li&gt;日志：&lt;code&gt;xxx.zip&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;一些常见问题 &lt;strong&gt;&lt;code&gt;(Q&amp;amp;A)&lt;/code&gt;&lt;/strong&gt;&lt;a href=&quot;#一些常见问题-qa&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;section&gt;&lt;h4&gt;1. 免 Root 能不能用？&lt;a href=&quot;#1-免-root-能不能用&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Important&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; 请&lt;strong&gt;不要使用 LSPatch、NPatch 等工具嵌入模块到微信&lt;/strong&gt; &lt;em&gt;&lt;strong&gt;除非你想被张小龙秒封！&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;由于太多&lt;em&gt;煞笔&lt;/em&gt;拿着开源的项目重新套层皮就上架售卖了 加之群内大部分人有 Root 遂开发者已停止对嵌入模块的支持&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;还有的话我想到再补吧 妈妈的 累死劳资了&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;安装、激活教程&lt;a href=&quot;#安装激活教程&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;section&gt;&lt;h2&gt;PART 1️⃣ LSPosed 的安装&lt;a href=&quot;#part-1️⃣lsposed-的安装&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Important&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;此教程只针对 KernelSU 及其分支撰写 不保证 Magisk 以及 Apatch 用户跟随本教程一定能用上此模块&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;section&gt;&lt;h3&gt;Step 1️⃣ 确保你的📱已经获取了 Root 权限&lt;a href=&quot;#step-1️⃣确保你的已经获取了-root-权限&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;如果你通过小米机型&lt;a href=&quot;https://share.google/aimode/Lfi89lWdLXxOh0zVE&quot; target=&quot;_blank&quot;&gt;越狱&lt;/a&gt;的半残废 Root 或者魅族的官方半残废 Root 使用 LSPosed 则可以忽略上一条&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;figure&gt;&lt;img alt=&quot;KernelSU Next&quot; loading=&quot;lazy&quot; width=&quot;1075&quot; height=&quot;2393&quot; src=&quot;/_astro/KernelSU%20Next.CDML0rDa_HlpEp.webp&quot; /&gt;&lt;figcaption&gt;KernelSU Next&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;Step 2️⃣ 下载 Zygisk 实现模块 &lt;a href=&quot;https://github.com/PerformanC/ReZygisk&quot; target=&quot;_blank&quot;&gt;ReZygisk&lt;/a&gt; 或者 &lt;a href=&quot;https://github.com/Dr-TSNG/ZygiskNext&quot; target=&quot;_blank&quot;&gt;ZygiskNext&lt;/a&gt;并刷入&lt;a href=&quot;#step-2️⃣下载-zygisk-实现模块-rezygisk-或者-zygisknext并刷入&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;a href=&quot;https://github.com/PerformanC/ReZygisk&quot; target=&quot;_blank&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;PerformanC&lt;/div&gt;&lt;/div&gt;&lt;div&gt;/&lt;/div&gt;&lt;div&gt;ReZygisk&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Waiting for api.github.com...&lt;/div&gt;&lt;div&gt;&lt;div&gt;00K&lt;/div&gt;&lt;div&gt;0K&lt;/div&gt;&lt;div&gt;0K&lt;/div&gt;&lt;span&gt;Waiting...&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/Dr-TSNG/ZygiskNext&quot; target=&quot;_blank&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Dr-TSNG&lt;/div&gt;&lt;/div&gt;&lt;div&gt;/&lt;/div&gt;&lt;div&gt;ZygiskNext&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Waiting for api.github.com...&lt;/div&gt;&lt;div&gt;&lt;div&gt;00K&lt;/div&gt;&lt;div&gt;0K&lt;/div&gt;&lt;div&gt;0K&lt;/div&gt;&lt;span&gt;Waiting...&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;em&gt;至于为什么有两个模块这件事么……是这样的： &lt;a href=&quot;https://github.com/Dr-TSNG/ZygiskNext&quot; target=&quot;_blank&quot;&gt;https://github.com/Dr-TSNG/ZygiskNext&lt;/a&gt; 一段时间前停止了开源 然后就有人搞了个开源的 &lt;a href=&quot;https://github.com/PerformanC/ReZygisk&quot; target=&quot;_blank&quot;&gt;https://github.com/PerformanC/ReZygisk&lt;/a&gt; 出来
从安全性的角度 本人更建议 &lt;a href=&quot;https://github.com/PerformanC/ReZygisk&quot; target=&quot;_blank&quot;&gt;https://github.com/PerformanC/ReZygisk&lt;/a&gt; 毕竟闭源的模块的安全性么……这就全看模块作者良心了
但是吧 &lt;a href=&quot;https://github.com/PerformanC/ReZygisk&quot; target=&quot;_blank&quot;&gt;https://github.com/PerformanC/ReZygisk&lt;/a&gt; 这模块也是刚刚出来的 稳定性这块还是差一点的（虽然本人目前用着也没发现大问题）所以你自己取舍吧&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;Step 3️⃣ 下载  并且刷入&lt;a href=&quot;#step-3️⃣下载--并且刷入&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;有两种方法下载 LSPosed:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;访问 &lt;a href=&quot;https://lsposed.zip&quot; target=&quot;_blank&quot;&gt;lsposed.zip&lt;/a&gt; 直接下载&lt;/li&gt;
&lt;li&gt;如果无法访问 可加入 &lt;a href=&quot;https://t.me/LSPosed&quot; target=&quot;_blank&quot;&gt;tg@lsposed&lt;/a&gt; 到群组内下载&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Important&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;自 2024年4月26日 LSPosed 恢复更新起 LSPosed 不再开源并且进行内部测试制 并且不再分发于 Github 上 用户必须进入 &lt;strong&gt;&lt;a href=&quot;https://t.me/LSPosed&quot; target=&quot;_blank&quot;&gt;https://t.me/LSPosed&lt;/a&gt; 群组&lt;/strong&gt; 获取稳定版更新 而想要内测版用户则需要申请进入 &lt;code&gt;LSPosed Internal Test&lt;/code&gt; 内测群组 详情见 ⬇️&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;内测开始&quot; loading=&quot;lazy&quot; width=&quot;338&quot; height=&quot;512&quot; src=&quot;/_astro/%E5%86%85%E6%B5%8B%E5%BC%80%E5%A7%8B.UFLGfgAA_46LtX.webp&quot; /&gt;&lt;figcaption&gt;内测开始&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;在此加入 LSPosed 频道 ⬇️&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://t.me/LSPosed&quot; target=&quot;_blank&quot;&gt;LSPosed&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;@lsposed&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;1966&quot; src=&quot;/_astro/@lsposed.BrxAhEbU_1zfSWN.webp&quot; /&gt;&lt;figcaption&gt;@lsposed&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;内测群进群方式&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;🔗 在此 自己想办法解决吧&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;                                                &lt;/span&gt;&lt;span&gt;echo&lt;/span&gt;&lt;span&gt; aHR0cHM6Ly90Lm1lLytOZkh6dGZ5TkJaczJaRGxs | &lt;/span&gt;&lt;span&gt;base64&lt;/span&gt;&lt;span&gt; -d&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Important&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;WeKit 每次发版会发 &lt;code&gt;legacy&lt;/code&gt; 版本和 &lt;code&gt;standard&lt;/code&gt; 版本（也就是 &lt;code&gt;api101&lt;/code&gt; 版本） 强烈建议你根据上面的教程更新 LSPosed 至 API102 以防止出一些奇奇怪怪的问题&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;给新手的小提示
你可以在 LSPosed 主界面查看 LSPosed API 及 LSPosed 版本
&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;LSPosed&quot; loading=&quot;lazy&quot; width=&quot;1075&quot; height=&quot;2393&quot; src=&quot;/_astro/LSPosed.5qduhAew_R4VCt.webp&quot; /&gt;&lt;figcaption&gt;LSPosed&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;给新手的小提示：
你可以从 LSPosed 的压缩包里提取出 &lt;strong&gt;&lt;code&gt;manager.apk&lt;/code&gt;&lt;/strong&gt; 并安装 这样你的 LSPosed 就不再寄生在 &lt;code&gt;Shell&lt;/code&gt; 里了 可以常驻在后台
&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;manager.apk&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;913&quot; src=&quot;/_astro/manager.apk.Bh75_Frd_iUjwu.webp&quot; /&gt;&lt;figcaption&gt;manager.apk&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;PART 2️⃣ WeKit 的安装与激活&lt;a href=&quot;#part-2️⃣wekit-的安装与激活&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;Step 1️⃣ 获取最新版  Wekit&lt;a href=&quot;#step-1️⃣获取最新版--wekit&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;section&gt;&lt;h4&gt;方法 1️⃣ 加入 &lt;a href=&quot;https://t.me/+4XsfR-SWAtk1NGRl&quot; target=&quot;_blank&quot;&gt;Wekit Telegram 超级群组&lt;/a&gt; 获取最新版  Wekit&lt;a href=&quot;#方法-1️⃣-加入-wekit-telegram-超级群组-获取最新版--wekit&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;&lt;a href=&quot;https://t.me/+4XsfR-SWAtk1NGRl&quot; target=&quot;_blank&quot;&gt;点击加入 Telegram 超级群组&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;方法 2️⃣ 到 &lt;a href=&quot;https://github.com/Ujhhgtg/WeKit/actions/workflows/ci.yml&quot; target=&quot;_blank&quot;&gt;Github Action&lt;/a&gt; 下载最新版  Wekit&lt;a href=&quot;#方法-2️⃣-到-github-action-下载最新版--wekit&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Ujhhgtg/WeKit/actions/workflows/ci.yml&quot; target=&quot;_blank&quot;&gt;点此进入 Github Action&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;把浏览器 UA 调整成 PC&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;也就是什么 &lt;code&gt;电脑模式&lt;/code&gt; &lt;code&gt;桌面模式&lt;/code&gt; 之类的模式&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;找到最新 &lt;code&gt;master&lt;/code&gt; 分支的 Action Runner 戳进去&lt;/li&gt;
&lt;/ol&gt;&lt;ul&gt;
&lt;li&gt;&lt;figure&gt;&lt;img alt=&quot;Github Action&quot; loading=&quot;lazy&quot; width=&quot;1692&quot; height=&quot;912&quot; src=&quot;/_astro/Action.I-PEEUfS_L2EHH.webp&quot; /&gt;&lt;figcaption&gt;Github Action&lt;/figcaption&gt;&lt;/figure&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;ol&gt;
&lt;li&gt;页面滑到底 戳 &lt;code&gt;wekit-apk&lt;/code&gt; 旁边的下载按钮&lt;/li&gt;
&lt;li&gt;&lt;figure&gt;&lt;img alt=&quot;Download&quot; loading=&quot;lazy&quot; width=&quot;1686&quot; height=&quot;907&quot; src=&quot;/_astro/Download.D6DhSB0R_1ODUCw.webp&quot; /&gt;&lt;figcaption&gt;Download&lt;/figcaption&gt;&lt;/figure&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;Step 2️⃣ 安装  WeKit 并在 LSPosed 里激活  WeKit&lt;a href=&quot;#step-2️⃣安装--wekit-并在-lsposed-里激活--wekit&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;安装&lt;/li&gt;
&lt;li&gt;[grid]&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;Install&quot; loading=&quot;lazy&quot; width=&quot;1344&quot; height=&quot;2798&quot; src=&quot;/_astro/Install.DFpcBx-i_1gpFRp.webp&quot; /&gt;&lt;figcaption&gt;Install&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;LSPosed 主页 ➡️ 模块 ➡️ WeKit（可能在下面）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;WeKit ➡️ 启用模块 ➡️ 勾选微信 ➡️ 长按微信 ➡️ 强行停止 ➡️ 确认 ➡️ 启动&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;打开微信 ➡️ 我的 ➡️ 设置 ➡️ WeKit ➡️ Enjoy!&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;Enable&quot; loading=&quot;lazy&quot; width=&quot;1344&quot; height=&quot;2759&quot; src=&quot;/_astro/Enable.ahN4wnTH_Z1ha8aG.webp&quot; /&gt;&lt;figcaption&gt;Enable&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;About us&lt;a href=&quot;#about-us&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;** WeKit 是一个功能丰富的微信 Xposed 模块，提供大量微信增强功能，涵盖聊天体验、界面美化、隐私保护、自动化等多个方面。 **&lt;/p&gt;&lt;section&gt;&lt;h2&gt;特色功能&lt;a href=&quot;#特色功能&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;基于 JavaScript 和 &lt;em&gt;&lt;a href=&quot;https://github.com/HdShare/WAuxiliary_Public&quot; target=&quot;_blank&quot;&gt;WAuxiliary&lt;/a&gt;&lt;/em&gt; Jvav 的脚本引擎&lt;/li&gt;
&lt;li&gt;贴纸包同步 (Telegram Stickers Sync)&lt;/li&gt;
&lt;li&gt;通知进化 (&lt;code&gt;MessagingStyle&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Markdown 消息渲染&lt;/li&gt;
&lt;li&gt;指纹支付 (基于 TEE 的安全加密)&lt;/li&gt;
&lt;li&gt;自动抢红包&lt;/li&gt;
&lt;li&gt;单向删除好友检测&lt;/li&gt;
&lt;li&gt;发送 SILK/MP3 语音&lt;/li&gt;
&lt;li&gt;聊天工具栏&lt;/li&gt;
&lt;li&gt;发送卡片消息&lt;/li&gt;
&lt;li&gt;原生 Hook&lt;/li&gt;
&lt;li&gt;支持免 Root 框架&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/Ujhhgtg/WeKit/actions/workflows/ci.yml&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure&gt;&lt;a href=&quot;https://github.com/Ujhhgtg/WeKit/actions/workflows/ci.yml&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://github.com/Ujhhgtg/WeKit/actions/workflows/ci.yml/badge.svg&quot; alt=&quot;CI 状态&quot; /&gt;&lt;figcaption&gt;CI 状态&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;section&gt;&lt;h3&gt;致谢&lt;a href=&quot;#致谢&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/cwuom/WeKit&quot; target=&quot;_blank&quot;&gt;WeKit 上游&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/HdShare/WAuxiliary_Public&quot; target=&quot;_blank&quot;&gt;WAuxiliary&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/dartcv/NewMiko/blob/archives/&quot; target=&quot;_blank&quot;&gt;NewMiko&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/cinit/QAuxiliary&quot; target=&quot;_blank&quot;&gt;QAuxiliary&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/eritpchy/FingerprintPay&quot; target=&quot;_blank&quot;&gt;FingerprintPay&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/Ujhhgtg/wauxv_deobf_new&quot; target=&quot;_blank&quot;&gt;WADN&lt;/a&gt; &lt;a href=&quot;https://github.com/Ujhhgtg/wauxv_deobf&quot; target=&quot;_blank&quot;&gt;WAD&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;/section&gt;</content:encoded></item><item><title>୧⍤⃝ NewMiko Document ☃</title><link>https://jack-huang-2010.github.io/posts/Miko-Doc/</link><guid isPermaLink="true">https://jack-huang-2010.github.io/posts/Miko-Doc/</guid><description>୧⍤⃝ NewMiko Document ☃</description><pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;因为太他妈多神人来问我一些神仙问题了 所以在此统一回答一下 顺手把安装教程也写了&lt;/strong&gt;&lt;/em&gt;
有问题请先查看 &lt;a href=&quot;#%E4%B8%80%E4%BA%9B%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98-qa&quot;&gt;一些常见问题 &lt;strong&gt;&lt;code&gt;(Q&amp;amp;A)&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; 不要什么傻逼问题都在群里问！&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Important&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;提问请严格按照 &lt;a href=&quot;#%E6%8F%90%E9%97%AE%E7%9A%84%E8%89%BA%E6%9C%AF--%EF%B8%8F-fbi-warning-%EF%B8%8F%E4%B8%8D%E7%9C%8B%E9%B8%A1%E6%8A%8A%E7%9F%AD-10cm-%EF%B8%8F-fbi-warning-%EF%B8%8F&quot;&gt;&lt;strong&gt;‼️ FBI WARNING ‼️ 不看鸡把短 10CM~ ‼️ FBI WARNING ‼️&lt;/strong&gt;&lt;/a&gt; 章节的格式 &lt;strong&gt;不然秒踢&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;section&gt;&lt;h1&gt;🪨 &lt;strong&gt;A Stone Badge &amp;amp; 不死图腾&lt;/strong&gt;&lt;a href=&quot;#a-stone-badge--不死图腾&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://stone.professorlee.work/api/stone/theovilardo/PixelPlayer&quot; alt=&quot;没错这个石墩子除了浪费你 5 MiB 流量外毫无作用 石墩子指向这个项目： https://github.com/theovilardo/PixelPlayer 项目🔗： https://github.com/professor-lee/StoneBadge&quot; /&gt;&lt;figcaption&gt;没错这个石墩子除了浪费你 5 MiB 流量外毫无作用 石墩子指向这个项目： https://github.com/theovilardo/PixelPlayer 项目🔗： https://github.com/professor-lee/StoneBadge&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟫🟫🟫🟫🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟨🟨🟨🟨🟨🟨🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟨🟨🟨🟨🟨🟨🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟧🟧🟨🟨🟧🟧🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫⬜🟩🟧🟧⬜️🟩🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟩🟩🟨🟨🟩🟩🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟧🟧🟨🟨🟧🟧🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;🟫🟫🟫🟫🟫🟧🟨🟨🟧🟫🟫🟫🟫🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;🟫🟨🟧🟫🟨🟨🟧🟧🟨🟧🟫🟧🟨🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;🟫🟫🟫🟨🟨🟨🟨🟨🟧🟧🟫🟫🟫🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟨🟧🟧🟧🟧🟨🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟫🟫🟫🟫🟫🟫🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟨🟧🟧🟧🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟨🟧🟧🟨🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span&gt;🟫🟫🟫🟫&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;展开&lt;/span&gt;&lt;span&gt;收起&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;提问的艺术  &lt;strong&gt;‼️ FBI WARNING ‼️ 不看鸡把短 10CM~ ‼️ FBI WARNING ‼️&lt;/strong&gt;&lt;a href=&quot;#提问的艺术--️-fbi-warning-️不看鸡把短-10cm-️-fbi-warning-️&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Important&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;首先的首先 最重要的是 不要随便什么问题都跑到群里去问 不要随便浪费人家群友的时间问这些文档里都有的&lt;em&gt;&lt;strong&gt;智弱&lt;/strong&gt;&lt;/em&gt;问题了 确保你问的问题文档里没有再去群里问&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;section&gt;&lt;h2&gt;❎ 错误的提问方式 ❎&lt;a href=&quot;#错误的提问方式-&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;xxx 怎么搞/激活啊&lt;/p&gt;&lt;p&gt;xxx 为什么不能用啊&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;cnm&quot; loading=&quot;lazy&quot; width=&quot;1000&quot; height=&quot;990&quot; src=&quot;/_astro/cnm.DsEUruU6_A17g2.webp&quot; /&gt;&lt;figcaption&gt;cnm&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;✅ 正确的提问方式 ✅&lt;a href=&quot;#正确的提问方式-&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;问题：&lt;code&gt;xxx？&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;环境 &lt;strong&gt;（这是最重要的 一眼就可以让人知道这个问题是否值得回答以及问题的根源）&lt;/strong&gt;：&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Root 方式&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Magisk /KernelSU /Apatch&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;微信版本&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;8.0.xx&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;API 版本&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;100 及更低/101/102&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Xposed API 调用保护&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;未启用/已启用&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Dex 优化器包装&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;支持/不支持&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;框架版本&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;xxx-it/irena/别的分支 (xxxx)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;管理器包名&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;com.android.shell/org.lsposed.manager&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;22&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;系统版本&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;23&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;xx (API xx)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;24&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;25&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;设备&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;26&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;xxx&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;27&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;28&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;系统架构&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;29&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;x86-64/arm64-v7a/v8a/v8a (4K)/risc-v&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;展开&lt;/span&gt;&lt;span&gt;收起&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;给新手的小提示&lt;/p&gt;&lt;p&gt;在 LSPosed 主界面长按即可复制设备信息&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;LSPosed&quot; loading=&quot;lazy&quot; width=&quot;1075&quot; height=&quot;2393&quot; src=&quot;/_astro/LSPosed.5qduhAew_R4VCt.webp&quot; /&gt;&lt;figcaption&gt;LSPosed&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;微信版本在 &lt;strong&gt;&lt;code&gt;微信设置&lt;/code&gt; ➡️ &lt;code&gt;关于&lt;/code&gt;&lt;/strong&gt; 里看&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;记得补充你的 Root 方式和微信版本号&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;ul&gt;
&lt;li&gt;日志：&lt;code&gt;xxx.zip&lt;/code&gt; &lt;em&gt;&lt;strong&gt;（有最好 没有也罢）&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;一些常见问题 &lt;strong&gt;&lt;code&gt;(Q&amp;amp;A)&lt;/code&gt;&lt;/strong&gt;&lt;a href=&quot;#一些常见问题-qa&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;section&gt;&lt;h4&gt;1. Q: 打开微信卡第一屏然后闪退？&lt;a href=&quot;#1-q-打开微信卡第一屏然后闪退&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;像这样：&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;WeChat Crashed 1&quot; loading=&quot;lazy&quot; width=&quot;398&quot; height=&quot;817&quot; src=&quot;/_astro/WeChat%20Crashed%201.GFkkqkZT_sKVSI.webp&quot; /&gt;&lt;figcaption&gt;WeChat Crashed 1&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;WeChat Crashed 2.png&quot; loading=&quot;lazy&quot; width=&quot;582&quot; height=&quot;1280&quot; src=&quot;/_astro/WeChat%20Crashed%202.png.bWVldi66_2wUfU3.webp&quot; /&gt;&lt;figcaption&gt;WeChat Crashed 2.png&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;A: 你的 LSPosed 肯定还在 1.9.x 版本 请按照 &lt;a href=&quot;%E0%AD%A7%E2%8D%A4%E2%83%9D%20NewMiko%20Document%20%E2%98%83%2034c73d337a7d80b28a14d3829cf07b7d.md&quot;&gt;PART 1️⃣ LSPosed 的安装&lt;/a&gt; 更新你的 LSPosed&lt;/strong&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;2. Q: 打开微信设置闪退？&lt;a href=&quot;#2-q-打开微信设置闪退&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;A: 请按照 &lt;a href=&quot;%E0%AD%A7%E2%8D%A4%E2%83%9D%20NewMiko%20Document%20%E2%98%83%2034c73d337a7d80b28a14d3829cf07b7d.md&quot;&gt;Step 1️⃣ 加入 https://t.me/MikoCIBuilds 频道获取最新版 NewMiko&lt;/a&gt; 章节 更新你的 NewMiko 由于之前的某个版本由于不适配微信 &lt;code&gt;8.0.70&lt;/code&gt; 版本 导致微信在 &lt;code&gt;8.0.70&lt;/code&gt; 版本打开设置闪退&lt;/strong&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;3. Q: 免 Root 能不能用？&lt;a href=&quot;#3-q-免-root-能不能用&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Important&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; 请&lt;strong&gt;不要使用&lt;/strong&gt; &lt;strong&gt;LSPatch&lt;/strong&gt;（俗称 &lt;em&gt;&lt;strong&gt;免 Root&lt;/strong&gt;&lt;/em&gt;、&lt;em&gt;&lt;strong&gt;嵌入模块&lt;/strong&gt;&lt;/em&gt;） &lt;em&gt;&lt;strong&gt;除非你想被张小龙秒封！&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;4. Q: 已成功激活  NewMiko 并且功能正常 但是 app 里显示 未激活 ？&lt;a href=&quot;#4-q-已成功激活--newmiko-并且功能正常-但是-app-里显示-未激活-&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A: 小明留给我们的陈年老 Bug 无视即可 在&lt;/strong&gt; &lt;strong&gt;LSPosed &lt;code&gt;2.0.0&lt;/code&gt; 及以上版本会出现&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;Bug&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;1022&quot; src=&quot;/_astro/Bug.C7QQcOkg_Z2kR3pM.webp&quot; /&gt;&lt;figcaption&gt;Bug&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;给新手的小提示：
在 LSPosed 设置里 &lt;strong&gt;关闭&lt;/strong&gt; &lt;code&gt;**强制显示桌面图标**&lt;/code&gt; 功能并 &lt;strong&gt;重启你的📱&lt;/strong&gt;
打开 &lt;code&gt;NewMiko&lt;/code&gt; app ➡️ &lt;code&gt;更多设置&lt;/code&gt; ➡️ 打开 &lt;strong&gt;&lt;code&gt;隐藏桌面图标&lt;/code&gt;&lt;/strong&gt;
这样你就不会看见这烦人的 &lt;strong&gt;&lt;code&gt;未激活&lt;/code&gt; 了&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;figure&gt;&lt;img alt=&quot;Hidden Module Step 1&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;1022&quot; src=&quot;/_astro/Hidden%20Module%20Step%201.DhVtNJt-_Z1k1ofG.webp&quot; /&gt;&lt;figcaption&gt;Hidden Module Step 1&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure&gt;&lt;img alt=&quot;Hidden Module Step 2&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;1022&quot; src=&quot;/_astro/Hidden%20Module%20Step%202.B4YdDgxy_ZE1hLb.webp&quot; /&gt;&lt;figcaption&gt;Hidden Module Step 2&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;此时若要打开 NewMiko app 的话 在 LSPosed 管理器里点 NewMiko ➡️ 右下角图标就可以了&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;Open NewMiko&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;1022&quot; src=&quot;/_astro/Open%20NewMiko.JoiWRhgc_Z1Mrbqx.webp&quot; /&gt;&lt;figcaption&gt;Open NewMiko&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;还有的话我想到再补吧 妈妈的 累死劳资了&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;安装、激活教程&lt;a href=&quot;#安装激活教程&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;section&gt;&lt;h2&gt;PART 1️⃣ LSPosed 的安装&lt;a href=&quot;#part-1️⃣lsposed-的安装&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Important&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;此教程只针对 KernelSU 及其分支撰写 不保证 Magisk 以及 Apatch 用户跟随本教程一定能用上此模块&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;section&gt;&lt;h3&gt;Step 1️⃣ 确保你的📱已经获取了 Root 权限&lt;a href=&quot;#step-1️⃣确保你的已经获取了-root-权限&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;如果你通过小米机型&lt;a href=&quot;https://share.google/aimode/Lfi89lWdLXxOh0zVE&quot; target=&quot;_blank&quot;&gt;越狱&lt;/a&gt;的半残废 Root 或者魅族的官方半残废 Root 使用 LSPosed 则可以忽略上一条&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;figure&gt;&lt;img alt=&quot;KernelSU&quot; loading=&quot;lazy&quot; width=&quot;1075&quot; height=&quot;2393&quot; src=&quot;/_astro/KernelSU.DYHuzCZM_ZdY0tI.webp&quot; /&gt;&lt;figcaption&gt;KernelSU&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;Step 2️⃣ 下载 Zygisk 实现模块 &lt;a href=&quot;https://github.com/PerformanC/ReZygisk&quot; target=&quot;_blank&quot;&gt;ReZygisk&lt;/a&gt; 或者 &lt;a href=&quot;https://github.com/Dr-TSNG/ZygiskNext&quot; target=&quot;_blank&quot;&gt;ZygiskNext&lt;/a&gt; 并刷入&lt;a href=&quot;#step-2️⃣下载-zygisk-实现模块-rezygisk-或者-zygisknext-并刷入&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;a href=&quot;https://github.com/PerformanC/ReZygisk&quot; target=&quot;_blank&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;PerformanC&lt;/div&gt;&lt;/div&gt;&lt;div&gt;/&lt;/div&gt;&lt;div&gt;ReZygisk&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Waiting for api.github.com...&lt;/div&gt;&lt;div&gt;&lt;div&gt;00K&lt;/div&gt;&lt;div&gt;0K&lt;/div&gt;&lt;div&gt;0K&lt;/div&gt;&lt;span&gt;Waiting...&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/Dr-TSNG/ZygiskNext&quot; target=&quot;_blank&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Dr-TSNG&lt;/div&gt;&lt;/div&gt;&lt;div&gt;/&lt;/div&gt;&lt;div&gt;ZygiskNext&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Waiting for api.github.com...&lt;/div&gt;&lt;div&gt;&lt;div&gt;00K&lt;/div&gt;&lt;div&gt;0K&lt;/div&gt;&lt;div&gt;0K&lt;/div&gt;&lt;span&gt;Waiting...&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;em&gt;至于为什么有两个模块这件事么……是这样的： &lt;a href=&quot;https://github.com/Dr-TSNG/ZygiskNext&quot; target=&quot;_blank&quot;&gt;https://github.com/Dr-TSNG/ZygiskNext&lt;/a&gt; 一段时间前停止了开源 然后就有人搞了个开源的 &lt;a href=&quot;https://github.com/PerformanC/ReZygisk&quot; target=&quot;_blank&quot;&gt;https://github.com/PerformanC/ReZygisk&lt;/a&gt; 出来
从安全性的角度 本人更建议 &lt;a href=&quot;https://github.com/PerformanC/ReZygisk&quot; target=&quot;_blank&quot;&gt;https://github.com/PerformanC/ReZygisk&lt;/a&gt; 毕竟闭源的模块的安全性么……这就全看模块作者良心了
但是吧 &lt;a href=&quot;https://github.com/PerformanC/ReZygisk&quot; target=&quot;_blank&quot;&gt;https://github.com/PerformanC/ReZygisk&lt;/a&gt; 这模块也是刚刚出来的 稳定性这块还是差一点的（虽然本人目前用着也没发现大问题）所以你自己取舍吧&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;Step 3️⃣ 下载  并且刷入&lt;a href=&quot;#step-3️⃣下载--并且刷入&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;有两种方法下载 LSPosed:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;访问 &lt;a href=&quot;https://lsposed.zip&quot; target=&quot;_blank&quot;&gt;lsposed.zip&lt;/a&gt; 直接下载&lt;/li&gt;
&lt;li&gt;如果无法访问 可加入 [tg@lsposed]（&lt;a href=&quot;https://t.me/LSPosed%EF%BC%89&quot; target=&quot;_blank&quot;&gt;https://t.me/LSPosed）&lt;/a&gt; 群组 到群组内下载&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Important&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;自 2024年4月26日 LSPosed 恢复更新起 LSPosed 不再开源并且进行内部测试制 并且不再分发于 Github 上 用户必须进入 &lt;strong&gt;&lt;a href=&quot;https://t.me/LSPosed&quot; target=&quot;_blank&quot;&gt;https://t.me/LSPosed&lt;/a&gt; 群组&lt;/strong&gt; 获取稳定版更新 而想要内测版用户则需要申请进入 &lt;code&gt;LSPosed Internal Test&lt;/code&gt; 内测群组 详情见 ⬇️&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://t.me/LSPosed/275&quot; target=&quot;_blank&quot;&gt;https://t.me/LSPosed/275&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;在此加入 LSPosed 频道 ⬇️&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://t.me/LSPosed&quot; target=&quot;_blank&quot;&gt;LSPosed&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;@lsposed&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;1966&quot; src=&quot;/_astro/@lsposed.BrxAhEbU_1zfSWN.webp&quot; /&gt;&lt;figcaption&gt;@lsposed&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;内测群进群方式&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://t.me/LSPosed/287&quot; target=&quot;_blank&quot;&gt;https://t.me/LSPosed/287&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;🔗 在此 自己想办法解决吧&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;echo&lt;/span&gt;&lt;span&gt; aHR0cHM6Ly90Lm1lLytOZkh6dGZ5TkJaczJaRGxs | &lt;/span&gt;&lt;span&gt;base64&lt;/span&gt;&lt;span&gt; -d&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Important&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;请使用 &lt;strong&gt;LSPosed API 版本 ≥ &lt;code&gt;101&lt;/code&gt;&lt;/strong&gt; 的版本（ LSPosed 版本 ≥ &lt;strong&gt;&lt;code&gt;2.0.0&lt;/code&gt;&lt;/strong&gt;）以防止出一些奇奇怪怪的问题&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;奇奇怪怪的问题.png&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;Strange Problems.png&quot; loading=&quot;lazy&quot; width=&quot;348&quot; height=&quot;416&quot; src=&quot;/_astro/Strange%20Problems_ZIdOeV.webp&quot; /&gt;&lt;figcaption&gt;Strange Problems.png&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;原因：未升级 LSPosed 2.0.0 及以上版本&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;Strange Problems - Sulution.png&quot; loading=&quot;lazy&quot; width=&quot;259&quot; height=&quot;407&quot; src=&quot;/_astro/Strange%20Problems%20-%20Sulution_1wfrR0.webp&quot; /&gt;&lt;figcaption&gt;Strange Problems - Sulution.png&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;给新手的小提示
你可以在 LSPosed 主界面查看 LSPosed API 及 LSPosed 版本
&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;LSPosed&quot; loading=&quot;lazy&quot; width=&quot;1075&quot; height=&quot;2393&quot; src=&quot;/_astro/LSPosed.5qduhAew_R4VCt.webp&quot; /&gt;&lt;figcaption&gt;LSPosed&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;给新手的小提示：
你可以从 LSPosed 的压缩包里提取出 &lt;strong&gt;&lt;code&gt;manager.apk&lt;/code&gt;&lt;/strong&gt; 并安装 这样你的 LSPosed 就不再寄生在 &lt;code&gt;Shell&lt;/code&gt; 里了 可以常驻在后台
&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;manager.apk&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;913&quot; src=&quot;/_astro/manager.apk.Bh75_Frd_iUjwu.webp&quot; /&gt;&lt;figcaption&gt;manager.apk&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;PART 2️⃣ NewMiko 的安装与激活&lt;a href=&quot;#part-2️⃣newmiko-的安装与激活&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;Step 1️⃣ 加入 &lt;a href=&quot;https://t.me/MikoCIBuilds&quot; target=&quot;_blank&quot;&gt;tg@MikoCIBuilds&lt;/a&gt; 频道获取最新版  NewMiko、&lt;a href=&quot;#step-1️⃣加入-tgmikocibuilds-频道获取最新版--newmiko&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;a href=&quot;https://t.me/MikoCIBuilds&quot; target=&quot;_blank&quot;&gt;Miko CI Builds&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;Step 2️⃣ 安装  NewMiko 并在 LSPosed 里激活  NewMiko&lt;a href=&quot;#step-2️⃣安装--newmiko-并在-lsposed-里激活--newmiko&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;安装&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;Install NewMiko&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;1022&quot; src=&quot;/_astro/Install%20NewMiko.BUQUSw14_24m2HN.webp&quot; /&gt;&lt;figcaption&gt;Install NewMiko&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;2.LSPosed 主页 ➡️ 模块 ➡️ :newmiko: NewMiko（可能在下面）&lt;/p&gt;&lt;p&gt;3.NewMiko &lt;strong&gt;&lt;code&gt;im.mingxi.miko&lt;/code&gt;&lt;/strong&gt; ➡️ 启用模块 ➡️ 勾选微信 ➡️ 长按微信 ➡️ 强行停止 ➡️ 确认 ➡️ 启动&lt;/p&gt;&lt;p&gt;4.打开微信 ➡️ 我的 ➡️ 设置 ➡️ NewMiko ➡️ Enjoy!&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;img alt=&quot;Enable NewMiko Step 1&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;1022&quot; src=&quot;/_astro/Enable%20NewMiko%20Step%201.D6qcfQbK_jTsWL.webp&quot; /&gt;&lt;figcaption&gt;Enable NewMiko Step 1&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure&gt;&lt;img alt=&quot;Enable NewMiko Step 2&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;920&quot; src=&quot;/_astro/Enable%20NewMiko%20Step%202.C7mostSX_2bESYd.webp&quot; /&gt;&lt;figcaption&gt;Enable NewMiko Step 2&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure&gt;&lt;img alt=&quot;Enable NewMiko Step 3&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;180&quot; src=&quot;/_astro/Enable%20NewMiko%20Step%203.BIBvYhup_TnBG7.webp&quot; /&gt;&lt;figcaption&gt;Enable NewMiko Step 3&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;hr /&gt;&lt;/section&gt;&lt;/section&gt;&lt;/section&gt;</content:encoded></item><item><title>停止用 Windows 开发!</title><link>https://jack-huang-2010.github.io/posts/Stop-Developing-on-Windows/</link><guid isPermaLink="true">https://jack-huang-2010.github.io/posts/Stop-Developing-on-Windows/</guid><description>Stop Developing on s**tly Windows</description><pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;F**k Microsoft!&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;640&quot; src=&quot;/_astro/fuck-microsoft.D_mMHb8i_ZEYqBQ.webp&quot; /&gt;&lt;figcaption&gt;F**k Microsoft!&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;原文作者 &lt;a href=&quot;https://www.zhihu.com/people/200d53283ff9f8fdb7759e37c94cbb50&quot; target=&quot;_blank&quot;&gt;@kokic&lt;/a&gt;，于 April 6, 2026 以 &lt;strong&gt;CC0&lt;/strong&gt; (&lt;code&gt;Creative Commons Zero&lt;/code&gt;) 协议发布。&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Caution&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;em&gt;转载未获授权，因为作者不必授权自己&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;二次转载无需联系原作者&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;section&gt;&lt;h1&gt;零、前言&lt;a href=&quot;#零前言&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;前两天因为一些零碎的原因不得不用暂时挪开 Arch Linux 转向 Windows 做一点开发 代码是没写两行 人是先红温了 有感而发 因而怒写此文章&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;每次我写这种文章，总会有人跳出来说：“bro 你又偏激了！”、“Windows 现在已经很好了！”、“WSL 启动！”。&lt;/p&gt;&lt;p&gt;现在是 2026 年，不是 2006 年，也非 2016 年。二十多年过去了，Windows 在严肃的程序开发这件事上，依然是一个彻头彻尾的笑话。不是因为微软不努力，而是因为它的根是烂的。把一棵树的树根泡在福尔马林里，树冠上挂再多 LED 灯也没用。&lt;/p&gt;&lt;p&gt;2026 年，曾经被认为是 &lt;strong&gt;精神病人&lt;/strong&gt; 的 macOS 游戏玩家已经可以玩不少 3A 大作。那个 “Linux 不能玩游戏” 的 Linux —— 已经成为最适合玩游戏的操作系统。Steam Deck 卖了几百万台，Wine / Proton 让 Windows 游戏在 Linux 上跑得比在 Windows 上还快。&lt;/p&gt;&lt;p&gt;游戏，这个 Windows 曾经唯一的护城河，几乎被攻破了。&lt;/p&gt;&lt;p&gt;而 Windows 呢？它连 &lt;strong&gt;“用来开发”&lt;/strong&gt; 这件事都做不好。&lt;/p&gt;&lt;p&gt;一个用来在星巴克剪视频的操作系统现在更适合开发，一个用来开发的操作系统现在更适合玩游戏。世界颠倒了，但 Windows 还是那个 Windows，&lt;strong&gt;至死不渝&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;你的合作者用 Linux 和 macOS，你用 Windows —— &lt;strong&gt;恭喜你，自动成为了团队里的 “那个麻烦”&lt;/strong&gt;。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;一、路径分隔符&lt;a href=&quot;#一路径分隔符&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;在 Linux 和 macOS 上，路径是 &lt;code&gt;/home/JH/project/src/main.c&lt;/code&gt;。在 Windows 上，路径是 &lt;code&gt;C:\Users\JH\project\src\main.c&lt;/code&gt;。&lt;/p&gt;&lt;p&gt;就是这个字符，让你的人生比其他人多出 33% 的烦恼。你在代码里写 &lt;code&gt;path.join(&quot;build&quot;, &quot;output&quot;)&lt;/code&gt;，在 Python 里用 &lt;code&gt;os.path.join&lt;/code&gt;，在 C++ 里用 &lt;code&gt;std::filesystem::path::preferred_separator&lt;/code&gt; —— 你觉得你处理好了。不，你没有。&lt;/p&gt;&lt;p&gt;总会有某个库、某个脚本、某个第三方工具 &lt;strong&gt;硬编码&lt;/strong&gt; 了 &lt;code&gt;&quot;/&quot;&lt;/code&gt; 或者 &lt;code&gt;&quot;\\&quot;&lt;/code&gt;。写 &lt;code&gt;path/to/file&lt;/code&gt; 在 Windows 上可能侥幸能跑，但把路径传给 &lt;code&gt;cmd.exe&lt;/code&gt; 的时候，不认。传给 &lt;code&gt;cl.exe&lt;/code&gt; 的 &lt;code&gt;/I&lt;/code&gt; 参数的时候，偶尔不认。传给某个用 &lt;code&gt;CreateFileA&lt;/code&gt; 的古老工具时，绝对不认。&lt;/p&gt;&lt;p&gt;更糟糕的是，你的 Linux 队友写了个 CMake 脚本：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;set(OUTPUT_DIR &quot;build/${CONFIG}/obj&quot;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;你高高兴兴拉到 Windows 上一跑，CMake 把它变成了 &lt;code&gt;build\Debug\obj&lt;/code&gt;。看起来没问题？等你把这个路径传给一个用 Python 的 &lt;code&gt;pathlib&lt;/code&gt; 生成的东西，再传给一个用纯字符串拼接的东西，再经过三层脚本 —— 恭喜，你得到了 &lt;code&gt;build\\Debug\\obj&lt;/code&gt; 和 &lt;code&gt;build/Debug/obj&lt;/code&gt; 混在一起的奇观。构建系统开始报“找不到文件”，你花两个小时发现是某个 shell 脚本里有一行 &lt;code&gt;sed &apos;s/\//\\/g&apos;&lt;/code&gt; 写错了。&lt;/p&gt;&lt;p&gt;你的 Linux 队友不用想这些。你的 macOS 队友也不用想这些。只有你。&lt;/p&gt;&lt;p&gt;你用 Nushell 或者 PowerShell Core？Nushell 是结构化 Shell，它懂表格，懂数据流，但它不懂为什么 Windows 的世界里到处都是反斜杠。启动是快了，试试在里面执行一个 Windows 原生命令，返回一个路径 —— 给的是 &lt;code&gt;C:\Users\JH\project&lt;/code&gt;。你要把这个路径传给下一个命令，下一个命令期望的是 &lt;code&gt;C:/Users/JH/project&lt;/code&gt;。或者反过来。你可以在脚本里用 &lt;code&gt;str replace&lt;/code&gt; 把 &lt;code&gt;\&lt;/code&gt; 换成 &lt;code&gt;/&lt;/code&gt;，但你每写一个 pipeline 都要做一次。你的脚本变得又臭又长。&lt;/p&gt;&lt;p&gt;你的 Linux 队友，打开终端，瞬间。输入命令，路径永远是 &lt;code&gt;/&lt;/code&gt; 分隔，永远不会错。他们不知道你在经历什么。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;二、cl.exe 和 MSVC 构建工具：活在 1995 年的编译器&lt;a href=&quot;#二clexe-和-msvc-构建工具活在-1995-年的编译器&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;有人说 “Windows 上可以用 clang 啊”。可以，当然可以。但用 clang for Windows，你链接的是什么库？还是 MSVC 的运行时库。避无可避。&lt;/p&gt;&lt;p&gt;MSVC 的问题不在于它不符合标准（虽然它曾经很烂，现在依然有一些角落烂着），而在于它的 &lt;strong&gt;工作流&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;在 Linux 上写 &lt;code&gt;gcc main.c -o main&lt;/code&gt;，完事。在 macOS 上写 &lt;code&gt;clang main.c -o main&lt;/code&gt;，完事。在 Windows 上？&lt;/p&gt;&lt;p&gt;首先，你得找到 &lt;code&gt;cl.exe&lt;/code&gt;。它不在 PATH 里。你得打开 “Developer Command Prompt”，或者运行 &lt;code&gt;vcvarsall.bat&lt;/code&gt;。这个脚本干了什么？设置了二十几个环境变量，修改了 LIB 和 INCLUDE 路径，还把一堆莫名其妙的东西塞进 PATH。&lt;/p&gt;&lt;p&gt;想自己配？那你告诉我，&lt;code&gt;cl.exe&lt;/code&gt; 需要的 &lt;code&gt;mspdbcore.dll&lt;/code&gt; 在哪？&lt;code&gt;vcruntime.h&lt;/code&gt; 在哪？&lt;code&gt;kernel32.lib&lt;/code&gt; 在哪？你不知道。我也不完全知道。微软自己把它藏在一个每六个月变一次路径的目录里：&lt;code&gt;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x64&lt;/code&gt;。你感受一下。&lt;/p&gt;&lt;p&gt;然后你说 “我用 CMake”。好，CMake 能帮你找到这些东西。但 CMake 自己也要先知道用哪个 generator。你用 &lt;code&gt;-G &quot;Visual Studio 17 2022&quot;&lt;/code&gt;，CMake 生成了一大堆 &lt;code&gt;.sln&lt;/code&gt; 和 &lt;code&gt;.vcxproj&lt;/code&gt; 文件。这些文件是 XML。巨大无比。你打开看一眼就想吐。你不想用 Visual Studio IDE，你只想用命令行。但 MSVC 的命令行生态是 &lt;strong&gt;二等公民&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;最可笑的是预编译头。在 Linux 上没人用预编译头，因为编译速度没那么慢。在 Windows 上不用预编译头？&lt;code&gt;#include &amp;lt;windows.h&amp;gt;&lt;/code&gt; 一个头文件展开后几十万行，再 &lt;code&gt;#include &amp;lt;iostream&amp;gt;&lt;/code&gt; 又是几万行。你的编译速度慢得像是在用软盘装系统。而 MSVC 的预编译头机制 —— &lt;code&gt;/Yc&lt;/code&gt; 和 &lt;code&gt;/Yu&lt;/code&gt;——复杂到专门有一本书的章节讲它。而且它在命令行下用起来别扭得要死。&lt;/p&gt;&lt;p&gt;你花在工具链上的时间，你的 Linux 队友用来写 feature。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;三、Rust 工具链&lt;a href=&quot;#三rust-工具链&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;有人说 “我在 Windows 上用 Rust 开发体验很好”。是的，体验很好。但你知道这个 “很好” 是怎么来的吗？&lt;/p&gt;&lt;p&gt;Rust 为了在 Windows 上找到 &lt;code&gt;cl.exe&lt;/code&gt; 和相关环境，&lt;strong&gt;专门写了约 2000 行代码，一整个专门的 package&lt;/strong&gt;。你以为 &lt;code&gt;cargo build&lt;/code&gt; 能直接工作是理所当然的？不是。那是 Rust 工具链的维护者替你受了你本该受的苦。&lt;/p&gt;&lt;p&gt;在 Linux 上写 &lt;code&gt;cargo build&lt;/code&gt;，它调用 &lt;code&gt;cc&lt;/code&gt;，&lt;code&gt;cc&lt;/code&gt; 调用 &lt;code&gt;gcc&lt;/code&gt; 或者 &lt;code&gt;clang&lt;/code&gt;，完事。三行逻辑。&lt;/p&gt;&lt;p&gt;在 Windows 上写 &lt;code&gt;cargo build&lt;/code&gt;，背后是一台用胶带和铁丝绑在一起的 Frankenstein 怪物。而 Rust 团队花了无数个日夜，让这个怪物看起来像个正常人。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;你觉得体验好，是因为有人替你挡了子弹。和 Windows 毫无关系。&lt;/strong&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;四、LF vs CRLF：一场持续五十年的愚蠢战争&lt;a href=&quot;#四lf-vs-crlf一场持续五十年的愚蠢战争&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;这是最让我无语的一个问题。它本来不应该存在。&lt;/p&gt;&lt;p&gt;Unix 用 LF（&lt;code&gt;\n&lt;/code&gt;，&lt;code&gt;0x0A&lt;/code&gt;）表示换行。古老的 Mac OS 9 用 CR（&lt;code&gt;\r&lt;/code&gt;，&lt;code&gt;0x0D&lt;/code&gt;）。Windows 用 CRLF（&lt;code&gt;\r\n&lt;/code&gt;，&lt;code&gt;0x0D 0x0A&lt;/code&gt;）。&lt;/p&gt;&lt;p&gt;为什么 Windows 用 CRLF？因为 MS-DOS 抄袭 CP/M，CP/M 用 CRLF 因为它的文件系统用 CRLF 来 &lt;strong&gt;“兼容 TTY（电传打字机）”&lt;/strong&gt;。TTY，你听听，&lt;strong&gt;电传打字机&lt;/strong&gt;！！&lt;/p&gt;&lt;p&gt;现在是 2026 年。谁还用电传打字机做终端输出？没有。但 Windows 记事本 —— 直到 2018 年 —— 都不支持 LF 作为换行符。你打开一个 LF 结尾的文件，它会显示成一行。整个文件粘在一起。后来微软改了，但那是 2018 年！距离 Unix 发明已经过了 49 年。&lt;/p&gt;&lt;p&gt;你以为现在没问题了？Naive!&lt;/p&gt;&lt;p&gt;Git 有 &lt;code&gt;core.autocrlf&lt;/code&gt;。你设成 &lt;code&gt;true&lt;/code&gt;，它会在 checkout 时把 LF 转成 CRLF，commit 时转回 LF。看起来很美。但你会遇到：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;一个 shell 脚本里有 &lt;code&gt;#!/bin/bash&lt;/code&gt;，它要求文件以 LF 结尾。Git 把它转成了 CRLF，bash 不干了。&lt;/li&gt;
&lt;li&gt;一个 JSON 文件里嵌了换行符，你的解析器逐字节读，发现多了一个 &lt;code&gt;\r&lt;/code&gt;，JSON 解析失败。&lt;/li&gt;
&lt;li&gt;你的 Python 脚本用 &lt;code&gt;open(&quot;file&quot;, &quot;r&quot;)&lt;/code&gt; 打开一个 CRLF 文件，在 Linux 上读出来每行末尾有 &lt;code&gt;\r&lt;/code&gt;，你 strip 了吗？没有，于是你比较字符串的时候永远相等不了。&lt;/li&gt;
&lt;li&gt;你的队友不小心提交了一个 CRLF 文件，你用 &lt;code&gt;git diff&lt;/code&gt; 看到整个文件每一行都被修改了。因为 diff 工具认为每一行末尾多了一个看不见的字符。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;你在 Windows 上配 &lt;code&gt;.gitattributes&lt;/code&gt; 配到怀疑人生。你设 &lt;code&gt;* text=auto&lt;/code&gt;，又设 &lt;code&gt;*.sh text eol=lf&lt;/code&gt;，又设 &lt;code&gt;*.bat text eol=crlf&lt;/code&gt;。然后你发现 &lt;code&gt;.gitattributes&lt;/code&gt; 自己也被转成了 CRLF，导致 Git 不认这个文件。&lt;/p&gt;&lt;p&gt;你的 Linux 队友从不思考这个问题。他写代码，commit，push。你 pull 下来，所有文件都在报错。你花半天时间 &lt;code&gt;dos2unix&lt;/code&gt; 整个目录，commit，push。你的 macOS 队友 pull 下去，他的编辑器显示 “文件格式混合”。他开始骂你，你开始骂 Windows。&lt;/p&gt;&lt;p&gt;而 Windows 说：“我们有 WSL 啊，你在 WSL 里开发不就好了？”&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;五、WSL 不是答案&lt;a href=&quot;#五wsl-不是答案&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;每次说到这，总有 Windows 粉丝说 “你用 WSL 啊”。我建议你把 WSL 的全名念一遍，&lt;strong&gt;WSL 是 Windows Subsystem for Linux&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;WSL 1 是翻译层，把 Linux 系统调用翻译成 Windows 系统调用。慢得一塌糊涂，I/O 性能像在爬。&lt;/p&gt;&lt;p&gt;WSL 2 跑了一个真正的 Linux 内核在 Hyper-V 虚拟机里。性能好了，但你的文件在哪？你在 &lt;code&gt;/home/JH/project&lt;/code&gt; 下，这个目录实际在虚拟硬盘文件里。你想访问 Windows 的 &lt;code&gt;C:\Users\JH\project&lt;/code&gt;？可以，它在 &lt;code&gt;/mnt/c/&lt;/code&gt; 下面。但访问 &lt;code&gt;/mnt/c/&lt;/code&gt; 的性能 &lt;strong&gt;又回到了 WSL 1 的水平&lt;/strong&gt;，因为要经过 9p 协议来回转换。&lt;/p&gt;&lt;p&gt;所以你在 WSL 里工作的最佳实践是什么？&lt;strong&gt;把代码放在 WSL 自己的文件系统里&lt;/strong&gt;。也就是说，你不用 Windows 的文件系统了。你的编辑器呢？你可以在 Windows 上用 VS Code 连接 WSL，通过 Remote - WSL 插件。VS Code 在 Windows 上跑界面，后端在 WSL 里跑。&lt;/p&gt;&lt;p&gt;等等，那你的开发环境到底算 Windows 还是 Linux？你调试一个程序，它在 WSL 里跑，但你用的工具链是 Linux 的 gcc，链接的是 Linux 的 .so 文件，生成的是 Linux 的 ELF 二进制。这个二进制在 Windows 上跑不了。你想生成 Windows 的 exe？那你得退出 WSL，回到 Windows，用 MSVC。&lt;/p&gt;&lt;p&gt;所以 WSL 不是让你在 Windows 上开发 Windows 程序。它是让你在 Windows 上开发 Linux 程序。换句话说，你用 Windows 作为宿主机，跑一个 Linux 虚拟机，然后在虚拟机里开发。&lt;strong&gt;那你为什么不直接装 Linux&lt;/strong&gt;？&lt;/p&gt;&lt;p&gt;WSL 的存在说明：&lt;strong&gt;微软承认 Windows 的开发体验不如 Linux，所以他们给你一个 Linux 虚拟机&lt;/strong&gt;。但你每多一层抽象，就多一层麻烦。网络配置、设备映射、环境变量传递、进程间通信 —— 每一个都有一堆奇怪的边界情况。&lt;/p&gt;&lt;p&gt;这就好比你说 “我想学游泳”，然后有人给你买了一个游泳池，但游泳池里没有水，水在隔壁的另一个池子里，你得用一个桶把水拎过来。你问 “为什么不直接在那个池子里游泳”？他说 “因为那个池子太丑了”。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;六、摩登的 PowerShell&lt;a href=&quot;#六摩登的-powershell&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;你说你用 PowerShell。好，我问你：你打开一个终端，输入 &lt;code&gt;powershell&lt;/code&gt;，回车，然后呢？&lt;/p&gt;&lt;p&gt;等…&lt;/p&gt;&lt;p&gt;等……&lt;/p&gt;&lt;p&gt;等………&lt;/p&gt;&lt;p&gt;等五秒钟。等六秒钟。有些配置稍差的设备，甚至能等十秒。&lt;/p&gt;&lt;p&gt;你告诉我，你在一台 CPU 是 5GHz，内存 64GB，NVMe SSD 的机器上，启动一个 Shell 要五秒钟。这不是开玩笑吗？五秒钟够 Linux 启动整个系统了。&lt;/p&gt;&lt;p&gt;为什么？因为 PowerShell 启动时要加载 .NET 运行时。.NET 运行时要 JIT 编译一大堆代码。它要加载几百个 DLL。它要读取你的 profile 脚本。它要做一百件你根本不关心的事情。&lt;/p&gt;&lt;p&gt;你说 “那我用 Nushell”。Nushell 启动只要 9 毫秒。你算算：5000 毫秒除以 9 毫秒，&lt;strong&gt;555 倍&lt;/strong&gt;。这是什么概念？PowerShell 用户眼里的 Nushell 就像普通人眼里的 &lt;strong&gt;Faiz 加速形态&lt;/strong&gt;。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;七、MSVC Build Tools：许可证问题让你无法自动化&lt;a href=&quot;#七msvc-build-tools许可证问题让你无法自动化&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;这可能是最荒谬的一点。&lt;/p&gt;&lt;p&gt;你想在 CI/CD 里自动构建 Windows 程序。你在 Linux runner 上交叉编译？不行，你缺 MSVC 的 headers 和 libraries。&lt;/p&gt;&lt;p&gt;那你怎么办？你需要安装 MSVC Build Tools。你怎么安装？你去微软官网下载 &lt;code&gt;vs_BuildTools.exe&lt;/code&gt;，然后&lt;strong&gt;手动点击下一步、下一步、同意许可协议、勾选组件、等待安装&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;你不能用 &lt;code&gt;winget&lt;/code&gt; 自动安装。你不能用 Chocolatey 自动安装（虽然社区有包，但不是微软官方支持的）。你不能在 Docker 镜像里预装（除非你用 Windows 容器，那又是另一个地狱）。&lt;/p&gt;&lt;p&gt;MSVC Build Tools 的许可证不允许你以编程方式绕过安装程序的 “技术限制”。你可以自己写脚本调用静默安装参数，但那不叫 “自动化”，那叫 “我帮你点下一步” —— 你依然需要一个交互式会话或者预先配置好的镜像。&lt;/p&gt;&lt;p&gt;在 Linux 上装 &lt;code&gt;gcc&lt;/code&gt;：&lt;code&gt;apt install gcc&lt;/code&gt;。一条命令，不需要点击任何东西，不需要同意任何许可协议，不需要等待一个蜗牛般的下载。&lt;/p&gt;&lt;p&gt;微软为什么不能把 MSVC 工具链放到一个简单的 &lt;code&gt;.tar.gz&lt;/code&gt; 里？因为许可证不允许。因为微软希望你用 Visual Studio IDE。因为命令行用户是二等公民。从 1990 年代到现在，一直是。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;八、GBK 编码：一个本该在 2006 年死去的东西&lt;a href=&quot;#八gbk-编码一个本该在-2006-年死去的东西&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;写中文注释。处理中文文件路径。你的队友在 macOS 上提交了一个包含中文字符的 JSON 文件。&lt;/p&gt;&lt;p&gt;恭喜你，触发了 Windows 最恶心的 “特性” 之一：GBK 编码。&lt;/p&gt;&lt;p&gt;在 Linux 和 macOS 上，文本文件默认是 UTF-8。从 2000 年代初就是这样。今天是 2026 年，UTF-8 已经是绝对的主流，全世界 98% 的网页用 UTF-8。&lt;/p&gt;&lt;p&gt;Windows 呢？Windows 的 “ANSI 代码页” 默认是 GBK（如果你在中文系统上）。你用记事本保存一个文件，默认编码是 ANSI（也就是 GBK）。你用 PowerShell 输出重定向，默认编码是 UTF-16LE（不是 UTF-8）。你用 &lt;code&gt;cl.exe&lt;/code&gt; 编译一个源文件，如果源文件是 UTF-8 with BOM 它能认，没有 BOM？它当成 ANSI 处理，然后你的中文字符串变成了乱码。&lt;/p&gt;&lt;p&gt;你的 Linux 队友提交了一个 UTF-8 文件，你拉下来用 VS Code 打开，VS Code 猜编码猜错了，你看到一堆 &lt;code&gt;ä½ å¥½&lt;/code&gt;。你手动改编码，保存。然后你的队友拉下去，发现文件变成了 CRLF（我们后面说这个）加 UTF-8 with BOM。他开始骂你。&lt;/p&gt;&lt;p&gt;你在 Python 脚本里写 &lt;code&gt;open(&quot;file.txt&quot;, &quot;r&quot;)&lt;/code&gt;，在 Linux 上读 UTF-8，在 Windows 上读 GBK。你的脚本 “在我电脑上能跑”，在你队友电脑上崩了。&lt;/p&gt;&lt;p&gt;你说 “那我用 Python 的 &lt;code&gt;encoding=&apos;utf-8&apos;&lt;/code&gt; 参数”。你知道你要写这个参数，你写了。但你调用的第三方库呢？它没写。你的构建脚本里的某个工具呢？它没写。总有某个地方，某个人，某段代码，默认用了系统 ANSI 代码页。&lt;/p&gt;&lt;p&gt;这个问题从 Windows 95 时代就存在。30 年了。&lt;strong&gt;没有解决，且永远不会解决&lt;/strong&gt;。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;九、LLM Agent 时代的致命伤&lt;a href=&quot;#九llm-agent-时代的致命伤&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;&lt;strong&gt;这是 2026 年才变得特别明显的问题。&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;你让一个 LLM Agent 比如 Claude Code、OpenAI Codex 帮你执行一条命令。在 Linux 上，Agent 写 &lt;code&gt;grep &quot;hello world&quot; file.txt&lt;/code&gt;，直接执行，成功。&lt;/p&gt;&lt;p&gt;在 Windows 上，Agent 写 &lt;code&gt;findstr &quot;hello world&quot; file.txt&lt;/code&gt;，执行，成功。看起来不错。&lt;/p&gt;&lt;p&gt;然后你让 Agent 执行一条稍微复杂一点的命令：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;powershell -Command &quot;&amp;amp; { Get-ChildItem -Recurse | Where-Object { $_.Name -match &apos;test&apos; } }&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;问题来了。引号嵌套。Agent 不知道什么时候用双引号，什么时候用单引号，什么时候转义。PowerShell 的语法是出了名的 &lt;strong&gt;“写起来像英语，转义起来像咒语”&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;你让 Agent 生成一行 C++ 代码并通过 &lt;code&gt;cl.exe /D&lt;/code&gt; 传入：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;cl /D&quot;MY_STRING=\&quot;hello\\nworld\&quot;&quot; main.c&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;你需要两层转义：一层给 shell，一层给 C 预处理器。在 cmd.exe 里，转义规则和 PowerShell 不一样。在 PowerShell 里，转义规则又不一样。在 Git Bash 里，又不一样。&lt;/p&gt;&lt;p&gt;Agent 试了三次，都失败了。它开始 “深度思考”，写了一个 Python 脚本来生成命令，然后执行 Python 脚本——绕了一个大圈子。你的 token 消耗从 100 变成了 5000。没关系，Windows 用户的 token 是大风刮来的。&lt;/p&gt;&lt;p&gt;你的 Linux 队友的 Agent 从未失败过。因为 Linux shell 的转义规则是清晰的、一致的、可预测的。Windows 有四种不同的 shell（cmd，PowerShell，Git Bash，WSL bash），四种不同的转义规则，每一种都有自己的 “惊喜”。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;十、关不掉的 Windows Defender&lt;a href=&quot;#十关不掉的-windows-defender&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;你说你的编译慢。你说你的 &lt;code&gt;npm install&lt;/code&gt; 慢。你说你的 &lt;code&gt;git clone&lt;/code&gt; 慢。&lt;/p&gt;&lt;p&gt;我告诉你原因：&lt;strong&gt;Windows Defender 在扫描每一个文件&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;你编译一个 C++ 项目，生成 1000 个 &lt;code&gt;.obj&lt;/code&gt; 文件。Defender 在每个文件创建时扫描一遍。在每个文件写入时扫描一遍。在链接器读取每个文件时再扫描一遍。&lt;/p&gt;&lt;p&gt;你在 Linux 上编译同一个项目，没有这些扫描。编译时间差多少？首席水煮牛肉师实测，&lt;strong&gt;同一台设备，物理安装 Linux + XeLaTeX 编译一份 .tex 文档，比 Windows 快 80%&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;80%！这意味着你在 Windows 上等 10 分钟，在 Linux 上等 2 分钟。一天编译 20 次，你浪费了 160 分钟。将近三个小时。&lt;/p&gt;&lt;p&gt;那我关掉 Defender？&lt;strong&gt;你试过吗？你知道怎么关吗？&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;你可以去 “Windows 安全中心” 关掉 “实时保护”。五分钟后它会自动重新打开。你可以在组策略里禁用。但 Windows 10/11 的家庭版没有组策略。你可以修改注册表。但下一次 Windows Update 会把它改回来。你可以装一个第三方杀毒软件，Defender 会自动关闭 —— 但你现在不仅要对付 Defender，还要对付另一个杀毒软件。&lt;/p&gt;&lt;p&gt;能不能完全永久关掉？不能。Windows 不允许你关掉它最核心的安全功能。这是“&lt;strong&gt;为了你好&lt;/strong&gt;”。微软替你做了决定。&lt;/p&gt;&lt;p&gt;你说 “那我把编译目录加到排除列表里”。可以。但你做 CI/CD 的时候呢？你的构建机每次都是新的，排除列表每次都要重新配置。你的 Docker 容器里跑 Windows？排除列表在容器里不生效。&lt;/p&gt;&lt;p&gt;而在 Linux 上，安全是你的责任。你想关 SELinux？&lt;code&gt;setenforce 0&lt;/code&gt;。你想关 AppArmor？&lt;code&gt;systemctl stop apparmor&lt;/code&gt;。系统听你的。Windows 不听你的。Windows 是你的 Master，你不是它的用户。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;十一、NTFS 和 ReFS 的悲剧&lt;a href=&quot;#十一ntfs-和-refs-的悲剧&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;在 Windows 上编译一个项目，生成几千个小文件。慢到怀疑人生。&lt;/p&gt;&lt;p&gt;你把项目放到 Dev Drive 上（微软 2023 年推出的“开发者专用”分区格式，基于 ReFS）。快了一点。但为什么还是比 Linux 慢？&lt;/p&gt;&lt;p&gt;因为问题的根源不是文件系统格式，是 &lt;strong&gt;安全软件插在文件系统上的那些钩子 （filters/hooks)&lt;/strong&gt;。Dev Drive 之所以快，是因为 Windows 默认不对 Dev Drive 上的文件进行某些安全检查。但即使这样，&lt;strong&gt;Linux 在处理大量小文件的场景下依然比 Windows 快得多&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;Linux 的文件系统设计从一开始就考虑了 “很多小文件” 的场景。ext4、XFS、btrfs，它们的目录结构、inode 管理、缓存策略，都是为真实世界的工作负载优化的。&lt;/p&gt;&lt;p&gt;NTFS 的设计目标是 &lt;strong&gt;“与 DOS 和 Windows 95 兼容”&lt;/strong&gt;。它的根目录下还有 &lt;code&gt;C:\&lt;/code&gt;、&lt;code&gt;D:\&lt;/code&gt; 这种盘符的概念——&lt;strong&gt;这是 1970 年代的 CP/M 遗留的设计&lt;/strong&gt;。你什么时候在 Linux 上见过盘符？没有。&lt;code&gt;/mnt&lt;/code&gt; 和 &lt;code&gt;/media&lt;/code&gt; 是挂载点，不是盘符。&lt;/p&gt;&lt;p&gt;你说 “那我用 WSL 2，把代码放在 WSL 的文件系统里”。是的，这样快。但你本质上是在用 Linux 的文件系统。那你&lt;strong&gt;为什么不直接装 Linux？&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Windows 的文件系统性能问题不是 “差一点”，是 “差一个数量级”。你编译一次可能只差几十秒，但你一天编译几十次，一周五天，一年五十二周——算算你浪费了多少生命？&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;十二、Windows 11 的内存黑洞&lt;a href=&quot;#十二windows-11-的内存黑洞&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;你说你的电脑是 8GB 内存。你说你只是想写写前端代码。&lt;/p&gt;&lt;p&gt;8GB 内存在 Windows 11 上连 “开机后什么都不做” 都勉强。&lt;/p&gt;&lt;p&gt;Windows 11 开机后，系统自身吃掉 3-4GB。Windows Defender 吃掉 500MB。Windows Update 服务吃掉 200MB。各种 “现代” 应用的后台进程——天气、新闻、Xbox、Your Phone、Cortana*（对，它还在）*加起来又是 1GB。&lt;/p&gt;&lt;p&gt;你已经用了 5-6GB。你打开 Chrome 或 Edge？一个 tab 100MB 起，开十个 tab 就是 1GB。你打开 VS Code？又一个 500MB。你打开 Docker Desktop？2GB 没了。你的内存开始 swap。swap 到 SSD，SSD 寿命下降。你的电脑开始卡。&lt;/p&gt;&lt;p&gt;你说 “那我加内存”。好，你加到 16GB。Windows 11 会咸因吗？不会。它会用更多内存来 “缓存” 东西，因为它的内存管理策略现在是 “有多少用多少”。你打开任务管理器，看到 “已提交” 内存是物理内存的两倍。你问系统管理员这是怎么回事，他说 “&lt;strong&gt;You’re Absolutely Right!&lt;/strong&gt;”。&lt;/p&gt;&lt;p&gt;正常？你在 Linux 上跑 &lt;code&gt;free -h&lt;/code&gt;，看到 used 是 2GB，cached 是 4GB，available 还是 4GB。你清楚知道内存去哪了。Windows 的 “资源监视器” 给你看一堆数字，你看了三遍也不知道到底谁吃了你的内存。&lt;/p&gt;&lt;p&gt;更可笑的是，Windows 11 的&lt;strong&gt;推荐配置是 4GB 内存&lt;/strong&gt;。4GB！安装都装不进去 —— &lt;strong&gt;安装程序自己就要 2GB&lt;/strong&gt;，还要留空间解压文件。&lt;strong&gt;微软的硬件兼容性团队是不是在用&lt;/strong&gt; &lt;strong&gt;&lt;code&gt;8 + 128&lt;/code&gt; (&lt;code&gt;8TB SSD + 128GB RAM&lt;/code&gt;)&lt;/strong&gt; &lt;strong&gt;的机器测试，然后写文档的人觉得是&lt;/strong&gt; &lt;strong&gt;&lt;code&gt;8 + 128 GB&lt;/code&gt;&lt;/strong&gt;，才能如此心安理得地写下 &lt;strong&gt;推荐配置 4GB&lt;/strong&gt;？&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;十三、WebView UI 把操作系统变成浏览器&lt;a href=&quot;#十三webview-ui-把操作系统变成浏览器&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;Windows 11 最 “现代” 的特性是什么？&lt;strong&gt;WebView UI&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;设置界面是 WebView。开始菜单是 WebView。文件资源管理器的部分界面是 WebView。通知中心是 WebView。任务栏的 “小组件” 是 WebView。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;没错！你的操作系统，现在是用 HTML、CSS 和 JavaScript 渲染的。&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;你打开 &lt;code&gt;设置 → 个性化 → 颜色&lt;/code&gt;。你点了 “深色模式”。UI 卡了 0.5 秒。为什么？因为它要&lt;strong&gt;重新渲染整个 WebView 页面&lt;/strong&gt;。你在 Linux 上改个 GTK 主题，瞬间生效。因为 GTK 是原生渲染。&lt;/p&gt;&lt;p&gt;WebView 有什么问题？&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;内存占用翻倍&lt;/strong&gt;。每个 WebView 实例是一个迷你浏览器，有自己独立的渲染进程。设置界面是一个实例，开始菜单是一个实例，小组件是一个实例。每个实例吃掉 100-200MB 内存。你的 8GB 机器就这样被一点点蚕食。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;渲染延迟&lt;/strong&gt;。你点击“开始”，等 0.3 秒菜单才弹出来。不是动画时间，是 WebView 响应时间。你在 Linux 上用 KDE 或 GNOME，点击开始菜单，瞬间弹出。因为那是原生代码，不是 JavaScript。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动画掉帧&lt;/strong&gt;。你打开通知中心，动画掉到 30fps。你问微软为什么不优化，微软说 “我们用 Fluent Design 的流畅动画”。流畅？30fps 叫流畅？你在 macOS 上打开通知中心，ProMotion 120fps 丝般顺滑。Windows 11 的 UI 性能甚至不如 2015 年的 Windows 10，而 Windows 10 的性能不如 2012 年的 Windows 8/8.1。开倒车，而且是&lt;strong&gt;坐着火箭开倒车&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;一个操作系统，连自己最基础的 UI 都做不好，你指望它能做好开发体验？&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;十四、微软官方承认的 boot loop 特性&lt;a href=&quot;#十四微软官方承认的-boot-loop-特性&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;2025 年，微软官方发布了一篇支持文档，标题是 &lt;strong&gt;“Windows 更新后可能出现 boot loop”&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;你再读一遍这句话。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;微软官方承认，他们的操作系统在更新后可能会 boot loop。&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;你的电脑开机，启动 Windows，加载更新，重启，开机，启动 Windows，加载更新，重启 …… 循环往复，直到你手动进入恢复模式，卸载更新，或者重装系统。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2025 年，微软说 “我们正在修复这个问题”。&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2026 年，这个问题依然存在。&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;你在写代码，Windows 提示 “需要重启以完成更新”。你说 “稍后”。Windows 不听你的，因为 &lt;strong&gt;Windows 作为大总统的权力是无限的&lt;/strong&gt;。Windows 在凌晨 3 点自动重启了。你的工作没有保存。你的 IDE 没有恢复会话。你的本地 git 仓库可能有未提交的变更。全是你的责任，你用 Windows 这个权力无限大系统应该承受的责任。&lt;/p&gt;&lt;p&gt;第二天早上你打开电脑，看到 “正在配置更新 0%”。你等。等到 30%。它重启。又开始 “正在配置更新 0%”。&lt;/p&gt;&lt;p&gt;你这一天废了。你要花两个小时进入恢复模式，卸载更新，然后关闭 Windows Update 服务。&lt;strong&gt;你的 Linux 队友已经提交了三个 PR 然后超额完成任务给自己放假了&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;你说 “那我用 Windows LTSC 版本，没有这些花里胡哨的更新”。好，但你用的是企业版，你的公司不一定买。而且 LTSC 版本三年才更新一次，你的开发工具需要的新 API 没有。你装个 Node.js 18，它说 “需要 Windows 10 1903 或更高版本”。你的 LTSC 是 1809。你又被卡住了。&lt;/p&gt;&lt;p&gt;Windows 是一个&lt;strong&gt;强制性的、不可预测的、可能摧毁你工作进度的操作系统， 其中 “操” 念第四声&lt;/strong&gt;。你永远不知道它什么时候会来，来了之后会不会把你的系统搞崩。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;十五、最大的讽刺，最好的游戏系统&lt;a href=&quot;#十五最大的讽刺最好的游戏系统&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;这是起点，亦是终点。&lt;/p&gt;&lt;p&gt;2000 年代，Windows 的护城河是什么？&lt;strong&gt;游戏&lt;/strong&gt;。你想玩游戏？你必须装 Windows。Linux 上连《魔兽世界》都跑不了，macOS 上更别想。那时候的 Windows 用户嘲笑 Linux 用户：“你的系统能玩 3A 大作吗？或者 Galgame？”&lt;/p&gt;&lt;p&gt;2026 年，情况完全反过来了。&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Steam Deck&lt;/strong&gt; 卖了几百万台，跑的是基于 Arch Linux 的 SteamOS。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wine / Proton&lt;/strong&gt; 让成千上万的 Windows 游戏在 Linux 上无缝运行。很多游戏在 Proton 下的性能甚至 &lt;strong&gt;超过原生 Windows&lt;/strong&gt;，因为 Vulkan 翻译层比 DirectX 在某些场景下更高效，也没有无数次生生不息的 Defender 扫描，也没有残废的文件系统。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NVIDIA 和 AMD&lt;/strong&gt; 的 Linux 驱动已经成熟到可以跑光线追踪。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;macOS 游戏玩家&lt;/strong&gt; —— 就是那群被嘲笑了二十年的 “用 Mac 玩游戏的精神病人”，现在已经可以通过 Game Porting Toolkit 玩不少 3A 大作。苹果甚至官方支持这件事。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;游戏。Windows 最后的堡垒，几乎已经沦陷了。&lt;/p&gt;&lt;p&gt;而 Windows 呢？它在开发领域依然是一团糟。你在 2026 年用 Windows 开发，你要面对：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;路径分隔符的混乱（来自 1980 年代的 DOS）&lt;/li&gt;
&lt;li&gt;CRLF 换行符（来自 1970 年代的 CP/M）&lt;/li&gt;
&lt;li&gt;MSVC 工具的许可证地狱（来自微软的商业模式）&lt;/li&gt;
&lt;li&gt;PowerShell 五六秒的启动时间（来自 .NET 的包袱）&lt;/li&gt;
&lt;li&gt;GBK 编码（来自中国区 Windows 的特殊 “待遇”）&lt;/li&gt;
&lt;li&gt;Defender 关不掉的 I/O 拖累&lt;/li&gt;
&lt;li&gt;四种 shell 四种转义规则&lt;/li&gt;
&lt;li&gt;8GB 内存不够开机（来自 Windows 11 的 “现代化”）&lt;/li&gt;
&lt;li&gt;WebView UI 卡成 30fps（来自 “我们也是 Web 公司” 的幻觉）&lt;/li&gt;
&lt;li&gt;boot loop（来自微软官方承认的 bug 特性）&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;你的 Linux 队友在做什么？TA 在 Arch 或者 NixOS 上全成就通关《魔法少女的魔女审判》，在《鸣泣之时》中听着志方晶子志仓千代丸作的曲子看沙都子大战梨花，在《素晴日》里穿着轻飘飘的衣服于楼顶上抽烟，切到桌面，&lt;code&gt;gcc main.c -o main&lt;/code&gt;，完事。&lt;/p&gt;&lt;p&gt;你的 macOS 队友在做什么？TA 在 MacBook Pro 上打开《赛博朋克 2077》《死亡搁浅 2》《生化危机》《博德之门 3》《艾尔登法环》《巫师 3》《无人深空》，关掉，&lt;code&gt;clang main.c -o main&lt;/code&gt;，完事。甚至还有余力剪辑游戏录屏然后发到 B 站。&lt;/p&gt;&lt;p&gt;你呢？笔电男大？你在等待 PowerShell 启动，你在等待 Windows 启动，&lt;strong&gt;但有时它们永远也不会启动&lt;/strong&gt;，&lt;strong&gt;像极了在一代杀戮尖塔玩鸡煲的你&lt;/strong&gt;。你在跟 CRLF 搏斗。你在想 &lt;code&gt;cl.exe&lt;/code&gt; 你到底在哪，&lt;code&gt;cl.exe&lt;/code&gt; 你根本不在 &lt;code&gt;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x64&lt;/code&gt;，你在想 &lt;code&gt;cl.exe&lt;/code&gt; 为什么会和 &lt;code&gt;nvcc&lt;/code&gt;、&lt;code&gt;cygwin&lt;/code&gt; 撞车。你在想 Everything 为什么能在你本地搜出 11 个 &lt;code&gt;ghc&lt;/code&gt; 安装目录下的 MSYS2。你在考虑要不要把编译目录加到 Defender 排除列表里，你在想要不要重装一个更稳定的第三方修改版 Windows。你在 Stack Overflow 上搜 “vswhere 找不到 Visual Studio”。你的电脑在 boot loop。你的 UI 在掉帧。你的内存被 WebView 吃光了。你打开 IM 尝试求助群友，但是每个人都在发 “喜报” 图片。&lt;/p&gt;&lt;p&gt;你想你的 Arch Linux 了。&lt;/p&gt;&lt;p&gt;帕特玛颠倒了，世界颠倒了。但 Windows 没变。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;后记&lt;a href=&quot;#后记&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;有读者问我 “你是不是对微软有偏见”。我对微软没有任何偏见。&lt;strong&gt;我对任何浪费我时间的工具有偏见&lt;/strong&gt;。Windows 是其中最突出的一个，MS Office 也是，不过这是另一个话题了。&lt;/p&gt;&lt;p&gt;还有读者问 “2026 年了，你还用 Windows 吗？”&lt;/p&gt;&lt;p&gt;用。为了写出这篇文章，我还得用。&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>急！Linux 把我的内存吃光了！！在线等回复！！！</title><link>https://jack-huang-2010.github.io/posts/Linux-Ate-My-RAM!!!/</link><guid isPermaLink="true">https://jack-huang-2010.github.io/posts/Linux-Ate-My-RAM!!!/</guid><description>如果某天你注意到你的 top/htop/btop 上显示内存的 Free 部分十分之少，不要着急，这是正常现象</description><pubDate>Mon, 06 Mar 2017 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h1&gt;Don&apos;t Panic!&lt;br /&gt;Your RAM is FINE!&lt;br /&gt;&lt;br /&gt;不要恐慌！&lt;br /&gt;你的内存没有任何问题！&lt;/h1&gt;&lt;/div&gt;
&lt;section&gt;&lt;h1&gt;本土化翻译&lt;a href=&quot;#本土化翻译&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;section&gt;&lt;h2&gt;所以到底发生了什么？&lt;a href=&quot;#所以到底发生了什么&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;与所有现代操作系统一样，Linux 会借用未使用的内存来做磁盘缓存。这让你的系统看上去好像陷入了“空闲”内存不足的窘境，但事实并非如此！一切都十分正常，&lt;em&gt;&lt;strong&gt;请坐和放宽&lt;/strong&gt;&lt;/em&gt;！&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;Linux 为什么要这样做？&lt;a href=&quot;#linux-为什么要这样做&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;总而言之，磁盘缓存除了让系统变得更快、响应更灵敏，没有任何其他缺点！除了让那些刚接触计算机、不熟悉文件系统缓存概念的用户&lt;em&gt;&lt;strong&gt;（比如现在正在看这篇文章的你，想想你是怎么点进来看到这篇文章的）&lt;/strong&gt;&lt;/em&gt;感到困惑意外没有任何缺点&lt;/p&gt;&lt;p&gt;最重要的是，它通常&lt;strong&gt;不会从前台应用程序那里抢走内存&lt;/strong&gt;，&lt;strong&gt;相信我！你的内存真的够用！&lt;/strong&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;如果我运行了更多应用程序会发生什么？&lt;a href=&quot;#如果我运行了更多应用程序会发生什么&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;如果你的应用程序需要更多内存，内核会&lt;strong&gt;收回磁盘缓存先前借走的那部分内存&lt;/strong&gt;，因此磁盘缓存&lt;strong&gt;随时可以立即归还给应用程序&lt;/strong&gt;！Linux 其实没有吃掉你任何一部分内存，它只是在最大化利用空闲的内存，在你不需要用内存的时候用空闲的内存给你换更好的体验！&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;所以我需要更多的交换空间（&lt;code&gt;SWAP&lt;/code&gt; 也就是虚拟内存）吗？&lt;a href=&quot;#所以我需要更多的交换空间swap-也就是虚拟内存吗&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;大概率&lt;strong&gt;不需要&lt;/strong&gt;，因为磁盘缓存主要借用的是应用程序当前未占用的内存，当应用程序需要更多内存时，Linux 内核会从磁盘缓存中拿回来&lt;/p&gt;&lt;p&gt;当然，如果某些应用程序的内存访问频率还不如文件系统缓存高，Linux &lt;em&gt;确实&lt;/em&gt;有可能会把它们挤进交换内存中，但这种操作通常是为了提升性能，而并不会损耗性能&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;我能阻止 Linux 这样做吗？&lt;a href=&quot;#我能阻止-linux-这样做吗&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;你&lt;strong&gt;无法完全禁用&lt;/strong&gt;磁盘缓存，但你可以调整 Linux 的“&lt;strong&gt;交换倾向&lt;/strong&gt;”（即调整 Linux 的 &lt;code&gt;swappiness&lt;/code&gt; 参数），大家之所以想禁用磁盘缓存，唯一的理由就是误以为它抢占了应用程序的内存——&lt;strong&gt;然而它并没有&lt;/strong&gt;！&lt;/p&gt;&lt;p&gt;磁盘缓存能让程序加载得更快、运行得更丝滑，但它&lt;strong&gt;绝对、并且永远不会&lt;/strong&gt;克扣程序的内存！因此，你&lt;strong&gt;完全没有理由去禁用它！&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;不过，如果你出于某种原因（比如测试未缓存应用冷启动的性能）需要快速清空一些 RAM，你可以用以下的命令强制 Linux 安全の&lt;a href=&quot;https://linux-mm.org/Drop_Caches&quot; target=&quot;_blank&quot;&gt;丢弃缓存&lt;/a&gt;：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;echo&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;span&gt; | &lt;/span&gt;&lt;span&gt;sudo&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;tee&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;/proc/sys/vm/drop_caches&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;既然内存完全够用，为什么 &lt;code&gt;top/htop/btop&lt;/code&gt; 和 &lt;code&gt;free&lt;/code&gt; 命令显示的“&lt;code&gt;Free&lt;/code&gt;”内存那么少？&lt;a href=&quot;#既然内存完全够用为什么-tophtopbtop-和-free-命令显示的free内存那么少&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;这只是术语上的差异：&lt;/p&gt;&lt;p&gt;你和 Linux 都认为&lt;strong&gt;应用程序占用的内存是“&lt;code&gt;Used&lt;/code&gt;（&lt;em&gt;已用内存&lt;/em&gt;）”&lt;/strong&gt;，而&lt;strong&gt;完全没被使用的内存是“Free（&lt;em&gt;空闲内存&lt;/em&gt;）”&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;但是，对于当前正被用于某种用途（&lt;em&gt;比如被拿来当做磁盘缓存的内存&lt;/em&gt;）、但依然可以提供给应用程序使用的内存，换作你，你会怎么描述呢？&lt;/p&gt;&lt;p&gt;你可能会把这类内存算作“Free”或“Available（&lt;em&gt;可用内存&lt;/em&gt;）”，而 Linux 内核则把它描述为“Available”：&lt;/p&gt;
























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;内存的状态&lt;/th&gt;&lt;th&gt;你称它为&lt;/th&gt;&lt;th&gt;Linux 内核称它为&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;已被被应用程序使用&lt;/td&gt;&lt;td&gt;已用（Used）&lt;/td&gt;&lt;td&gt;已用（Used）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;已被使用，但可以释放出来供应用程序使用&lt;/td&gt;&lt;td&gt;&lt;em&gt;&lt;strong&gt;空闲或可用（Free or Available）&lt;/strong&gt;&lt;/em&gt;&lt;/td&gt;&lt;td&gt;&lt;em&gt;&lt;strong&gt;可用（Available）&lt;/strong&gt;&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;完全未使用&lt;/td&gt;&lt;td&gt;空闲（Free）&lt;/td&gt;&lt;td&gt;空闲（Free）&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;这部分“&lt;em&gt;&lt;strong&gt;干着别的事&lt;/strong&gt;&lt;/em&gt;”的内存（&lt;em&gt;&lt;strong&gt;大致&lt;/strong&gt;&lt;/em&gt;）就是 &lt;code&gt;top/htop/btop&lt;/code&gt; 和 &lt;code&gt;free&lt;/code&gt; 命令中称为“Bufferd（&lt;em&gt;缓冲区&lt;/em&gt;）”和“Cached(&lt;em&gt;缓存&lt;/em&gt;)”的部分&lt;/p&gt;&lt;p&gt;但是由于你和 Linux 的&lt;strong&gt;描述方式不同&lt;/strong&gt;，你&lt;strong&gt;可能会在内存充裕的情况下误以为内存不足&lt;/strong&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;那怎么才能看到我到底还有多少真正的空闲内存？&lt;a href=&quot;#那怎么才能看到我到底还有多少真正的空闲内存&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;要查看你的应用程序&lt;strong&gt;在不使用交换空间的情况下&lt;/strong&gt;能使用多少内存，请运行 &lt;code&gt;free -m&lt;/code&gt; 并查看“&lt;code&gt;available&lt;/code&gt;”列：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;JH&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;on&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Monday&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;at&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;8:39&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;PM&lt;/span&gt;&lt;span&gt;                                                            &lt;/span&gt;&lt;span&gt;0.764s&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MEM:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;77.51%&lt;/span&gt;&lt;span&gt; (12/16GB)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;home&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;free&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-m&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;                &lt;/span&gt;&lt;span&gt;total&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;used&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;free&lt;/span&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;shared&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;buffered/cached&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;available&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;Mem:&lt;/span&gt;&lt;span&gt;          &lt;/span&gt;&lt;span&gt;16000&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;6560&lt;/span&gt;&lt;span&gt;         &lt;/span&gt;&lt;span&gt;212&lt;/span&gt;&lt;span&gt;           &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;             &lt;/span&gt;&lt;span&gt;9228&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;9440&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;Swap:&lt;/span&gt;&lt;span&gt;          &lt;/span&gt;&lt;span&gt;1000&lt;/span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;35.3&lt;/span&gt;&lt;span&gt;         &lt;/span&gt;&lt;span&gt;988&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;（对于 &lt;strong&gt;2014 年及以前安装的发行版&lt;/strong&gt;，请&lt;strong&gt;查看&lt;/strong&gt;“&lt;code&gt;-/+ buffers/cache&lt;/code&gt;”行中的“&lt;code&gt;free&lt;/code&gt;”列）&lt;/p&gt;&lt;p&gt;这个值就是你的答案（&lt;em&gt;单位 MiB&lt;/em&gt;）。如果你只是单纯地看“&lt;code&gt;free&lt;/code&gt;”，你以为内存已经使用了 99%，但实际上它才用了 41% 罢了！&lt;/p&gt;&lt;p&gt;&lt;em&gt;如果想从更详细、技术性的角度了解 Linux 到底把什么算作 “&lt;code&gt;available&lt;/code&gt;”，可以参见&lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773&quot; target=&quot;_blank&quot;&gt;引入该字段的提交（Commit）记录&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;所以我应该何时开始担心内存不够用了？&lt;a href=&quot;#所以我应该何时开始担心内存不够用了&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;一个&lt;strong&gt;健康的 Linux 系统&lt;/strong&gt;，在内存足够的情况下，运行一会后表现出以下预期且（&lt;em&gt;&lt;strong&gt;人畜？&lt;/strong&gt;&lt;/em&gt;）无害的行为：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;free&lt;/code&gt; 内存接近 &lt;code&gt;0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;available&lt;/code&gt; 内存（或“&lt;code&gt;free&lt;/code&gt; + &lt;code&gt;buffered&lt;/code&gt;/&lt;code&gt;cached&lt;/code&gt;”）有足够的余量&lt;/li&gt;
&lt;li&gt;&lt;code&gt;swap used&lt;/code&gt; 几乎不发生变化&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;但是如果出现&lt;strong&gt;以下信号&lt;/strong&gt;，那么表示你&lt;strong&gt;确实&lt;/strong&gt;已经处在低内存状况下了：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;available&lt;/code&gt; 内存（或“&lt;code&gt;free&lt;/code&gt; + &lt;code&gt;buffered&lt;/code&gt;/&lt;code&gt;cached&lt;/code&gt;”）接近 &lt;code&gt;0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;swap used&lt;/code&gt; 持续增加或波动&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dmesg | grep oom-killer&lt;/code&gt; 显示 &lt;code&gt;OutOfMemory-killer&lt;/code&gt;（&lt;em&gt;内存溢出杀手&lt;/em&gt;）已经开始&lt;em&gt;&lt;strong&gt;大开杀戒&lt;/strong&gt;&lt;/em&gt;了&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;我如何验证以上这些结论？&lt;a href=&quot;#我如何验证以上这些结论&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;em&gt;请移步&lt;a href=&quot;https://www.linuxatemyram.com/play.html&quot; target=&quot;_blank&quot;&gt;此页面&lt;/a&gt;查看更多技术细节，并亲自上手做个磁盘缓存小实验来见证本文所述功能的效果&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;没有什么比在自己的硬件上测出指数级提升の速度，更能让你领略磁盘缓存的真香定理了！&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;LinuxAteMyRam.com&quot;&gt;LinuxAteMyRam.com&lt;/a&gt;&lt;/strong&gt; 由 &lt;a href=&quot;http://www.vidarholen.net/&quot; target=&quot;_blank&quot;&gt;VidarHolen.net&lt;/a&gt; 倾情奉献 本网站已&lt;a href=&quot;https://github.com/koalaman/linuxatemyram.com&quot; target=&quot;_blank&quot;&gt;在 GitHub 上开源&lt;/a&gt;，欢迎提出建议或提交 PR&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Tip&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;此博客也已&lt;a href=&quot;https://github.com/Jack-Huang-2020/jack-huang-2020.github.io&quot; target=&quot;_blank&quot;&gt;在 Github 开源&lt;/a&gt;，欢迎提出建议或提交 PR&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Caution&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Tranlated by &lt;a href=&quot;/about&quot;&gt;𝚒𝚖𝚙𝚘𝚛𝚝 { 𝘑𝘢𝘤𝘬 𝘏𝘶𝘢𝘯𝘨 } 𝚏𝚛𝚘𝚖 ‘☘️’;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;转载请标注原译者和作者&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;原文&lt;a href=&quot;#原文&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;section&gt;&lt;h2&gt;What’s going on?&lt;a href=&quot;#whats-going-on&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Like all modern operating systems, Linux is borrowing unused memory for disk caching. This makes it look like you are low on “free” memory, but you are not! Everything is fine!&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;Why is it doing this?&lt;a href=&quot;#why-is-it-doing-this&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Disk caching makes the system much faster and more responsive! There are no downsides, except for confusing users who are new to computing, and unfamiliar with the concept of a filesystem cache. It doesn’t generally take memory away from applications.&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;What if I want to run more applications?&lt;a href=&quot;#what-if-i-want-to-run-more-applications&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;If your applications want more memory, the kernel will just take back a chunk that the disk cache borrowed. Disk cache can always be given back to applications immediately! You are not low on ram!&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;Do I need more swap?&lt;a href=&quot;#do-i-need-more-swap&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Probably not; disk caching primarily borrows the ram that applications don’t currently want. If applications want more memory, the kernel will take it back from the disk cache. Linux &lt;em&gt;can&lt;/em&gt; push application memory into swap if that memory is accessed less often than the filesystem cache, but this will typically improve performance, not hurt it.&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;How do I stop Linux from doing this?&lt;a href=&quot;#how-do-i-stop-linux-from-doing-this&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;You can’t completely disable disk caching, (but you can tune Linux’s “swapiness”). The only reason anyone ever wants to disable disk caching is because they think it takes memory away from their applications, which it doesn’t! Disk cache makes applications load faster and run smoother, but it NEVER EVER takes memory away from them! Therefore, there’s absolutely no reason to disable it!&lt;/p&gt;&lt;p&gt;If, however, you find yourself needing to clear some RAM quickly for some reason, like benchmarking the cold-start of an uncached application, you can force linux to nondestructively &lt;a href=&quot;https://linux-mm.org/Drop_Caches&quot; target=&quot;_blank&quot;&gt;drop caches&lt;/a&gt; using &lt;code&gt;echo 3 | sudo tee /proc/sys/vm/drop_caches&lt;/code&gt;.&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;Why do top and free say that so little ram is free if it is?&lt;a href=&quot;#why-do-top-and-free-say-that-so-little-ram-is-free-if-it-is&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;This is just a difference in terminology. Both you and Linux agree that memory taken by applications is “used”, while memory that isn’t used for anything is “free”.&lt;/p&gt;&lt;p&gt;But how do you count memory that is currently used for something, but can still be made available to applications?&lt;/p&gt;&lt;p&gt;You might count that memory as “free” and/or “available”. Linux instead counts it as “available”:&lt;/p&gt;
























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Memory that is&lt;/th&gt;&lt;th&gt;You’d call it&lt;/th&gt;&lt;th&gt;Linux calls it&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;used by applications&lt;/td&gt;&lt;td&gt;Used&lt;/td&gt;&lt;td&gt;Used&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;used, but can be made available&lt;/td&gt;&lt;td&gt;Free (or Available)&lt;/td&gt;&lt;td&gt;Available&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;not used for anything&lt;/td&gt;&lt;td&gt;Free&lt;/td&gt;&lt;td&gt;Free&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;This “something” is (roughly) what top and free calls “buffers” and “cached”. Since your and Linux’s terminology differs, you might think you are low on ram when you’re not.&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;How do I see how much free ram I really have?&lt;a href=&quot;#how-do-i-see-how-much-free-ram-i-really-have&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;To see how much ram your applications could use without swapping, run &lt;code&gt;free -m&lt;/code&gt; and look at the “available” column:&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;$ free -m&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;total        used        free      shared  buff/cache   available&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;Mem:           1504         636          13           0         855      792&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;Swap:          2047           6        2041&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;(On installations from before 2014, look at “free” column in the ”-/+ buffers/cache” row instead.)&lt;/p&gt;&lt;p&gt;This is your answer in MiB. If you just naively look at “free”, you’ll think your ram is 99% full when it’s really just 42%!&lt;/p&gt;&lt;p&gt;For a more detailed and technical description of what Linux counts as “available”, see &lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773&quot; target=&quot;_blank&quot;&gt;the commit that added the field&lt;/a&gt;.&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;When should I start to worry?&lt;a href=&quot;#when-should-i-start-to-worry&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A &lt;strong&gt;healthy Linux system&lt;/strong&gt; with more than enough memory will, after running for a while, show the following expected and harmless behavior:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;free&lt;/code&gt; memory is close to &lt;code&gt;0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;available&lt;/code&gt; memory (or “free + buffers/cache”) has enough room (let’s say, 20%+ of total)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;swap used&lt;/code&gt; does not change&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Warning signs&lt;/strong&gt; of a genuine low memory situation that you may want to look into:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;available&lt;/code&gt; memory (or “free + buffers/cache”) is close to zero&lt;/li&gt;
&lt;li&gt;&lt;code&gt;swap used&lt;/code&gt; increases or fluctuates&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dmesg | grep oom-killer&lt;/code&gt; shows the OutOfMemory-killer at work&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;How can I verify these things?&lt;a href=&quot;#how-can-i-verify-these-things&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;See &lt;a href=&quot;https://www.linuxatemyram.com/play.html&quot; target=&quot;_blank&quot;&gt;this page&lt;/a&gt; for more details and how you can experiment with disk cache to show the effects described here. Few things make you appreciate disk caching more than measuring an order-of-magnitude speedup on your own hardware!&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Note&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;LinuxAteMyRam.com&quot;&gt;LinuxAteMyRam.com&lt;/a&gt;&lt;/strong&gt; was presented by &lt;a href=&quot;http://www.vidarholen.net/&quot; target=&quot;_blank&quot;&gt;VidarHolen.net&lt;/a&gt;. This site is available &lt;a href=&quot;https://github.com/koalaman/linuxatemyram.com&quot; target=&quot;_blank&quot;&gt;on GitHub&lt;/a&gt; for comments and PRs.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;/section&gt;</content:encoded></item></channel></rss>