<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN">
    <title>22&#x27;s Blog</title>
    <subtitle>22&#x27;s Blog</subtitle>
    <link rel="self" type="application/atom+xml" href="https://nini22p.github.io/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://nini22p.github.io"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2025-12-29T00:00:00+00:00</updated>
    <id>https://nini22p.github.io/atom.xml</id>
    <entry xml:lang="zh-CN">
        <title>《可塑性记忆》解包和封包教程</title>
        <published>2025-12-29T00:00:00+00:00</published>
        <updated>2025-12-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/plastic-memories-unpack-and-repack/"/>
        <id>https://nini22p.github.io/blog/plastic-memories-unpack-and-repack/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/plastic-memories-unpack-and-repack/">&lt;p&gt;我也不清楚为什么要写这个，或许未来用得到吧。&lt;&#x2F;p&gt;
&lt;p&gt;我首先在网络上查询到了 woqux02 的 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.cnblogs.com&#x2F;woqux02&#x2F;p&#x2F;13615513.html&quot;&gt;这篇文章&lt;&#x2F;a&gt;。得知使用 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;UlyssesWu&#x2F;FreeMote&quot;&gt;FreeMote&lt;&#x2F;a&gt; 即可解包和封包。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;jie-bao&quot;&gt;解包&lt;&#x2F;h2&gt;
&lt;p&gt;于是我下载了 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;UlyssesWu&#x2F;FreeMote&quot;&gt;FreeMote&lt;&#x2F;a&gt; 的&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;UlyssesWu&#x2F;FreeMote&#x2F;releases&quot;&gt;最新版本&lt;&#x2F;a&gt;，解压后，放到某个文件夹然后添加到系统环境变量中。&lt;&#x2F;p&gt;
&lt;p&gt;然后在已解密的游戏文件夹下打开 Shell，运行&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;psbdecompile&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; info-psb&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -k&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; 2shj693vwue5t&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -l 131 -a&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; scenario_info.psb.m&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;然后文件夹下会生成一个 &lt;code&gt;scenario&lt;&#x2F;code&gt; 文件夹，里面就是解包出来的脚本文件，还有 &lt;code&gt;scenario_info.psb.m.json&lt;&#x2F;code&gt; 和 &lt;code&gt;scenario_info.psb.m.resx.json&lt;&#x2F;code&gt; 两个文件。其他的文件同理。&lt;&#x2F;p&gt;
&lt;p&gt;另外 PC 版本的密钥是 &lt;code&gt;38757621acf82&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;feng-bao&quot;&gt;封包&lt;&#x2F;h2&gt;
&lt;p&gt;封包的话，我建议把之前解包出来的 &lt;code&gt;scenario&lt;&#x2F;code&gt; 文件夹和 &lt;code&gt;scenario_info.psb.m.json&lt;&#x2F;code&gt; 和 &lt;code&gt;scenario_info.psb.m.resx.json&lt;&#x2F;code&gt; 两个文件复制到一个新的文件夹中，防止覆盖原文件。然后运行&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;psbuild&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; info-psb scenario_info.psb.m.json&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;对脚本进行封包。文件夹下会生成 &lt;code&gt;scenario_body.bin&lt;&#x2F;code&gt; 和 &lt;code&gt;scenario_info.psb.m&lt;&#x2F;code&gt; 两个文件。其他文件同理。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;zhi-zuo-xiao-ti-ji-de-bu-ding-bao&quot;&gt;制作小体积的补丁包&lt;&#x2F;h2&gt;
&lt;p&gt;一般来说到这里就结束了，但是我看到英化组的补丁很小，只打包了必要的文件进去。于是我解包研究了一下实现了同样的效果。&lt;&#x2F;p&gt;
&lt;p&gt;首先解包 &lt;code&gt;config_info.psb.m&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;psbdecompile&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; info-psb&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -k&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; 2shj693vwue5t&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -l 131 -a&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config_info.psb.m&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;把解包得到的 &lt;code&gt;config&lt;&#x2F;code&gt; 文件夹和 &lt;code&gt;config_info.psb.m.json&lt;&#x2F;code&gt; 和 &lt;code&gt;config_info.psb.m.resx.json&lt;&#x2F;code&gt; 两个文件移动到一个新的文件夹中。&lt;&#x2F;p&gt;
&lt;p&gt;打开 &lt;code&gt;config&#x2F;init.psb.m.json&lt;&#x2F;code&gt;，找到 &lt;code&gt;archives&lt;&#x2F;code&gt; 这个节点，这里可以看到要加载的资源。然后我们添加上我们自己的补丁包名称。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;json&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;archives&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;patch&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; &#x2F;&#x2F; 添加我们的补丁包名称&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;font&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;font&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;image&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;image&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;motion&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;motion&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;scenario&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;scenario&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;sound&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;sound&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;voice&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;voice&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;然后运行&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;psbuild&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; info-psb config_info.psb.m.json&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;即可对配置文件进行封包。然后文件夹下会生成 &lt;code&gt;config_body.bin&lt;&#x2F;code&gt; 和 &lt;code&gt;config_info.psb.m&lt;&#x2F;code&gt; 两个文件。&lt;&#x2F;p&gt;
&lt;p&gt;接下来就是制作补丁包了，只是文件结构稍有不同。我们在 &lt;code&gt;config_info.psb.m.json&lt;&#x2F;code&gt; 同级目录新建一个 &lt;code&gt;patch&lt;&#x2F;code&gt; 文件夹，然后把解包的 &lt;code&gt;scenario&lt;&#x2F;code&gt; 文件夹复制到 &lt;code&gt;patch&lt;&#x2F;code&gt; 文件夹中。&lt;&#x2F;p&gt;
&lt;p&gt;现在文件夹结构&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; patch&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   └── scenario&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config_body.bin&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config_info.psb.m&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config_info.psb.m.json&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;└──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config_info.psb.m.resx.json&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;新建一个 &lt;code&gt;patch_info.psb.m.json&lt;&#x2F;code&gt; 文件&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;json&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;expire_suffix_list&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;.psb.m&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  ],&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;file_info&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; {},&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;id&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;archive&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;version&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 1.0&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;再新建一个 &lt;code&gt;patch_info.psb.m.resx.json&lt;&#x2F;code&gt; 文件&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;json&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;PsbVersion&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 2&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;PsbType&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;ArchiveInfo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;Platform&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;none&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;CryptKey&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; null&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;ExternalTextures&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; false&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;Context&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;MdfKeyLength&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 131&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;FileName&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;patch_info.psb.m&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;MdfKey&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;2shj693vwue5tpatch_info.psb.m&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;PsbZlibFastCompress&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; false&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;PsbShellType&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;MDF&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;ArchiveSource&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;      &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;patch&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    ],&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;MdfMtKey&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;2shj693vwue5t&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;ArchiveItemFileNames&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; [],&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;BodyBinName&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;patch_body.bin&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;Resources&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FE;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; null&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;现在的文件夹结构&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; patch&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   └── scenario&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config_body.bin&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config_info.psb.m&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config_info.psb.m.json&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config_info.psb.m.resx.json&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; patch_info.psb.m.json&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;└──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; patch_info.psb.m.resx.json&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;然后运行&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;psbuild&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; info-psb patch_info.psb.m.json&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;即可对补丁包进行封包。然后文件夹下会生成 &lt;code&gt;patch_body.bin&lt;&#x2F;code&gt; 和 &lt;code&gt;patch_info.psb.m&lt;&#x2F;code&gt; 两个文件。&lt;&#x2F;p&gt;
&lt;p&gt;接下来往 &lt;code&gt;patch&lt;&#x2F;code&gt; 里放置 &lt;code&gt;font&lt;&#x2F;code&gt;、&lt;code&gt;image&lt;&#x2F;code&gt; 和 &lt;code&gt;motion&lt;&#x2F;code&gt; 这几个解包出来的文件夹。&lt;&#x2F;p&gt;
&lt;p&gt;现在的文件夹结构&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; patch&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   ├── font&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   ├── image&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   ├── motion&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   └── scenario&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config_body.bin&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config_info.psb.m&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config_info.psb.m.json&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; config_info.psb.m.resx.json&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; patch_body.bin&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; patch_info.psb.m&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; patch_info.psb.m.json&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;└──&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; patch_info.psb.m.resx.json&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;然后运行&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;psbuild&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; info-psb patch_info.psb.m.json&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;重新对补丁包进行封包。&lt;&#x2F;p&gt;
&lt;p&gt;将 &lt;code&gt;config_body.bin&lt;&#x2F;code&gt;、&lt;code&gt;config_info.psb.m&lt;&#x2F;code&gt;、&lt;code&gt;patch_body.bin&lt;&#x2F;code&gt; 和 &lt;code&gt;patch_info.psb.m&lt;&#x2F;code&gt; 这几个文件复制到模拟器游戏文件夹中运行，可以在控制台看到大部分资源都是从补丁包中加载的。&lt;&#x2F;p&gt;
&lt;p&gt;当然现在的补丁包还是太大了，最好是只在 patch 文件夹里放修改过的文件。这样再打包就实现小体积的补丁包了。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;zi-ti-chu-li&quot;&gt;字体处理&lt;&#x2F;h2&gt;
&lt;p&gt;原来的汉化字体纹理歪歪扭扭，还有锯齿，出于强迫症，我尝试写了一个&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nini22P&#x2F;plastic-memories-font-tool&quot;&gt;字体工具&lt;&#x2F;a&gt;，效果还不错，感兴趣的可以看一看。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;tu-pian-chu-li&quot;&gt;图片处理&lt;&#x2F;h2&gt;
&lt;p&gt;PSV 版本解包出来的图片包含有 8 位和 32 位两种的，注意汉化图片导出时的色深要与原图一致。PC 版的图片默认就是 32 位的，可以不用特地处理。&lt;&#x2F;p&gt;
&lt;p&gt;在导出 8 位图片前要在 PS 中将 &lt;code&gt;导出首选项&lt;&#x2F;code&gt; 里的 &lt;code&gt;使用旧版“导出为”&lt;&#x2F;code&gt; 选项勾上。&lt;&#x2F;p&gt;
&lt;p&gt;当然，如果你不想导出 8 位图片，你也可以修改对应的 &lt;code&gt;psb.m.json&lt;&#x2F;code&gt;，将 &lt;code&gt;CI8_SW&lt;&#x2F;code&gt; 和 &lt;code&gt;RGBA8_SW&lt;&#x2F;code&gt; 改为 &lt;code&gt;RGBA8&lt;&#x2F;code&gt; 即可使用默认导出的 32 位图片。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;can-kao&quot;&gt;参考&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.cnblogs.com&#x2F;woqux02&#x2F;p&#x2F;13615513.html&quot;&gt;woqux02 的文章&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;UlyssesWu&#x2F;FreeMote&quot;&gt;FreeMote&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>《星辰恋曲的白色永恒 -White Eternity-》PlayStation Vita 简体中文汉化补丁</title>
        <published>2025-12-24T00:00:00+00:00</published>
        <updated>2025-12-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/white-eternity-chs/"/>
        <id>https://nini22p.github.io/blog/white-eternity-chs/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/white-eternity-chs/">&lt;h2 id=&quot;yi-hua-jie-shao&quot;&gt;汉化介绍&lt;&#x2F;h2&gt;
&lt;p&gt;本汉化补丁基于 &lt;strong&gt;X’moe 汉化组&lt;&#x2F;strong&gt;的 PC 版本汉化文本制作，请遵守原汉化补丁的相关规定。&lt;br &#x2F;&gt;
PSV 版本新增和修改部分的文本使用 Gemini 3 Pro 翻译。部分文本已根据主机平台特性进行了针对性修改。&lt;&#x2F;p&gt;
&lt;p&gt;感谢 jyxjyx1234 的文本提取教程，以及 KanadeKuro 对游戏进行了实机测试。&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;已知问题：&lt;&#x2F;strong&gt;
由于技术限制，当前版本仅对游戏剧情文本进行了汉化，&lt;strong&gt;UI 界面暂时保持原版（日文）&lt;&#x2F;strong&gt;。&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;geng-xin-ri-zhi&quot;&gt;更新日志&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2025&#x2F;12&#x2F;24&lt;&#x2F;strong&gt;: 初版发布。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;xia-zai-di-zhi&quot;&gt;下载地址&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;mega.nz&#x2F;folder&#x2F;GElEDQzD#aYTnjrZGJ47fl3dfsnZl_A&quot;&gt;MEGA&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;pan.baidu.com&#x2F;s&#x2F;5gtet528o5hFGynYrTqe4bg&quot;&gt;百度网盘&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;an-zhuang-fang-fa&quot;&gt;安装方法&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;psv-shi-ji&quot;&gt;PSV 实机&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;确保实机已安装原版游戏及 &lt;strong&gt;repatch&lt;&#x2F;strong&gt; 插件。&lt;&#x2F;li&gt;
&lt;li&gt;下载汉化补丁并解压。&lt;&#x2F;li&gt;
&lt;li&gt;将解压得到的 &lt;code&gt;repatch&lt;&#x2F;code&gt; 文件夹通过 FTP 或 USB 复制到 &lt;code&gt;ux0:&#x2F;&lt;&#x2F;code&gt; 目录下。&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h3 id=&quot;vita3k-mo-ni-qi&quot;&gt;Vita3K 模拟器&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;在模拟器内安装原版游戏。&lt;&#x2F;li&gt;
&lt;li&gt;下载汉化补丁压缩包。&lt;&#x2F;li&gt;
&lt;li&gt;在模拟器菜单栏中依次选择 &lt;code&gt;文件&lt;&#x2F;code&gt; -&amp;gt; &lt;code&gt;安装 .zip、.vpk&lt;&#x2F;code&gt; -&amp;gt; &lt;code&gt;选择文件&lt;&#x2F;code&gt;。&lt;&#x2F;li&gt;
&lt;li&gt;选择下载的补丁包并等待安装完成。&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>樱花萌放 switch 版本汉化逆向</title>
        <published>2025-06-09T00:00:00+00:00</published>
        <updated>2025-06-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/sakura-moyu-switch-reverse/"/>
        <id>https://nini22p.github.io/blog/sakura-moyu-switch-reverse/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/sakura-moyu-switch-reverse/">&lt;p&gt;之前通关了樱花萌放实在是意犹未尽，看到有 switch 版本，分辨率也比 PC 版本高，想看看能不能移植汉化。&lt;&#x2F;p&gt;
&lt;p&gt;使用模拟器提取 RomFS 后发现脚本文件可以直接查看，但是使用的 Shift-JIS 编码，大部分汉字在保存后会变成乱码，手动改为 UTF-8 后点击新游戏会黑屏，说明需要改程序禁用掉 Shift-JIS 编码转换为 UTF-8 的函数，直接读取 UTF-8 编码的脚本。&lt;&#x2F;p&gt;
&lt;p&gt;接下来就需要对程序进行逆向，先使用模拟器提取出 ExeFS，得到 &lt;code&gt;main&lt;&#x2F;code&gt; 文件。
接着使用 nx2elf2nso 中的 &lt;code&gt;decompress.cmd&lt;&#x2F;code&gt; 将 &lt;code&gt;main&lt;&#x2F;code&gt; 文件转换为 &lt;code&gt;main.elf&lt;&#x2F;code&gt; 文件。
再使用 Il2CppDumper 提取出 il2cpp 文件：&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;.&#x2F;Il2CppDumper&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;main&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;global-metadata.dat&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; output&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;使用 IDA PRO 打开 &lt;code&gt;main.elf&lt;&#x2F;code&gt; 文件，先让程序分析一会。&lt;&#x2F;p&gt;
&lt;p&gt;接下来要找到 Shift-JIS 编码转换为 UTF-8 的地方，打开 Il2CppDumper 生成的 &lt;code&gt;dump.cs&lt;&#x2F;code&gt; 文件，搜索 &lt;code&gt;jis&lt;&#x2F;code&gt;, 果不其然，找到了一个 &lt;code&gt;ToUnicode&lt;&#x2F;code&gt; 函数，是传入 Shift-JIS 字节数组，返回 UTF-8 编码文本的函数。可以看到位置是在 &lt;code&gt;0x1AB1B50&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;csharp&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt;&#x2F;&#x2F; Namespace: USEncoder&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;public class&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt; ToEncoding&lt;&#x2F;span&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; &#x2F;&#x2F; TypeDefIndex: 1608&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; &#x2F;&#x2F; Methods&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; &#x2F;&#x2F; RVA: 0x1AB1790 Offset: 0x1AB1891 VA: 0x1AB1790&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; public static byte&lt;&#x2F;span&gt;&lt;span&gt;[]&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; ToSJIS&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;string&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt; unicode_str&lt;&#x2F;span&gt;&lt;span&gt;) { }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; &#x2F;&#x2F; RVA: 0x1AB1B50 Offset: 0x1AB1C51 VA: 0x1AB1B50&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; public static string&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; ToUnicode&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;byte&lt;&#x2F;span&gt;&lt;span&gt;[]&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt; sjis_bytes&lt;&#x2F;span&gt;&lt;span&gt;) { }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; &#x2F;&#x2F; RVA: 0x1AB1F20 Offset: 0x1AB2021 VA: 0x1AB1F20&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; public&lt;&#x2F;span&gt;&lt;span&gt; void .&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;ctor&lt;&#x2F;span&gt;&lt;span&gt;() { }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;返回 IDA PRO，点击左上角 &lt;code&gt;File&lt;&#x2F;code&gt; -&amp;gt; &lt;code&gt;Script file&lt;&#x2F;code&gt;，选择 Il2CppDumper 同目录下的 &lt;code&gt;ida_py3.py&lt;&#x2F;code&gt; 文件，接着会弹窗让你选择一个 json 文件，这里选择 Il2CppDumper 生成的 &lt;code&gt;script.json&lt;&#x2F;code&gt; 文件。IDA PRO 会自动加载 Il2CppDumper 生成的符号表，方便我们定位函数。&lt;&#x2F;p&gt;
&lt;p&gt;按 G 键打开跳转菜单，填入上面得到的 &lt;code&gt;0x1AB1B50&lt;&#x2F;code&gt; 后确定，我们就来到了 &lt;code&gt;ToUnicode&lt;&#x2F;code&gt; 函数的位置。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;posts&#x2F;141434.png&quot; alt=&quot;ToUnicode 函数&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;我一开始尝试通过直接修改这个函数，但是修改后会导致无法进入游戏。&lt;&#x2F;p&gt;
&lt;p&gt;后面等到 IDA PRO 分析完毕后，将鼠标聚焦到 &lt;code&gt;ToUnicode&lt;&#x2F;code&gt; 函数名称上，按 X 键会弹出调用这个函数的地方，发现有个读取 ks 脚本的函数调用了 &lt;code&gt;ToUnicode&lt;&#x2F;code&gt; 函数，这样的话我们可以通过修改调用 &lt;code&gt;ToUnicode&lt;&#x2F;code&gt; 这个位置来截胡，直接读取 UTF-8 编码的文本。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;posts&#x2F;144446.png&quot; alt=&quot;调用 ToUnicode 的函数&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;点击确认后打开调用 &lt;code&gt;ToUnicode&lt;&#x2F;code&gt; 函数的位置 &lt;code&gt;0x244A5C4&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;posts&#x2F;144747.png&quot; alt=&quot;调用 ToUnicode 的位置&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;之前提到 &lt;code&gt;ToUnicode&lt;&#x2F;code&gt; 函数输入一个 Shift-JIS 字节数组，返回 UTF -8 编码文本，如果要改为读取 UTF-8 编码的脚本，那就是要写一段函数，输入一个 UTF-8 字节数组，返回 UTF-8 编码文本。幸运的是 unity 提供了我们需要的函数。打开之前的 &lt;code&gt;dump.cs&lt;&#x2F;code&gt; 文件搜索 &lt;code&gt;utf8&lt;&#x2F;code&gt;，最终我们能找到一个 &lt;code&gt;get_UTF8NoBOM&lt;&#x2F;code&gt; 函数，来获取 UTF-8 编码器对象。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;csharp&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; &#x2F;&#x2F; RVA: 0x20BAD60 Offset: 0x20BAE61 VA: 0x20BAD60&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; private static&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;font-style: italic;&quot;&gt; Encoding&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; get_UTF8NoBOM&lt;&#x2F;span&gt;&lt;span&gt;() { }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;搜索 &lt;code&gt;getstring&lt;&#x2F;code&gt;，有一个 &lt;code&gt;GetString&lt;&#x2F;code&gt; 函数，可以调用上面编码器对象的 &lt;code&gt;GetString&lt;&#x2F;code&gt; 方法，把字节数组转换为 UTF-8 编码的文本。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;csharp&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; &#x2F;&#x2F; RVA: 0x2538EA0 Offset: 0x2538FA1 VA: 0x2538EA0 Slot: 34&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; public virtual string&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; GetString&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;byte&lt;&#x2F;span&gt;&lt;span&gt;[]&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt; bytes&lt;&#x2F;span&gt;&lt;span&gt;) { }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;等等，这里只能改一行，该怎么写下多行呢，翻遍也没找到空白区域给我们用。那就只能找一下没用的函数，借点空间用。&lt;&#x2F;p&gt;
&lt;p&gt;由于 switch 和 PS4 版本用的同一套程序，所以可以思考 switch 版本缺失的功能，短暂的思考后想到了 switch 是没有成就系统的，所以可以从这方面着手。在 &lt;code&gt;dump.cs&lt;&#x2F;code&gt; 中搜索 &lt;code&gt;achievement&lt;&#x2F;code&gt;, 能找到相关代码，可以尝试。最终我选择了这个 &lt;code&gt;UnlockReadKs&lt;&#x2F;code&gt; 函数：&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;csharp&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; &#x2F;&#x2F; RVA: 0x271B170 Offset: 0x271B271 VA: 0x271B170&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; private bool&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; UnlockReadKs&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;int&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt; type&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;font-style: italic;&quot;&gt; AchievementReadCondition&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt; args&lt;&#x2F;span&gt;&lt;span&gt;) { }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;来到 &lt;code&gt;0x271B170&lt;&#x2F;code&gt; 处，可以看到空间很够，最后的语句是 &lt;code&gt;RET&lt;&#x2F;code&gt; 返回。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;posts&#x2F;150839.png&quot; alt=&quot;UnlockReadKs 函数&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;想要借用空间，可以直接在一开始就通过 &lt;code&gt;右键&lt;&#x2F;code&gt; -&amp;gt; &lt;code&gt;Assemble&lt;&#x2F;code&gt;, 将这行修改为 &lt;code&gt;RET&lt;&#x2F;code&gt;, 为了防止意外，可以把函数剩下的改为 &lt;code&gt;NOP&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;posts&#x2F;151231.png&quot; alt=&quot;修改后的 UnlockReadKs 函数&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;先记下要跳到的位置 &lt;code&gt;0x271B174&lt;&#x2F;code&gt;, 然后来到调用 &lt;code&gt;ToUnicode&lt;&#x2F;code&gt; 函数的位置 &lt;code&gt;0x244A5C4&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;p&gt;将 &lt;code&gt;0x244A5C4&lt;&#x2F;code&gt; 这行修改为 &lt;code&gt;B 0x271B174&lt;&#x2F;code&gt;，这将会作为跳板跳转到 &lt;code&gt;0x271B174&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;posts&#x2F;151807.png&quot; alt=&quot;修改调用 ToUnicode 的位置&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;接着我们来到 &lt;code&gt;0x271B174&lt;&#x2F;code&gt;，开始编写汇编代码。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;asm&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;MOV&lt;&#x2F;span&gt;&lt;span&gt;     X21, X0&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;BL      0x20BAD60&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;MOV&lt;&#x2F;span&gt;&lt;span&gt;     X1, X21&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;BL      0x2538EA0&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;MOV&lt;&#x2F;span&gt;&lt;span&gt;     X2, X0&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;B       &lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;0x244A5C8&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;最后这行是跳回调用 &lt;code&gt;ToUnicode&lt;&#x2F;code&gt; 函数的位置的下一行，也就是我们之前跳板跳转的位置的下一行。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;posts&#x2F;152755.png&quot; alt=&quot;修改后的 UnlockReadKs 函数&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;通过左上角的 &lt;code&gt;Edit&lt;&#x2F;code&gt; -&amp;gt; &lt;code&gt;Path program&lt;&#x2F;code&gt; -&amp;gt; &lt;code&gt;Apply Pathes to...&lt;&#x2F;code&gt; 将补丁应用到 &lt;code&gt;main.elf&lt;&#x2F;code&gt; 文件。&lt;&#x2F;p&gt;
&lt;p&gt;用 nx2elf2nso 中的 &lt;code&gt;compress.cmd&lt;&#x2F;code&gt; 将 &lt;code&gt;main.elf&lt;&#x2F;code&gt; 转换为 &lt;code&gt;main.nso&lt;&#x2F;code&gt;。在模拟器中打开 mod 目录，保存到 &lt;code&gt;&amp;lt;mod名&amp;gt;&#x2F;exefs&#x2F;main&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;p&gt;最后将提取的 &lt;code&gt;romfs&#x2F;Data&#x2F;StreamingAssets&#x2F;ks&lt;&#x2F;code&gt; 下的文件复制到 &lt;code&gt;&amp;lt;mod名&amp;gt;&#x2F;romfs&#x2F;Data&#x2F;StreamingAssets&#x2F;ks&lt;&#x2F;code&gt;，可以只复制 ks 文件，然后把文本编码改为 UTF-8，改一点文本，打开游戏测试成功显示。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;posts&#x2F;031354.webp&quot; alt=&quot;&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;至于字体的修改就不在本期内容里了（逃）。&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>Surface Go 3 降级 Windows 10</title>
        <published>2025-04-26T00:00:00+00:00</published>
        <updated>2025-04-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/surface-go-3-downgrade-windows-10/"/>
        <id>https://nini22p.github.io/blog/surface-go-3-downgrade-windows-10/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/surface-go-3-downgrade-windows-10/">&lt;p&gt;随着 Windows 11 更新，这颗奔腾处理器是越来越不够用了，每次打开都是 Windows Update 占满 CPU，硬控半小时。于是想办法降级到 Windows 10。&lt;&#x2F;p&gt;
&lt;p&gt;但是微软只对商用版本提供了 Windows 10 的恢复映像，那怎么办呢，我通过上网查找相关图片，通过拼接序列号的方式下载到了 Windows 10 的恢复映像。下面是尝试过的序列号。需要自己尝试的可以通过修改 &lt;code&gt;0B34BCB&lt;&#x2F;code&gt; 后面的四位数字。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Surface Go 3 P&#x2F;8&#x2F;128&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;0B34BCB213333F BMR_16020&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;0B34BCB213733F BMR_176020&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;0B34BCB214633F BMR_186020&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;0B34BCB220433F BMR_86020&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;ul&gt;
&lt;li&gt;Surface Go 3 P&#x2F;4&#x2F;64&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;0B34BCB214733F BMR_186220&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;0B34BCB215333F BMR_86220&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;0B34BCB220733F BMR_86220&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;0B34BCB220833F BMR_186220&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;ul&gt;
&lt;li&gt;Surface Go 3 i3&#x2F;8&#x2F;128&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;0B34BCB214833F BMR_16020&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;0B34BCB215233F BMR_176020&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;0B34BCB221033F BMR_86020&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;ul&gt;
&lt;li&gt;Surface Go 3 i3&#x2F;4&#x2F;64&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;0B34BCB220933F BMR_146220&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;可以看到恢复映像版本也有不同，经测试包含中文的版本是 &lt;code&gt;BMR_186220&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;p&gt;拿到了序列号后就可以去微软网站下载恢复映像了。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;support.microsoft.com&#x2F;zh-cn&#x2F;surface-recovery-image&quot;&gt;Surface 恢复映像下载&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;最后根据官方的文档创建恢复驱动器并恢复即可。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;support.microsoft.com&#x2F;zh-cn&#x2F;surface&#x2F;%E5%88%9B%E5%BB%BA%E5%92%8C%E4%BD%BF%E7%94%A8-surface-%E7%9A%84-usb-%E6%81%A2%E5%A4%8D%E9%A9%B1%E5%8A%A8%E5%99%A8-677852e2-ed34-45cb-40ef-398fc7d62c07&quot;&gt;创建和使用 Surface 的 USB 恢复驱动器&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>Clash Verge Rev 全局扩展脚本</title>
        <published>2024-10-13T00:00:00+00:00</published>
        <updated>2024-10-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/clash-verge-rev-global-extension-script/"/>
        <id>https://nini22p.github.io/blog/clash-verge-rev-global-extension-script/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/clash-verge-rev-global-extension-script/">&lt;p&gt;&lt;strong&gt;更新：推荐使用 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;clash-composer.pages.dev&#x2F;&quot;&gt;Clash Composer&lt;&#x2F;a&gt;，可以填写表单生成订阅链接和脚本&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;将全局扩展脚本并替换为如下脚本，然后根据实际情况添加域名或 IP 规则即可。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt;&#x2F;&#x2F; 代理域名&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; proxyDomains&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; []&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt;&#x2F;&#x2F; 代理GEOSITE&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; proxyGeoSites&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;  &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;github&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt;&#x2F;&#x2F; 直连域名关键词&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; directDomainKeywords&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; []&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt;&#x2F;&#x2F; 直连域名&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; directDomains&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; []&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt;&#x2F;&#x2F; 直连IP&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; directIPs&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; []&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt;&#x2F;&#x2F; 直连GEOSITE&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; directGeoSites&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; []&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt;&#x2F;&#x2F; 直连GEOIP&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; directGeoIPs&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; []&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt;&#x2F;**&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; * &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;@typedef&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;font-style: italic;&quot;&gt; {Object} ProxyGroup&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; * &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;@property&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;font-style: italic;&quot;&gt; {string}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt; name&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; * &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;@property&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;font-style: italic;&quot;&gt; {boolean}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt; [directFirst]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; * &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;@property&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;font-style: italic;&quot;&gt; {string[]}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt; [filters]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; * &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;@property&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;font-style: italic;&quot;&gt; {string[]}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt; [domains]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; * &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;@property&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;font-style: italic;&quot;&gt; {string[]}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt; [domainKeywords]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; * &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;@property&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;font-style: italic;&quot;&gt; {string[]}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt; [geoSites]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; * &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;@property&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;font-style: italic;&quot;&gt; {string[]}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt; [geoIPs]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; *&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt;&#x2F;** 代理组&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; *  &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;@type&lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;font-style: italic;&quot;&gt; {ProxyGroup[]}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt; *&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; proxyGroups&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;Google&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    geoSites&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;google&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;],&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;Microsoft&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    directFirst&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; true&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    geoSites&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;microsoft&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;],&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;Apple&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    directFirst&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; true&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    geoSites&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;apple&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;],&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;E-Hentai&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    filters&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;US&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;UnitedStates&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;美国&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;],&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    domains&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;e-hentai.org&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;exhentai.org&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;],&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt;&#x2F;&#x2F; 生成规则&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; newRules&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;config&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;  const&lt;&#x2F;span&gt;&lt;span&gt; defaultProxy&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; config[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;proxy-groups&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;][&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;].name&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;  const&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; generateRule&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;type&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt; items&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt; proxy&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; items.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;map&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;item&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; `&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;type&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;item&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;proxy&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;`&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;  return&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;    ...&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;generateRule&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;DOMAIN-SUFFIX&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;, proxyDomains, defaultProxy),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;    ...&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;generateRule&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;GEOSITE&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;, proxyGeoSites, defaultProxy),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;    ...&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;generateRule&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;DOMAIN-KEYWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;, directDomainKeywords,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;DIRECT&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;    ...&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;generateRule&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;DOMAIN-SUFFIX&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;, directDomains,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;DIRECT&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;    ...&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;generateRule&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;IP-CIDR&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;, directIPs,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;DIRECT,no-resolve&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;    ...&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;generateRule&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;GEOSITE&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;, directGeoSites,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;DIRECT&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;    ...&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;generateRule&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;GEOIP&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;, directGeoIPs,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;DIRECT&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  ]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt;&#x2F;&#x2F; 生成代理组规则&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; newProxyGroupsRules&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; proxyGroups.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;flatMap&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;group&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;  const&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; []&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;  if&lt;&#x2F;span&gt;&lt;span&gt; (group.domainKeywords) {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    rules.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;push&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;...&lt;&#x2F;span&gt;&lt;span&gt;group.domainKeywords.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;map&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;keyword&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; `DOMAIN-KEYWORD,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;keyword&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;group.name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;`&lt;&#x2F;span&gt;&lt;span&gt;))&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;  if&lt;&#x2F;span&gt;&lt;span&gt; (group.domains) {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    rules.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;push&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;...&lt;&#x2F;span&gt;&lt;span&gt;group.domains.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;map&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;domain&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; `DOMAIN-SUFFIX,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;domain&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;group.name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;`&lt;&#x2F;span&gt;&lt;span&gt;))&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;  if&lt;&#x2F;span&gt;&lt;span&gt; (group.geoSites) {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    rules.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;push&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;...&lt;&#x2F;span&gt;&lt;span&gt;group.geoSites.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;map&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;site&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; `GEOSITE,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;site&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;group.name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;`&lt;&#x2F;span&gt;&lt;span&gt;))&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;  if&lt;&#x2F;span&gt;&lt;span&gt; (group.geoIPs) {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    rules.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;push&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;...&lt;&#x2F;span&gt;&lt;span&gt;group.geoIPs.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;map&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;ip&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; `GEOIP,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;ip&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;group.name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;`&lt;&#x2F;span&gt;&lt;span&gt;))&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;  return&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;})&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt;&#x2F;&#x2F; 生成代理组&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; newProxyGroups&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;config&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;  const&lt;&#x2F;span&gt;&lt;span&gt; defaultProxy&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; config[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;proxy-groups&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;][&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;].name;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;  const&lt;&#x2F;span&gt;&lt;span&gt; proxies&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; config.proxies.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;map&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;proxy&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; proxy.name);&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;  return&lt;&#x2F;span&gt;&lt;span&gt; proxyGroups.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;map&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;group&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;    const&lt;&#x2F;span&gt;&lt;span&gt; filteredProxies&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; group.filters&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;      ?&lt;&#x2F;span&gt;&lt;span&gt; proxies.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;filter&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;proxy&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; group.filters.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;some&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;filter&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; proxy.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;toLowerCase&lt;&#x2F;span&gt;&lt;span&gt;().&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;includes&lt;&#x2F;span&gt;&lt;span&gt;(filter.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;toLowerCase&lt;&#x2F;span&gt;&lt;span&gt;())))&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;      :&lt;&#x2F;span&gt;&lt;span&gt; proxies;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;    return&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; group.name,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      type&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;select&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      proxies&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; group.directFirst&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;        ?&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;DIRECT&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;, defaultProxy,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; ...&lt;&#x2F;span&gt;&lt;span&gt;filteredProxies]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;        :&lt;&#x2F;span&gt;&lt;span&gt; [defaultProxy,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;DIRECT&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; ...&lt;&#x2F;span&gt;&lt;span&gt;filteredProxies],&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    };&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  });&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; main&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;config&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  config.rules&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;    ...&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;newRules&lt;&#x2F;span&gt;&lt;span&gt;(config),&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;    ...&lt;&#x2F;span&gt;&lt;span&gt;newProxyGroupsRules,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;    ...&lt;&#x2F;span&gt;&lt;span&gt;config.rules,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  ]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  config[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;proxy-groups&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;].&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;splice&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; ...&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;newProxyGroups&lt;&#x2F;span&gt;&lt;span&gt;(config))&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;  return&lt;&#x2F;span&gt;&lt;span&gt; config&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>小米盒子4C 安装 Armbian</title>
        <published>2024-09-22T00:00:00+00:00</published>
        <updated>2024-09-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/mibox4c-armbian/"/>
        <id>https://nini22p.github.io/blog/mibox4c-armbian/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/mibox4c-armbian/">&lt;h2 id=&quot;shua-ru-root-gu-jian&quot;&gt;刷入 Root 固件&lt;&#x2F;h2&gt;
&lt;p&gt;网上教程很多了，我这里只提供刷机相关软件下载地址。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;archive.org&#x2F;details&#x2F;mi-box-4-yqzm-2-root-aml-upgrade-package-20200808&quot;&gt;Mi BOX 4 YQZM 2 Root Aml Upgrade Package 20200808 &#x2F; Internet Archive&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;nini22p.github.io&#x2F;files&#x2F;Amlogic_USB_Burning_Tool_v2.1.6.8.exe&quot;&gt;Amlogic_USB_Burning_Tool_v2.1.6.8.exe&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;upan-qi-dong-armbian&quot;&gt;U盘启动 Armbian&lt;&#x2F;h2&gt;
&lt;p&gt;首先下载最新的 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ophub&#x2F;amlogic-s9xxx-armbian&#x2F;releases&quot;&gt;amlogic-s9xxx-armbian 固件 &#x2F; GitHub&lt;&#x2F;a&gt;，固件太多怎么选？我这里推荐选择&lt;code&gt;Armbian_xx.xx.xx_amlogic_s905l_xxx_xx.xx.xx_server_xxxx.xx.xx.img&lt;&#x2F;code&gt;，编写这篇博文时我选择的是 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ophub&#x2F;amlogic-s9xxx-armbian&#x2F;releases&#x2F;download&#x2F;Armbian_noble_save_2024.09&#x2F;Armbian_24.11.0_amlogic_s905l_noble_6.6.50_server_2024.09.10.img.gz&quot;&gt;Armbian_24.11.0_amlogic_s905l_noble_6.6.50_server_2024.09.10.img&lt;&#x2F;a&gt;。&lt;&#x2F;p&gt;
&lt;p&gt;使用 rufus 将镜像写入 U盘，给盒子插入扩展坞，插入 U盘、有线网卡（手机 USB 网络共享也可，但是后续 SSH 操作必须使用手机）和键盘。&lt;&#x2F;p&gt;
&lt;p&gt;盒子刷入带 Root 固件后下载安装 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;f-droid.org&#x2F;zh_Hans&#x2F;packages&#x2F;com.termoneplus&#x2F;&quot;&gt;终端模拟器 &#x2F; F-Droid&lt;&#x2F;a&gt;，进入软件后执行 &lt;code&gt;su&lt;&#x2F;code&gt; 授予 Root 权限，执行 &lt;code&gt;reboot update&lt;&#x2F;code&gt; 启动 U盘上的 Armbian 系统。&lt;&#x2F;p&gt;
&lt;p&gt;进入系统会提示创建 Root 密码，接下来会提示创建用户，没有特殊需求可以 &lt;code&gt;Ctrl + C&lt;&#x2F;code&gt; 跳过，引导完毕后会显示系统信息。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;bei-fen-an-zhuo-xi-tong&quot;&gt;备份安卓系统&lt;&#x2F;h2&gt;
&lt;p&gt;如果之前的有线网卡和 SSH 客户端在同一网段下，那么根据启动后显示的 ip 地址进行连接，用户名 &lt;code&gt;root&lt;&#x2F;code&gt;，密码为之前设置的。&lt;&#x2F;p&gt;
&lt;p&gt;执行 &lt;code&gt;sudo apt update&lt;&#x2F;code&gt; 更新源。&lt;&#x2F;p&gt;
&lt;p&gt;执行 &lt;code&gt;armbian-tf&lt;&#x2F;code&gt; 对 U盘扩容。&lt;&#x2F;p&gt;
&lt;p&gt;执行 &lt;code&gt;armbian-ddbr&lt;&#x2F;code&gt; 备份 EMMC ，备份文件位于 &lt;code&gt;&#x2F;ddbr&#x2F;BACKUP-arm-64-emmc.img.gz&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;root@armbian:~#&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; armbian-ddbr&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ STEPS ] Welcome to use the eMMC system backup&#x2F;restore service.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ INFO ] The device name: [ Amlogic Meson GXL (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;S905L3b&lt;&#x2F;span&gt;&lt;span&gt;) MBH-M302A Box ]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ INFO ] The device eMMC name: [ &#x2F;dev&#x2F;mmcblk2 ]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ INFO ] The device eMMC size: [ 7GB ]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ INFO ] The ddbr file path: [ &#x2F;ddbr&#x2F;BACKUP-arm-64-emmc.img.gz ]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;--------------------------------------------------&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;  Option&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;  Function&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;--------------------------------------------------&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;    b&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;     :Backup the system from eMMC to USB&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;    r&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;     :Restore the system from USB to eMMC&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;--------------------------------------------------&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ OPTIONS ] Please &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;select&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; (b&#x2F;r):&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;输入 b 进行备份，备份完毕后可以用 SSH 客户端上的 SFTP 工具将备份文件复制出来。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;an-zhuang-wifi-qu-dong&quot;&gt;安装 WiFi 驱动&lt;&#x2F;h2&gt;
&lt;p&gt;执行 &lt;code&gt;lsusb&lt;&#x2F;code&gt; 发现网卡型号是 &lt;code&gt;Realtek Semiconductor Corp. RTL8188FTV 802.11b&#x2F;g&#x2F;n 1T1R 2.4G WLAN Adapter&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;p&gt;网络上搜索，找到有方法安装驱动 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;1999AZZAR&#x2F;use-RTL8188FTV-on-linux&quot;&gt;Realtek RTL8188FTV WiFi Adapter on Linux &#x2F; GitHub&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;首先更新软件包并安装 net-tools。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; apt update&lt;&#x2F;span&gt;&lt;span&gt; &amp;amp;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; apt upgrade&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -y&lt;&#x2F;span&gt;&lt;span&gt; &amp;amp;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; apt install net-tools&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;添加 kelebek333&#x2F;kablosuz 源并更新。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; add-apt-repository ppa:kelebek333&#x2F;kablosuz&lt;&#x2F;span&gt;&lt;span&gt; &amp;amp;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; apt update&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;安装驱动，这里编译时间较长，可以休息一下做些其他的。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; apt install rtl8188fu-dkms&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;修改驱动配置。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;echo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;options rtl8188fu rtw_ips_mode=0&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; |&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; tee &#x2F;etc&#x2F;modprobe.d&#x2F;rtl8188fu.conf&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; modprobe&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -rv&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; rtl8188fu&lt;&#x2F;span&gt;&lt;span&gt; &amp;amp;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; modprobe&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -v&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; rtl8188fu&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;（可选）固定 mac 地址，&lt;code&gt;xx:xx:xx:xx:xx:xx&lt;&#x2F;code&gt; 替换为你的 mac 地址。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;echo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;options rtl8188fu rtw_ips_mode=0 rtw_initmac=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;xx:xx:xx:xx:xx:xx&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; |&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; tee &#x2F;etc&#x2F;modprobe.d&#x2F;rtl8188fu.conf&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;执行 &lt;code&gt;reboot&lt;&#x2F;code&gt; 重启，进入系统后执行 &lt;code&gt;nmtui&lt;&#x2F;code&gt;，选择 &lt;code&gt;Activate a connection&lt;&#x2F;code&gt; 并连接 WiFi。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;┌───────────────────────────────────────────────┐&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;                                               │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; ┌──────────────────────────────┐              │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │ Ethernet                   ↑ │&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;Activat&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │   Wired connection&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 1&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;       ▒ │              │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │                            ▒ │              │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │ USB Ethernet               ▒ │              │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;font-style: italic;&quot;&gt; *&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; Wired connection&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 2&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;       ▒ │              │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │                            ▒ │              │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │ Wi-Fi                      ▒ │              │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │   CMCC-9X5G         ▂▄▆_ ▒ │              │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │   ChinaNet-sode     ▂▄__  ▒ │              │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │   CMCC-7F0C         ▂___  ▒ │              │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │                            ▒ │              │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │                            ▒ │              │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │                            ▒ │              │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │                            ▒ │              │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; │                            ↓ │&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;Bac&lt;&#x2F;span&gt;&lt;span&gt;k&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;       │&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; └──────────────────────────────┘              │&lt;&#x2F;span&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;└───────────────────────────────────────────────┘&lt;&#x2F;span&gt;&lt;span&gt;                           &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;an-zhuang-dao-armbian-dao-emmc&quot;&gt;安装到 Armbian 到 EMMC&lt;&#x2F;h2&gt;
&lt;p&gt;如果只想 U盘启动的话这部分可以跳过，只要开机时不拔掉 U盘，都是优先启动 U盘上的系统，不小心回到安卓系统就 &lt;code&gt;reboot update&lt;&#x2F;code&gt; U盘启动。&lt;&#x2F;p&gt;
&lt;p&gt;执行 &lt;code&gt;sudo armbian-install&lt;&#x2F;code&gt; 进入安装程序。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ STEPS ] Installing Armbian to internal eMMC...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ STEPS ] Checking dependencies...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ INFO ] Dependency check completed. Proceeding installation...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ STEPS ] Initializing the environment...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ INFO ] Use mainline u-boot: [ no ]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ INFO ] Use ampart tool: [ yes ]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ INFO ] Show all devices: [ no ]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ INFO ] Internal eMMC &lt;&#x2F;span&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; [ &#x2F;dev&#x2F;mmcblk2 ]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ STEPS ] Start selecting device...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;-----------------------------------------------------------------------------------------------------&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;ID&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;    SOC        MODEL                                         DTB&lt;&#x2F;span&gt;&lt;span&gt;                                               &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;-----------------------------------------------------------------------------------------------------&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;114&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   s905w      X96W,FunTV,MXQ-Pro-4K                         meson-gxl-s905w-x96w.dtb&lt;&#x2F;span&gt;&lt;span&gt;                          &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;115&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   s905l      UNT402A,M201-S,MiBox-4C,IP108H,B860AV2.1      meson-gxl-s905l3b-m302a.dtb&lt;&#x2F;span&gt;&lt;span&gt;                       &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;116&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   s905l      MG101,Mibox-4,E900V21C                        meson-gxl-s905l-venz-v10.dtb&lt;&#x2F;span&gt;&lt;span&gt;                      &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;-----------------------------------------------------------------------------------------------------&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ OPTIONS ] Please Input ID: 115&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;输入这里面找到型号 &lt;code&gt;MiBox-4C&lt;&#x2F;code&gt;，输入 &lt;code&gt;115&lt;&#x2F;code&gt; 并回车。&lt;&#x2F;p&gt;
&lt;p&gt;文件类型选 &lt;code&gt;ext4&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ STEPS ] Which type of filesystem &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;do&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; you&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; want for your root?&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;-----------------------------------------------&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;  ID&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   TYPE&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;-----------------------------------------------&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;  1&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;    ext4&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;  2&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;    btrfs&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;-----------------------------------------------&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[ OPTIONS ] Please Input ID (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;1&#x2F;2&lt;&#x2F;span&gt;&lt;span&gt;): 1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;最后等待安装完毕，输入 &lt;code&gt;poweroff&lt;&#x2F;code&gt; 关闭系统，拔掉 U盘，重新插入电源即可启动安装到 EMMC 上的 Armbian。&lt;&#x2F;p&gt;
&lt;p&gt;如果后面想快速完全重新安装可以在安装完毕重启前使用 &lt;code&gt;armbian-ddbr&lt;&#x2F;code&gt; 进行备份。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;shua-hui-an-zhuo-xi-tong&quot;&gt;刷回安卓系统&lt;&#x2F;h2&gt;
&lt;p&gt;如果实在玩腻了想刷回安卓系统，可以考虑以下两种方法，如果都不行只有 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;tieba.baidu.com&#x2F;p&#x2F;7301504012&quot;&gt;小米盒子4c 救砖刷机触点 &#x2F; 百度贴吧&lt;&#x2F;a&gt;。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;fang-fa-1-hui-fu-bei-fen&quot;&gt;方法1. 恢复备份&lt;&#x2F;h3&gt;
&lt;p&gt;如果在之前备份了安卓系统，可以插入电源前插入 U盘启动 U盘上的 Armbian，使用 SFTP 直接复制到 &lt;code&gt;&#x2F;ddbr&lt;&#x2F;code&gt; 后使用 &lt;code&gt;armbian-ddbr&lt;&#x2F;code&gt; 进行恢复。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;fang-fa-2-qing-chu-boot-fen-qu-hou-xian-shua&quot;&gt;方法2. 清除 &#x2F;boot 分区后线刷&lt;&#x2F;h3&gt;
&lt;p&gt;如果你忘了备份，能进 EMMC 上的 Armbian，可以清除掉 &#x2F;boot 分区后线刷。&lt;&#x2F;p&gt;
&lt;p&gt;先执行 df 查看 &#x2F;boot 分区&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;root@armbian:~#&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; df&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;Filesystem&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;     1K-blocks    Used Available Use% Mounted on&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;tmpfs&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;              80548    3488     77060&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   5% &#x2F;run&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;&#x2F;dev&#x2F;mmcblk2p2&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;   6064416 2233496   3814536&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;  37% &#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;tmpfs&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;             402736       0    402736&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   0% &#x2F;dev&#x2F;shm&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;tmpfs&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;               5120       8      5112&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   1% &#x2F;run&#x2F;lock&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;tmpfs&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;             402736       4    402732&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   1% &#x2F;tmp&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;&#x2F;dev&#x2F;mmcblk2p1&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;    522224  165552    356672&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;  32% &#x2F;boot&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;&#x2F;dev&#x2F;zram1&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;         47960    7804     36572&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;  18% &#x2F;var&#x2F;log&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;tmpfs&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;              80544       4     80540&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;   1% &#x2F;run&#x2F;user&#x2F;0&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;这里 &#x2F;boot 分区是 &lt;code&gt;&#x2F;dev&#x2F;mmcblk2p1&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;p&gt;执行 &lt;code&gt;umount &#x2F;dev&#x2F;mmcblk2p1&lt;&#x2F;code&gt; 取消挂载 &#x2F;boot 分区。&lt;&#x2F;p&gt;
&lt;p&gt;执行 &lt;code&gt;mkfs.ext4 &#x2F;dev&#x2F;mmcblk2p1&lt;&#x2F;code&gt; 格式化 &#x2F;boot 分区。&lt;&#x2F;p&gt;
&lt;p&gt;执行 &lt;code&gt;poweroff&lt;&#x2F;code&gt; 关闭电源。&lt;&#x2F;p&gt;
&lt;p&gt;拔掉电源后直接连接电脑即可线刷。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;xiang-guan-lian-jie&quot;&gt;相关链接&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;archive.org&#x2F;details&#x2F;mi-box-4-yqzm-2-root-aml-upgrade-package-20200808&quot;&gt;Mi BOX 4 YQZM 2 Root Aml Upgrade Package 20200808 &#x2F; Internet Archive&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;nini22p.github.io&#x2F;files&#x2F;Amlogic_USB_Burning_Tool_v2.1.6.8.exe&quot;&gt;Amlogic_USB_Burning_Tool_v2.1.6.8.exe&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ophub&#x2F;amlogic-s9xxx-armbian&#x2F;releases&quot;&gt;amlogic-s9xxx-armbian 固件 &#x2F; GitHub&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ophub&#x2F;amlogic-s9xxx-armbian&#x2F;releases&#x2F;download&#x2F;Armbian_noble_save_2024.09&#x2F;Armbian_24.11.0_amlogic_s905l_noble_6.6.50_server_2024.09.10.img.gz&quot;&gt;Armbian_24.11.0_amlogic_s905l_noble_6.6.50_server_2024.09.10.img &#x2F; GitHub&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;f-droid.org&#x2F;zh_Hans&#x2F;packages&#x2F;com.termoneplus&#x2F;&quot;&gt;终端模拟器 &#x2F; F-Droid&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;1999AZZAR&#x2F;use-RTL8188FTV-on-linux&quot;&gt;Realtek RTL8188FTV WiFi Adapter on Linux &#x2F; GitHub&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;tieba.baidu.com&#x2F;p&#x2F;7301504012&quot;&gt;小米盒子4c 救砖刷机触点 &#x2F; 百度贴吧&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>PWA 动态主题颜色</title>
        <published>2024-02-19T00:00:00+00:00</published>
        <updated>2024-02-19T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/pwa-dynamic-theme-color/"/>
        <id>https://nini22p.github.io/blog/pwa-dynamic-theme-color/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/pwa-dynamic-theme-color/">&lt;p&gt;通常 PWA 的主题颜色是写在 &lt;code&gt;manifest.json&lt;&#x2F;code&gt; 中，无法动态改变。
如果有动态更改的需求我们可以直接把主题颜色写在 &lt;code&gt;index.html&lt;&#x2F;code&gt; 里的 &lt;code&gt;head&lt;&#x2F;code&gt; 标签里。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;html&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;meta&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; id&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;themeColor&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;theme-color&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; content&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;#f7f7f7&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; &#x2F;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;然后在需要更改主题颜色时使用 JavaScript 通过 id 更改 &lt;code&gt;content&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;document.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;getElementById&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;themeColor&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;).content&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;#3b3b3b&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;如果需要在不同颜色模式使用不同的主题颜色，可以加入媒体查询。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;html&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;meta&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; id&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;themeColorLight&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;theme-color&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; media&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;(prefers-color-scheme: light)&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; content&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;#f7f7f7&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; &#x2F;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;meta&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; id&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;themeColorDark&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;theme-color&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; media&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;(prefers-color-scheme: dark)&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; content&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;#3b3b3b&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; &#x2F;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>在壁纸引擎中创建网页视频壁纸</title>
        <published>2023-12-07T00:00:00+00:00</published>
        <updated>2023-12-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/wallpaper-engine-web-video/"/>
        <id>https://nini22p.github.io/blog/wallpaper-engine-web-video/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/wallpaper-engine-web-video/">&lt;p&gt;这个标题看着就很怪，为什么要用网页创建视频壁纸呢？&lt;&#x2F;p&gt;
&lt;p&gt;因为壁纸引擎的视频壁纸除了播放和暂停，只能一直无限循环，没有办法做到从其他应用切换到桌面就重新播放一次的功能，这个时候只能用网页壁纸来做。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;gong-neng-shi-xian&quot;&gt;功能实现&lt;&#x2F;h2&gt;
&lt;p&gt;首先创建一个 &lt;code&gt;index.html&lt;&#x2F;code&gt; 文件。&lt;br &#x2F;&gt;
目前壁纸引擎中只能播放 webm 封装的视频，建议压制 VP9 编码，在大部分设备上兼容性较好。&lt;br &#x2F;&gt;
设置 &lt;code&gt;playsinline&lt;&#x2F;code&gt; 关闭控制按钮，设置 &lt;code&gt;autoplay&lt;&#x2F;code&gt; 自动播放，必须设置 &lt;code&gt;muted&lt;&#x2F;code&gt; 静音，否则无法自动播放。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;html&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;!&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;DOCTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; html&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;html&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; lang&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;en&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;head&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;meta&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; charset&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;UTF-8&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;meta&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;viewport&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; content&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;width=device-width, initial-scale=1.0&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;title&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;Wallpaper Engine Web Video Template&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;title&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;link&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; rel&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;stylesheet&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; href&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;styles.css&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; &#x2F;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;script&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; src&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;script.js&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; defer&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;script&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;head&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;body&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;video&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; src&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;video.webm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; id&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;video&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; playsinline&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;playsinline&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; autoplay&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;autoplay&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; muted&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;muted&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;body&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;html&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;新建 &lt;code&gt;styles.css&lt;&#x2F;code&gt; 文件，将视频画面铺满全屏。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;css&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;html&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;body&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;  padding&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;  margin&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;  width&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 100&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;%&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;  height&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 100&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;%&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;  overflow&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; hidden&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt;#video&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;  width&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 100&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;%&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;  height&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 100&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;%&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;  object-fit&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; cover&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;新建 &lt;code&gt;script.js&lt;&#x2F;code&gt; 文件，通过 id 获取到 &lt;code&gt;video&lt;&#x2F;code&gt; 元素。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; video&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; document.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;getElementById&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;video&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;);&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;如何查询目前是否切换到其他应用呢？通过浏览壁纸引擎的文档，壁纸引擎提供了 &lt;code&gt;window.wallpaperPropertyListener&lt;&#x2F;code&gt; 监听器。通过调用其中的 &lt;code&gt;setPaused&lt;&#x2F;code&gt; 方法来获取是否暂停。&lt;&#x2F;p&gt;
&lt;p&gt;下面的代码会在壁纸引擎暂停或者播放时调用 &lt;code&gt;setPaused&lt;&#x2F;code&gt; 方法。&lt;br &#x2F;&gt;
如果是暂停状态则会暂停播放，若视频播放完毕则会设置进度到开头。&lt;br &#x2F;&gt;
如果是播放状态则会开始播放，如果在暂停时播放进度被重置就实现了重复播放。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;window.wallpaperPropertyListener&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;  setPaused&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FFB86C;font-style: italic;&quot;&gt;isPaused&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;    if&lt;&#x2F;span&gt;&lt;span&gt; (isPaused) {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;      if&lt;&#x2F;span&gt;&lt;span&gt; (video.ended) {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        video.currentTime&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 0&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      video.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;pause&lt;&#x2F;span&gt;&lt;span&gt;()&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; else&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      video.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;play&lt;&#x2F;span&gt;&lt;span&gt;()&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;wan-zheng-dai-ma&quot;&gt;完整代码&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nini22P&#x2F;wallpaper-engine-web-video-template&quot;&gt;GitHub - nini22P &#x2F; wallpaper-engine-web-video-template&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>游戏补丁</title>
        <published>2023-09-22T00:00:00+00:00</published>
        <updated>2023-09-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/game-patch/"/>
        <id>https://nini22p.github.io/blog/game-patch/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/game-patch/">&lt;h2 id=&quot;hikari-field&quot;&gt;HIKARI FIELD&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;moetake.booth.pm&#x2F;items&#x2F;383623&quot;&gt;遊魂２ -you&#x27;re the only one-&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;sakura_no_mori_patch&#x2F;&quot;&gt;樱之杜†净梦者&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;mono_patch&#x2F;&quot;&gt;茂伸奇谈&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;1w18pftah6pg&#x2F;&quot;&gt;淑女同萌&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;monohe_patch&#x2F;&quot;&gt;茂伸奇谈-Happy End-&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;kmh6uzw4&#x2F;&quot;&gt;爱上火车 -Last Run!!-&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;sakura_no_mori_2_patch&#x2F;&quot;&gt;樱之杜†净梦者2&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;hello_lady_nd&#x2F;&quot;&gt;淑女同萌-New Division-&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;patches.nekonyansoft.com&#x2F;&quot;&gt;苍之彼方的四重奏&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;www.appendingpulse.jp&#x2F;dl&#x2F;tsukikage_patch&#x2F;&quot;&gt;月影魅像-解放之羽-&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;alias_carnival_steam_patch&#x2F;&quot;&gt;爱丽娅的明日盛典!&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;senrenbanka_steam_patch&#x2F;&quot;&gt;千恋＊万花&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;natsunoiro_steam_patch&#x2F;&quot;&gt;追忆夏色年华&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;a97dxnom&#x2F;&quot;&gt;苍之彼方的四重奏 EXTRA1&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;rjp3h7wg&#x2F;&quot;&gt;Riddle Joker&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;5b25qvrz&#x2F;&quot;&gt;Re:LieF 〜献给亲爱的你〜 Re:LanguagE&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;patches.nekonyansoft.com&#x2F;&quot;&gt;金辉恋曲四重奏&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;hp2yv5pch6&#x2F;&quot;&gt;Happiness！2 樱花盛典&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;ms24ryb4xe&#x2F;&quot;&gt;来自昏暗的时间尽头&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;hlse3fw9ek&#x2F;&quot;&gt;淑女同萌！-Superior Entelecheia-&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;madoxa4sh7m6&#x2F;&quot;&gt;雪境迷途遇仙踪&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;seka45xiwizh&#x2F;&quot;&gt;在世界与世界的正中央&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;stella7u3ungof&#x2F;&quot;&gt;星光咖啡馆与死神之蝶&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;hana0yz58wib&#x2F;&quot;&gt;五色浮影绽放于花之海洋&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;magi9uu2lkhi&#x2F;&quot;&gt;魔卡魅恋！Magical Charming!&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;tsuki3tyy6gv&#x2F;&quot;&gt;近月少女的礼仪&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;kingt0s9fknk&#x2F;&quot;&gt;金辉恋曲四重奏 -Golden Time-&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;yuma3mciym8e&#x2F;&quot;&gt;真愿朦幻馆 ～在时间暂停的洋馆里追寻明天的羔羊们～&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;cce7skxmu4s6&#x2F;&quot;&gt;交汇协奏曲&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;sorattpytrb2&#x2F;&quot;&gt;天空的蓝与白&#x2F;如梭夏日&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;mega.nz&#x2F;folder&#x2F;vMtRUAgJ#FyZe2-mviyCZaluyUNHeig&quot;&gt;青夏轨迹&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;patches.nekonyansoft.com&#x2F;&quot;&gt;苍之彼方的四重奏 EXTRA2&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;patches.nekonyansoft.com&#x2F;&quot;&gt;未来广播与人工鸽&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;shu2rh52vojc&#x2F;&quot;&gt;SHUFFLE! episode2 ～被神与魔同时盯上的男人～&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;wit2f59dfaf4&#x2F;&quot;&gt;魔女的花园&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;afs0z52pk1ge&#x2F;&quot;&gt;爱丽娅的明日盛典！Flowering Sky&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;sowit5nmo2nv&#x2F;&quot;&gt;魔女的夜宴&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;koif5cn0nv2p&#x2F;&quot;&gt;想要传达给你的爱恋&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;patches.nekonyansoft.com&#x2F;&quot;&gt;幸运草的约定 Clover Days&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;appendingpulse.jp&#x2F;dl&#x2F;arc6ne2b2s42&#x2F;&quot;&gt;炼爱秘仪&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;qi-ta&quot;&gt;其他&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;mega.nz&#x2F;folder&#x2F;vBlw0KSZ#wuyBgwB8xrEfsmMC3mn1bg&quot;&gt;BALDR SKY&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;mega.nz&#x2F;folder&#x2F;OI9kgIbZ#tz6F6tIVvob_XSfMXI1NpA&quot;&gt;Endless Jade Sea -Midori no Umi- 繁体&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;mega.nz&#x2F;folder&#x2F;7Z9GBIIQ#KsVnsqX-e9IMbuoOtDVzmw&quot;&gt;LAMUNATION! -international-&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;mega.nz&#x2F;folder&#x2F;nAkR3bbS#grNwCej1XeKLKg3wJLfS9g&quot;&gt;同级生Remake&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;mega.nz&#x2F;folder&#x2F;TZkmDBSb#EIWA1UGMgUl-ugdW_LDasQ&quot;&gt;樱花片落恋模样 This is a very sweet love story. 简体&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>ZTE F460 使用 Telnet</title>
        <published>2023-09-07T00:00:00+00:00</published>
        <updated>2023-09-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/zte-f460-telent/"/>
        <id>https://nini22p.github.io/blog/zte-f460-telent/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/zte-f460-telent/">&lt;h2 id=&quot;telnet-lian-jie&quot;&gt;Telnet 连接&lt;&#x2F;h2&gt;
&lt;p&gt;首先打开 Windows 终端，运行：&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;ping&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 192.168.1.1 -l 128 -t&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;然后再打开 CMD 控制台（这里用 Windows 终端 telnet 连接无法滚动显示），运行：&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;telnet&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 192.168.1.1 10128&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;用户名输入 &lt;code&gt;root&lt;&#x2F;code&gt; ，密码输入 &lt;code&gt;Zte521&lt;&#x2F;code&gt; 。如果是四川地区密码用 &lt;code&gt;Zte521@SC&lt;&#x2F;code&gt; 。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;chang-yong-ming-ling&quot;&gt;常用命令&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;huo-qu-guang-mao-zhang-hao-mi-ma&quot;&gt;获取光猫账号密码&lt;&#x2F;h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;sendcmd&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 1&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; DB p DevAuthInfo&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;code&gt;telecomadmin&lt;&#x2F;code&gt; 即为超级管理员账号，&lt;code&gt;useradmin&lt;&#x2F;code&gt; 为普通账号。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;huo-qu-kuan-dai-zhang-hao-mi-ma&quot;&gt;获取宽带账号密码&lt;&#x2F;h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;sendcmd&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 1&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; DB p WANCPPP&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;得到 &lt;code&gt;UserName&lt;&#x2F;code&gt; 和 &lt;code&gt;Password&lt;&#x2F;code&gt; 就是拨号账户和密码。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;can-kao&quot;&gt;参考&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.52pojie.cn&#x2F;thread-1203775-1-1.html&quot;&gt;获取电信光猫超级密码支持中兴F412&#x2F;F460&#x2F;F612&#x2F;F660&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.right.com.cn&#x2F;FORUM&#x2F;forum.php?mod=redirect&amp;amp;goto=findpost&amp;amp;ptid=4074609&amp;amp;pid=10841862&quot;&gt;如何获取光猫中的宽带账号和密码&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>Win32 app isolation 使用体验</title>
        <published>2023-05-26T00:00:00+00:00</published>
        <updated>2023-05-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/win32-app-isolation/"/>
        <id>https://nini22p.github.io/blog/win32-app-isolation/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/win32-app-isolation/">&lt;p&gt;最近微软公布了 Win32 app isolation，据称可以隔离应用程序，保护用户隐私。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;xia-zai&quot;&gt;下载&lt;&#x2F;h2&gt;
&lt;p&gt;首先我们到 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;microsoft&#x2F;win32-app-isolation&#x2F;releases&quot;&gt;GitHub&lt;&#x2F;a&gt; 下载最新的版本，解压后安装。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;chuang-jian-zheng-shu&quot;&gt;创建证书&lt;&#x2F;h2&gt;
&lt;p&gt;创建证书需要使用 Visual Studio 或者 Visual Studio 生成工具下载 Windows SDK，&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;visualstudio.microsoft.com&#x2F;zh-hans&#x2F;downloads&#x2F;&quot;&gt;下载地址&lt;&#x2F;a&gt;。安装完毕后打开终端。&lt;&#x2F;p&gt;
&lt;p&gt;验证命令&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;Get-Command&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -Module&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; PKI&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;如果成功会显示如下命令列表，部分条目省略。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;CommandType&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;     Name                                               Version    Source&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;-----------&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;     ----                                               -------    ------&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;Cmdlet&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;          Export-Certificate&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;                                 1.0.0.0&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;    PKI&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;Cmdlet&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;          New-SelfSignedCertificate&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;                          1.0.0.0&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;    PKI&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;创建证书，修改&lt;code&gt;&amp;lt;&amp;gt;&lt;&#x2F;code&gt;内的内容。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;New-SelfSignedCertificate&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -Type&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; Custom&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -Subject&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;CN=&amp;lt;名字&amp;gt;, C=&amp;lt;国家&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -KeyUsage&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; DigitalSignature&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -FriendlyName&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;&amp;lt;名字&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -CertStoreLocation&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;Cert:\CurrentUser\My&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -TextExtension&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; @&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;&amp;quot;2.5.29.37={text}1.3.6.1.5.5.7.3.3&amp;quot;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;2.5.29.19={text}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -NotAfter&lt;&#x2F;span&gt;&lt;span&gt; (Get-Date).AddYears(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;10&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;设置当前目录为 &lt;code&gt;Cert:\CurrentUser\My&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;Set-Location&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; Cert:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;\C&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;urrentUser&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;\M&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;y&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;查询当前目录下的证书。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;Get-ChildItem&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; |&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; Format-Table&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; Subject, FriendlyName, Thumbprint&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;设置密码，修改&lt;code&gt;&amp;lt;Your Password&amp;gt;&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt;$password&lt;&#x2F;span&gt;&lt;span&gt; = ConvertTo-SecureString -String &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span&gt;Your Password&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; -Force -AsPlainText &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;导出 pfx 证书到 &lt;code&gt;&amp;lt;FilePath&amp;gt;&lt;&#x2F;code&gt; ，&lt;code&gt;&amp;lt;Thumbprint&amp;gt;&lt;&#x2F;code&gt; 替换为之前查询到的 &lt;code&gt;Thumbprint&lt;&#x2F;code&gt;，用于给应用签名。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;Export-PfxCertificate&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -cert&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;Cert:\CurrentUser\My\&amp;lt;Certificate Thumbprint&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -FilePath&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;FilePat&lt;&#x2F;span&gt;&lt;span&gt;h&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;.pfx&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -Password $password&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;导出 cer 证书 &lt;code&gt;&amp;lt;FilePath&amp;gt;&lt;&#x2F;code&gt;，用于分发应用。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; Export-Certificate&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -cert&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;Cert:\CurrentUser\My\&amp;lt;Thumbprint&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -FilePath&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;FilePat&lt;&#x2F;span&gt;&lt;span&gt;h&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;.cer&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;chuang-jian-ying-yong&quot;&gt;创建应用&lt;&#x2F;h2&gt;
&lt;p&gt;这里我拿某云盘来示例，打开之前安装好的 MSIX Packaging Tool。选择 &lt;code&gt;应用程序包&lt;&#x2F;code&gt; 来创建应用包。&lt;&#x2F;p&gt;
&lt;p&gt;选择打包方法，不想污染本机环境可以选&lt;code&gt;在远程计算机上创建程序包&lt;&#x2F;code&gt;或者&lt;code&gt;在本地虚拟机上创建程序包&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;p&gt;选择安装程序，下面选使用 pfx 证书签名。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;posts&#x2F;1685092852834.png&quot; alt=&quot;&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;修改程序包信息。安装应用，安装完毕后点&lt;code&gt;下一个&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;p&gt;修改首次启动任务，多余的快捷方式可以删掉，目前务必把回收站里的也删掉，不然安装后还是会出现在应用列表。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;posts&#x2F;1685092869471.png&quot; alt=&quot;&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;最后跟随引导就完成了应用包的创建。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;ying-yong-an-zhuang&quot;&gt;应用安装&lt;&#x2F;h2&gt;
&lt;p&gt;找到之前导出的 cer 证书，点击安装，存储位置选择 &lt;code&gt;当前计算机&lt;&#x2F;code&gt;，然后选择安装到 &lt;code&gt;受信任的根证书颁发机构&lt;&#x2F;code&gt;。最后到桌面找到 MSIX 应用包即可安装。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;ying-yong-ti-yan&quot;&gt;应用体验&lt;&#x2F;h2&gt;
&lt;p&gt;应用打包后不会在 AppData 下拉屎，但是其它文件夹依旧能被访问，还是需要更精细的权限控制，下面是尝试的几个应用：&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;FireFox：能正常从 Microsoft Edge 浏览器导入书签等资料，通过 &lt;code&gt;file:&#x2F;&#x2F;&#x2F;C:&#x2F;&lt;&#x2F;code&gt; 能访问 C 盘。&lt;&#x2F;li&gt;
&lt;li&gt;Gridea：能在文档目录创建资料，预览时会在用户目录创建输出目录。&lt;&#x2F;li&gt;
&lt;li&gt;QQ：能在文档目录创建资料。&lt;&#x2F;li&gt;
&lt;li&gt;115：能在下载文件夹创建下载目录。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>Gridea 主题 Rocky CSS 修复</title>
        <published>2023-04-03T00:00:00+00:00</published>
        <updated>2023-04-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/gridea-theme-rocky-css-fix/"/>
        <id>https://nini22p.github.io/blog/gridea-theme-rocky-css-fix/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/gridea-theme-rocky-css-fix/">&lt;h2 id=&quot;shi-yong-fang-fa&quot;&gt;使用方法&lt;&#x2F;h2&gt;
&lt;p&gt;先点击进入下面 GitHub 地址后复制代码，然后依次点开 &lt;code&gt;Gridea&lt;&#x2F;code&gt; &amp;gt; &lt;code&gt;主题&lt;&#x2F;code&gt; &amp;gt; &lt;code&gt;自定义配置&lt;&#x2F;code&gt; &amp;gt; &lt;code&gt;自定义样式&lt;&#x2F;code&gt;，粘贴代码。
默认会读取 &lt;code&gt;&#x2F;images&#x2F;header.webp&lt;&#x2F;code&gt; 作为 header 背景图像。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;github-di-zhi&quot;&gt;GitHub 地址&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nini22P&#x2F;gridea-theme-rocky-css-fix&quot;&gt;nini22P &#x2F; Gridea Theme Rocky css fix&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>在 Termux 上使用 Cloudflare Tunnel 搭建网站</title>
        <published>2023-04-02T00:00:00+00:00</published>
        <updated>2023-04-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/cloudflare-tunnel-on-termux/"/>
        <id>https://nini22p.github.io/blog/cloudflare-tunnel-on-termux/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/cloudflare-tunnel-on-termux/">&lt;p&gt;利用 Cloudflare Tunnel 可以在没有公网的情况下实现内网穿透，本文借助 Termux 在手机上运行。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;qian-qi-zhun-bei&quot;&gt;前期准备&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;在 Cloudflare 上绑定域名并开通 Zero Trust 服务。&lt;&#x2F;li&gt;
&lt;li&gt;在设备上安装 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;f-droid.org&#x2F;packages&#x2F;com.termux&#x2F;&quot;&gt;Termux&lt;&#x2F;a&gt;。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;an-zhuang-linux&quot;&gt;安装 Linux&lt;&#x2F;h2&gt;
&lt;p&gt;安装 proot-distro。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;pkg&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; install proot-distro&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;安装 Ubuntu，你可以根据习惯选择其他系统。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;proot-distro&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; install ubuntu&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;登录 Ubuntu，默认 root 账户。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;proot-distro&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; login ubuntu&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;更新软件包。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;apt&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; update&lt;&#x2F;span&gt;&lt;span&gt; &amp;amp;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; apt&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; upgrade&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -y&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;da-jian-xiang-mu&quot;&gt;搭建项目&lt;&#x2F;h2&gt;
&lt;p&gt;这里创建一个 Next.js 应用来演示。&lt;&#x2F;p&gt;
&lt;p&gt;安装 Node.js 。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;curl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -fsSL&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; https:&#x2F;&#x2F;deb.nodesource.com&#x2F;setup_18.x&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; |&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt; bash&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span&gt; &amp;amp;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;\&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;apt-get&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; install&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -y&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; nodejs&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;使用模板创建应用。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;npx&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; create-next-app@latest nextjs-blog&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; --use-npm --example&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;https:&#x2F;&#x2F;github.com&#x2F;vercel&#x2F;next-learn&#x2F;tree&#x2F;master&#x2F;basics&#x2F;learn-starter&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;打开文件夹并运行项目。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #8BE9FD;&quot;&gt;cd&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; nextjs-blog&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;npm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; start&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;此时我们可以通过 &lt;code&gt;本地ip:3000&lt;&#x2F;code&gt; 访问网站。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;posts&#x2F;1680407837628.png&quot; alt=&quot;&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pei-zhi-cloudflare-tunnel&quot;&gt;配置 Cloudflare Tunnel&lt;&#x2F;h2&gt;
&lt;p&gt;保持 Next.js 应用运行，手指放在屏幕左边，等待侧边栏出现后右滑，点击 &lt;code&gt;NEW SESSION&lt;&#x2F;code&gt; 打开新窗口。&lt;&#x2F;p&gt;
&lt;p&gt;登录 Ubuntu。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;proot-distro&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; login ubuntu&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;前往 Zero Trust 控制台 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;one.dash.cloudflare.com&quot;&gt;https:&#x2F;&#x2F;one.dash.cloudflare.com&lt;&#x2F;a&gt; 。&lt;&#x2F;p&gt;
&lt;p&gt;进入 &lt;code&gt;Networks&lt;&#x2F;code&gt; &#x2F; &lt;code&gt;Tunnels&lt;&#x2F;code&gt;，点击 &lt;code&gt;Create a tunnel&lt;&#x2F;code&gt; 按钮新建隧道。&lt;&#x2F;p&gt;
&lt;p&gt;保存隧道名字之后会让你选择平台和架构，依次选 Debian 和 arm64-bit，复制下方左边的命令，以下命令为示例，请复制你实际控制台页面上的命令并运行。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;curl -L --output cloudflared.deb https:&#x2F;&#x2F;github.com&#x2F;cloudflare&#x2F;cloudflared&#x2F;releases&#x2F;latest&#x2F;download&#x2F;cloudflared-linux-arm64.deb &amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;sudo dpkg -i cloudflared.deb &amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;sudo cloudflared service install &amp;lt;token&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;运行 Tunnel。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;service&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; cloudflared start&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;如果成功页面下方会看到连接上的设备，保存后会让你添加一个页面。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;Subdomain&lt;&#x2F;code&gt; 输入 &lt;code&gt;nextjs-blog&lt;&#x2F;code&gt;, &lt;code&gt;Domain&lt;&#x2F;code&gt; 选择你的域名。&lt;code&gt;Type&lt;&#x2F;code&gt; 选择 &lt;code&gt;http&lt;&#x2F;code&gt;, &lt;code&gt;URL&lt;&#x2F;code&gt; 输入 &lt;code&gt;localhost:3000&lt;&#x2F;code&gt;，最后点击保存。&lt;&#x2F;p&gt;
&lt;p&gt;在浏览器地址栏输入 &lt;code&gt;nextjs-blog.example.com&lt;&#x2F;code&gt; 即可访问刚刚创建的 &lt;code&gt;nextjs-blog&lt;&#x2F;code&gt; 项目。&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;posts&#x2F;1680408310803.png&quot; alt=&quot;&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;xiang-guan-lian-jie&quot;&gt;相关链接&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;f-droid.org&#x2F;packages&#x2F;com.termux&#x2F;&quot;&gt;F-Droid &#x2F; Termux&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cloudflare&#x2F;cloudflared&quot;&gt;cloudflare &#x2F; cloudflared&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>打包 WebGAL 游戏到 Android 平台</title>
        <published>2023-03-12T00:00:00+00:00</published>
        <updated>2023-03-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/webgal-for-android/"/>
        <id>https://nini22p.github.io/blog/webgal-for-android/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/webgal-for-android/">&lt;h2 id=&quot;qian-qi-zhun-bei&quot;&gt;前期准备&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;提示&lt;&#x2F;strong&gt;：使用 WebGAL 编辑器自动导出项目文件的游戏开发者只需安装 android studio 即可&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;下载安装 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;developer.android.google.cn&#x2F;studio&#x2F;&quot;&gt;Android Studio&lt;&#x2F;a&gt;。&lt;&#x2F;li&gt;
&lt;li&gt;将 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MakinoharaShoko&#x2F;WebGAL&quot;&gt;WebGAL&lt;&#x2F;a&gt; 游戏导出 Web 版本。&lt;&#x2F;li&gt;
&lt;li&gt;下载 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nini22P&#x2F;WebGAL-Android&quot;&gt;WebGAL Android 项目模板&lt;&#x2F;a&gt;。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;fang-fa-yi-zi-dong-dao-chu-xiang-mu-wen-jian-gua-yong-yu-shi-yong-webgal-bian-ji-qi-de-you-xi-kai-fa-zhe&quot;&gt;方法一：自动导出项目文件 (适用于使用 WebGAL 编辑器的游戏开发者)&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;&#x2F;strong&gt;：如果想要使用 android studio 直接从项目导出的文件夹打开，请新建游戏时填入&lt;strong&gt;英文&lt;&#x2F;strong&gt;，如果游戏名已经是中文，请打开 &lt;code&gt;WebGAL_Terre\public\games&lt;&#x2F;code&gt; 修改你的游戏名，并保证项目的文件路径中不会出现英文以外的字符，否则会报错。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;dao-chu-he-xiu-gai&quot;&gt;导出和修改&lt;&#x2F;h3&gt;
&lt;p&gt;在编辑器左边侧边栏修改&lt;code&gt;游戏标题&lt;&#x2F;code&gt;和&lt;code&gt;游戏包名&lt;&#x2F;code&gt;。游戏包名是你的网站域名反写，如果没有域名可以考虑使用开发者加游戏名的组合，比如 &lt;code&gt;webgaldev.mygalgame&lt;&#x2F;code&gt; 这种形式，&lt;strong&gt;必须&lt;&#x2F;strong&gt;使用&lt;strong&gt;英文&lt;&#x2F;strong&gt;。&lt;&#x2F;p&gt;
&lt;p&gt;在编辑器右上角选择导出为安卓项目文件，然后打开 android studio 选择刚刚导出的 &lt;code&gt;android&lt;&#x2F;code&gt; 目录，等待依赖下载完毕。&lt;&#x2F;p&gt;
&lt;p&gt;点击菜单栏中的 &lt;code&gt;File -&amp;gt; New -&amp;gt; Image Asset&lt;&#x2F;code&gt; 修改游戏图标，注意图标分为前后两层。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;yun-xing-he-bian-yi&quot;&gt;运行和编译&lt;&#x2F;h3&gt;
&lt;p&gt;打开安卓手机的 USB 调试并连接电脑，点击上方工具栏设备标题旁的运行图标后在手机上运行。&lt;&#x2F;p&gt;
&lt;p&gt;点击菜单栏中 &lt;code&gt;Build -&amp;gt; Generate Signed Bundle or APK&lt;&#x2F;code&gt;，根据提示创建密钥并编译，等待编译完毕。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;fang-fa-er-shou-dong-bian-ji-xiang-mu-wen-jian-gua-yong-yu-zai-ben-di-tong-guo-shu-xie-jiao-ben-de-xing-shi-huo-zhe-tong-guo-yuan-ma-bian-yi-kai-fa-de-you-xi-kai-fa-zhe&quot;&gt;方法二：手动编辑项目文件 (适用于在本地通过书写脚本的形式或者通过源码编译开发的游戏开发者)&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;you-xi-dao-ru&quot;&gt;游戏导入&lt;&#x2F;h3&gt;
&lt;p&gt;首先将游戏导出为 Web 网页，解压 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nini22P&#x2F;WebGAL-Android&quot;&gt;项目模板&lt;&#x2F;a&gt;，将文件夹改名（切记必须使用英文）。
打开 &lt;code&gt;项目文件夹\app\src\main\assets\webgal&lt;&#x2F;code&gt; 文件夹，将你要打包的游戏放到这里。&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;提示&lt;&#x2F;strong&gt;
游戏默认加载 &lt;code&gt;项目文件夹\app\src\main\assets\webgal\index.html&lt;&#x2F;code&gt;，如果想要自定义加载链接（比如在线链接），请修改  &lt;code&gt;项目文件夹\app\src\main\res\values\values.xml&lt;&#x2F;code&gt; 文件里面的 &lt;code&gt;load_url&lt;&#x2F;code&gt; 字段。&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h3 id=&quot;xin-xi-xiu-gai&quot;&gt;信息修改&lt;&#x2F;h3&gt;
&lt;p&gt;打开 Android Studio 导入项目。
修改&lt;code&gt;项目文件夹\settings.gradle&lt;&#x2F;code&gt; 文件中的 &lt;code&gt;rootProject.name&lt;&#x2F;code&gt; 字段。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;rootProject.name = &amp;quot;WebGAL&amp;quot; &#x2F;&#x2F;修改项目标题&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;修改 &lt;code&gt;项目文件夹\app\src\main\res\values\strings.xml&lt;&#x2F;code&gt; 中的标题信息。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;resources&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;string&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;font-style: italic;&quot;&gt; name&lt;&#x2F;span&gt;&lt;span&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;app_name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;WebGAL&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;string&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt; &#x2F;&#x2F;修改游戏标题&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;resources&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;修改 &lt;code&gt;项目文件夹\app\build.gradle&lt;&#x2F;code&gt; 中的 &lt;code&gt;namespace&lt;&#x2F;code&gt; 和 &lt;code&gt;applicationId&lt;&#x2F;code&gt; 字段，格式为域名反写。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;android {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    namespace &amp;#39;com.openwebgal.demo&amp;#39; &#x2F;&#x2F;修改包名&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    defaultConfig {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        applicationId &amp;quot;com.openwebgal.demo&amp;quot; &#x2F;&#x2F;修改包名&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;点击菜单栏中的 &lt;code&gt;File -&amp;gt; Sync Project with Gradle files&lt;&#x2F;code&gt; 等待同步完毕。&lt;&#x2F;p&gt;
&lt;p&gt;修改 &lt;code&gt;项目文件夹\app\src\main\java\com\openwebgal\demo\MainActivity.kt&lt;&#x2F;code&gt; 首行的 &lt;code&gt;package&lt;&#x2F;code&gt; 字段为前面更改的目标包名。&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;kotlin&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;package&lt;&#x2F;span&gt;&lt;span&gt; com.openwebgal.demo &lt;&#x2F;span&gt;&lt;span style=&quot;color: #6272A4;&quot;&gt;&#x2F;&#x2F;修改包名&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;..&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;上面这个字段修改后会报错，这时候点击刚刚修改的包名，然后点击“黄色灯泡”选择 &lt;code&gt;Move file to &#x27;目标包名&#x27;&lt;&#x2F;code&gt;，再将原本包名文件夹删掉。&lt;&#x2F;p&gt;
&lt;p&gt;点击菜单栏中的 &lt;code&gt;File -&amp;gt; New -&amp;gt; Image Asset&lt;&#x2F;code&gt; 修改游戏图标，注意图标分为前后两层。&lt;&#x2F;p&gt;
&lt;h3 id=&quot;yun-xing-he-bian-yi-1&quot;&gt;运行和编译&lt;&#x2F;h3&gt;
&lt;p&gt;打开安卓手机的 USB 调试并连接电脑，点击上方工具栏设备标题旁的运行图标后在手机上运行。&lt;&#x2F;p&gt;
&lt;p&gt;点击菜单栏中 &lt;code&gt;Build -&amp;gt; Generate Signed Bundle or APK&lt;&#x2F;code&gt;，根据提示创建密钥并编译，等待编译完毕。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;shi-pin-jiao-cheng-fang-fa-er&quot;&gt;视频教程（方法二）&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.bilibili.com&#x2F;video&#x2F;BV1m24y1J7ct&#x2F;&quot;&gt;使用 Android Studio 打包 WebGAL 游戏到 Android 平台&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;jian-rong-xing-yi-ji-jie-jue-fang-an&quot;&gt;兼容性以及解决方案&lt;&#x2F;h2&gt;
&lt;p&gt;目前支持最低版本是安卓 5.0，并依赖于系统预装的 Android System WebView, 如果您的设备在点击首屏后黑屏，请尝试以下任意一种方案：&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;进入 Play 商店更新 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;play.google.com&#x2F;store&#x2F;apps&#x2F;details?id=com.google.android.webview&quot;&gt;Android System WebView&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;手动下载 Android System WebView 进行更新&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Android System WebView 下载链接：&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.apkmirror.com&#x2F;apk&#x2F;google-inc&#x2F;android-system-webview&#x2F;android-system-webview-95-0-4638-74-release&#x2F;&quot;&gt;Android 5.0&lt;&#x2F;a&gt; | &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.apkmirror.com&#x2F;apk&#x2F;google-inc&#x2F;android-system-webview&#x2F;android-system-webview-106-0-5249-126-release&#x2F;&quot;&gt;Android 6.0&lt;&#x2F;a&gt; | &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.apkmirror.com&#x2F;apk&#x2F;google-inc&#x2F;android-system-webview&#x2F;&quot;&gt;Android 7.0 +&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;zhu-yi-shi-xiang&quot;&gt;注意事项&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;游戏素材文件名不要有空格，否则有可能无法加载！&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;xiang-guan-lian-jie&quot;&gt;相关链接&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;developer.android.com&#x2F;studio&quot;&gt;Android Studio&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MakinoharaShoko&#x2F;WebGAL&quot;&gt;MakinoharaShoko &#x2F; WebGAL&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;docs.openwebgal.com&#x2F;&quot;&gt;WebGAL 开发文档&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nini22P&#x2F;WebGAL-Android&quot;&gt;nini22P &#x2F; WebGAL Android&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.bilibili.com&#x2F;video&#x2F;BV1m24y1J7ct&#x2F;&quot;&gt;使用 Android Studio 打包 WebGAL 游戏到 Android 平台&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>使用 FFmpeg 将单张图片和单个音频生成视频</title>
        <published>2022-11-13T00:00:00+00:00</published>
        <updated>2022-11-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/ffmpeg-one-image-and-one-audio-make-video/"/>
        <id>https://nini22p.github.io/blog/ffmpeg-one-image-and-one-audio-make-video/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/ffmpeg-one-image-and-one-audio-make-video/">&lt;p&gt;一般用法&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; ffmpeg&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-loop&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; 1 -i&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;cover.jpg&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -i&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;input.mp3&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-c:v&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; libx264&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -tune&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; stillimage&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -c:a&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; aac&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -b:a&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; 320k&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -shortest&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;output.mp4&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E9F284;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>简单两步安装安卓子系统WSA - Windows Subsystem for Android™️</title>
        <published>2022-10-25T00:00:00+00:00</published>
        <updated>2022-10-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/easy-windows-subsystem-for-android/"/>
        <id>https://nini22p.github.io/blog/easy-windows-subsystem-for-android/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/easy-windows-subsystem-for-android/">&lt;p&gt;首先确保电脑升级到 Windows 11，并开启虚拟机平台。&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;下载 &lt;a href=&quot;&#x2F;files&#x2F;MicrosoftCorporationII.WindowsSubsystemForAndroid_1.7.163.0_neutral___8wekyb3d8bbwe.Msixbundle&quot;&gt;安装包&lt;&#x2F;a&gt; 并安装。&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;打开微软商店检查更新&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>提取某路人游戏的音频和CG</title>
        <published>2022-09-27T00:00:00+00:00</published>
        <updated>2022-09-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/extract-saekano-blessing-flowers/"/>
        <id>https://nini22p.github.io/blog/extract-saekano-blessing-flowers/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/extract-saekano-blessing-flowers/">&lt;p&gt;将游戏解密，&lt;code&gt;PCSG00543\PSP2_GAME\USRDIR&lt;&#x2F;code&gt;下就有我们想要的文件。
根据文件名推断音频是&lt;code&gt;.awb&lt;&#x2F;code&gt;，CG在&lt;code&gt;resource.dat&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;ti-qu-yin-pin&quot;&gt;提取音频&lt;&#x2F;h2&gt;
&lt;p&gt;下载&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;sourceforge.net&#x2F;projects&#x2F;vgmtoolbox&#x2F;&quot;&gt;VGMToolbox&lt;&#x2F;a&gt;，打开后选择&lt;code&gt;VGMToolbox&#x2F;Misc. Tools&#x2F;Streams&#x2F;CRI HCA Extractor&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;p&gt;这里以&lt;code&gt;music.awb&lt;&#x2F;code&gt;为例，将文件拖入窗口，&lt;code&gt;hca&lt;&#x2F;code&gt;音频被提取到&lt;code&gt;music_HCAs&lt;&#x2F;code&gt;文件夹。&lt;&#x2F;p&gt;
&lt;p&gt;下载&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;OpenCGSS&#x2F;DereTore&#x2F;releases&quot;&gt;DereTore Toolkit&lt;&#x2F;a&gt;，将以下文件解压到&lt;code&gt;music_HCAs&lt;&#x2F;code&gt;，&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;DereTore.Common.dll&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;DereTore.Common.StarlightStage.dll&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;DereTore.Exchange.Audio.HCA.dll&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;DereTore.Interop.OS.dll&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;hca2wav.exe&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;在&lt;code&gt;music_HCAs&lt;&#x2F;code&gt;下新建&lt;code&gt;hca2wav.bat&lt;&#x2F;code&gt;填入&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;md&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; converted&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;for&lt;&#x2F;span&gt;&lt;span&gt; %%i in (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;*&lt;&#x2F;span&gt;&lt;span&gt;.hca)&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; do&lt;&#x2F;span&gt;&lt;span&gt;  (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #50FA7B;&quot;&gt;hca2wav.exe&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; %%i&lt;&#x2F;span&gt;&lt;span style=&quot;color: #BD93F9;&quot;&gt; -o&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt; converted&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;\%&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F1FA8C;&quot;&gt;%~ni.wav&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;运行脚本，即可在&lt;code&gt;converted&lt;&#x2F;code&gt;文件夹中找到音频文件。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;ti-qu-cg&quot;&gt;提取CG&lt;&#x2F;h2&gt;
&lt;p&gt;下载 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;aluigi.altervista.org&#x2F;papers&#x2F;quickbms.zip&quot;&gt;QuickBMS&lt;&#x2F;a&gt; 并解压，再下载脚本 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;aluigi.altervista.org&#x2F;bms&#x2F;saenai_heroine_no_sodatekata.bms&quot;&gt;saenai_heroine_no_sodatekata.bms&lt;&#x2F;a&gt; 。
在&lt;code&gt;\USRDIR&lt;&#x2F;code&gt;文件夹下打开终端，输入&lt;code&gt;C:\...\quickbms.exe C:\...\saenai_heroine_no_sodatekata.bms resource.dat&lt;&#x2F;code&gt;（省略部分自行补全）并回车，文件会被提取到&lt;code&gt;resource&lt;&#x2F;code&gt;文件夹。&lt;&#x2F;p&gt;
&lt;p&gt;下载 &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;xdanieldzd&#x2F;GXTConvert&#x2F;releases&quot;&gt;GXTConvert&lt;&#x2F;a&gt; 并解压，在&lt;code&gt;resource&lt;&#x2F;code&gt;文件夹下打开终端，输入&lt;code&gt;C:\...\GXTConvert.exe script_event&lt;&#x2F;code&gt;（省略部分自行补全）并回车，&lt;code&gt;gxt&lt;&#x2F;code&gt;格式的图片将会转换成&lt;code&gt;png&lt;&#x2F;code&gt;并保存到&lt;code&gt;script_event (converted)&lt;&#x2F;code&gt;文件夹下。&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>使用 CSS linear-gradient() 设置带颜色遮罩的背景图片</title>
        <published>2022-08-30T00:00:00+00:00</published>
        <updated>2022-08-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/css-linear-gradient-background-image/"/>
        <id>https://nini22p.github.io/blog/css-linear-gradient-background-image/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/css-linear-gradient-background-image/">&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #282A36;&quot;&gt;&lt;code data-lang=&quot;css&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;background-image: linear-gradient(rgba(0&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #000000;background-color: #FFFFFF;&quot;&gt; &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF5555;font-style: italic;text-decoration: underline;&quot;&gt;.5&lt;&#x2F;span&gt;&lt;span&gt;), &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;rgb(0&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #000000;background-color: #FFFFFF;&quot;&gt; &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF5555;font-style: italic;text-decoration: underline;&quot;&gt;.5&lt;&#x2F;span&gt;&lt;span&gt;)), &lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;url(&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;images&lt;&#x2F;span&gt;&lt;span&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FF79C6;&quot;&gt;background.webp&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;);&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>Baldr Sky Steam 补丁 + GOG 汉化</title>
        <published>2022-06-17T00:00:00+00:00</published>
        <updated>2022-06-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/gog-baldr-sky-chs-patch/"/>
        <id>https://nini22p.github.io/blog/gog-baldr-sky-chs-patch/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/gog-baldr-sky-chs-patch/">&lt;h2 id=&quot;steam-bu-ding&quot;&gt;Steam 补丁&lt;&#x2F;h2&gt;
&lt;p&gt;如何使用：&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;下载 &lt;code&gt;Baldr Sky Patch CHS.7z&lt;&#x2F;code&gt;。&lt;&#x2F;li&gt;
&lt;li&gt;解压并覆盖游戏目录文件。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;gog-yi-hua&quot;&gt;GOG 汉化&lt;&#x2F;h2&gt;
&lt;p&gt;提取自 Steam 官方中文版本。&lt;&#x2F;p&gt;
&lt;p&gt;如何使用：&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;下载 &lt;code&gt;Baldr Sky GOG CHS.7z&lt;&#x2F;code&gt; 和 &lt;code&gt;Baldr Sky Patch CHS.7z&lt;&#x2F;code&gt;。&lt;&#x2F;li&gt;
&lt;li&gt;解压并覆盖游戏目录文件。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;已知问题：&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;存档地址在“文档\GIGA\BALDRSKY_DIVE2”，无法使用 GOG 云同步。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;xia-zai-di-zhi&quot;&gt;下载地址&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;mega.nz&#x2F;folder&#x2F;vBlw0KSZ#wuyBgwB8xrEfsmMC3mn1bg&quot;&gt;MEGA&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>GOG 沙耶之歌 汉化补丁</title>
        <published>2022-05-27T00:00:00+00:00</published>
        <updated>2022-05-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/gog-the-song-of-saya-chs-patch/"/>
        <id>https://nini22p.github.io/blog/gog-the-song-of-saya-chs-patch/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/gog-the-song-of-saya-chs-patch/">&lt;p&gt;文件提取自 Steam 版。&lt;&#x2F;p&gt;
&lt;p&gt;下载地址：&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;mega.nz&#x2F;folder&#x2F;iUtSVa6Y#PS81-YDZ-Y6ltfnpXssI6Q&quot;&gt;MEGA&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="zh-CN">
        <title>Xperia X Dual F5122 HK Firmware 港版固件</title>
        <published>2022-04-25T00:00:00+00:00</published>
        <updated>2022-04-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://nini22p.github.io/blog/xperia-x-dual-f5122-hk-firmwares/"/>
        <id>https://nini22p.github.io/blog/xperia-x-dual-f5122-hk-firmwares/</id>
        
        <content type="html" xml:base="https://nini22p.github.io/blog/xperia-x-dual-f5122-hk-firmwares/">&lt;p&gt;F5122_34.4.A.2.118_HK
&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;mega.nz&#x2F;file&#x2F;7ElFCRDb#jfRLdXygdV4LoEwQ4ioT7yn8oR3UYqa-pAHx6_2yh6k&quot;&gt;MEGA&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
