<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>維坦</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://ivitan.com/</id>
  <link href="https://ivitan.com/" rel="alternate"/>
  <link href="https://ivitan.com/xml/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, 維坦</rights>
  <subtitle>⁣⁣⁣Never Settle | ivitan.com</subtitle>
  <title>維坦</title>
  <updated>2026-05-10T08:21:05.105Z</updated>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Diary" scheme="https://ivitan.com/categories/Diary/"/>
    <category term="Linux" scheme="https://ivitan.com/tags/Linux/"/>
    <category term="Web" scheme="https://ivitan.com/tags/Web/"/>
    <category term="Docker" scheme="https://ivitan.com/tags/Docker/"/>
    <content>
      <![CDATA[<h1 id="🚀-低配服务器极简部署笔记-Moontvplus-OpenList"><a href="#🚀-低配服务器极简部署笔记-Moontvplus-OpenList" class="headerlink" title="🚀 低配服务器极简部署笔记 (Moontvplus &amp; OpenList)"></a>🚀 低配服务器极简部署笔记 (Moontvplus &amp; OpenList)</h1><h2 id="一、环境准备"><a href="#一、环境准备" class="headerlink" title="一、环境准备"></a>一、环境准备</h2><ul><li>系统: Ubuntu 22.04 LTS (纯净版)</li><li>硬件: 2 vCPU &#x2F; 900MB RAM &#x2F; 30GB Disk</li><li>关键策略: 开启 Swap 虚拟内存、全 Docker 化、Nginx 反向代理、自动化 SSL。</li><li>开启 BBR</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> <span class="built_in">echo</span> <span class="string">&quot;net.core.default_qdisc=fq&quot;</span> &gt;&gt; /etc/sysctl.conf</span><br><span class="line"><span class="built_in">sudo</span> <span class="built_in">echo</span> <span class="string">&quot;net.ipv4.tcp_congestion_control=bbr&quot;</span> &gt;&gt; /etc/sysctl.conf</span><br><span class="line"></span><br><span class="line"><span class="built_in">sudo</span> sysctl -p <span class="comment">#保存生效</span></span><br><span class="line"></span><br><span class="line"><span class="comment">#验证是否生效</span></span><br><span class="line"><span class="built_in">sudo</span> sysctl net.ipv4.tcp_available_congestion_control</span><br><span class="line"><span class="comment"># 输出应包含 bbr</span></span><br></pre></td></tr></table></figure><h2 id="二、核心部署步骤"><a href="#二、核心部署步骤" class="headerlink" title="二、核心部署步骤"></a>二、核心部署步骤</h2><h3 id="1-开启-2GB-虚拟内存"><a href="#1-开启-2GB-虚拟内存" class="headerlink" title="1. 开启 2GB 虚拟内存"></a>1. 开启 2GB 虚拟内存</h3><ul><li>防止内存溢出导致容器崩溃。</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> fallocate -l 2G /swapfile</span><br><span class="line"><span class="built_in">sudo</span> <span class="built_in">chmod</span> 600 /swapfile</span><br><span class="line"><span class="built_in">sudo</span> mkswap /swapfile</span><br><span class="line"><span class="built_in">sudo</span> swapon /swapfile</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&#x27;/swapfile none swap sw 0 0&#x27;</span> | <span class="built_in">sudo</span> <span class="built_in">tee</span> -a /etc/fstab</span><br></pre></td></tr></table></figure><h3 id="2-安装基础环境"><a href="#2-安装基础环境" class="headerlink" title="2. 安装基础环境"></a>2. 安装基础环境</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> apt update &amp;&amp; <span class="built_in">sudo</span> apt upgrade -y</span><br><span class="line"><span class="built_in">sudo</span> apt install docker.io nginx python3-certbot-nginx -y</span><br><span class="line"><span class="built_in">sudo</span> systemctl <span class="built_in">enable</span> --now docker nginx</span><br></pre></td></tr></table></figure><h3 id="3-部署-Moontvplus-Upstash-云数据库版"><a href="#3-部署-Moontvplus-Upstash-云数据库版" class="headerlink" title="3. 部署 Moontvplus (Upstash 云数据库版)"></a>3. 部署 Moontvplus (Upstash 云数据库版)</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> docker run -d --name orangetv --restart always \</span><br><span class="line">  --log-opt max-size=5m --log-opt max-file=1 \</span><br><span class="line">  -p 3000:3000 \</span><br><span class="line">  -e USERNAME=<span class="string">&quot;admin&quot;</span> \</span><br><span class="line">  -e PASSWORD=<span class="string">&quot;你的密码&quot;</span> \</span><br><span class="line">  -e NEXT_PUBLIC_STORAGE_TYPE=<span class="string">&quot;upstash&quot;</span> \</span><br><span class="line">  -e UPSTASH_URL=<span class="string">&quot;你的URL&quot;</span> \</span><br><span class="line">  -e UPSTASH_TOKEN=<span class="string">&quot;你的TOKEN&quot;</span> \</span><br><span class="line">   ghcr.io/mtvpls/moontvplus:latest</span><br></pre></td></tr></table></figure><h3 id="4-部署-OpenList"><a href="#4-部署-OpenList" class="headerlink" title="4. 部署 OpenList"></a>4. 部署 OpenList</h3><ul><li><strong>注意：</strong> 必须先处理目录权限，否则会报 502&#x2F;Restarting 错误。</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 创建目录并赋予权限</span></span><br><span class="line"><span class="built_in">sudo</span> <span class="built_in">mkdir</span> -p /opt/openlist/data</span><br><span class="line"><span class="built_in">sudo</span> <span class="built_in">chmod</span> -R 777 /opt/openlist/data</span><br><span class="line"></span><br><span class="line"><span class="comment"># 部署容器</span></span><br><span class="line"><span class="built_in">sudo</span> docker run -d --name openlist --restart always --user root \</span><br><span class="line">  --log-opt max-size=5m --log-opt max-file=1 \</span><br><span class="line">  -p 5244:5244 \</span><br><span class="line">  -v /opt/openlist/data:/opt/openlist/data \</span><br><span class="line">  -e PUID=0 -e PGID=0 -e TZ=<span class="string">&quot;Asia/Shanghai&quot;</span> \</span><br><span class="line">  openlistteam/openlist:latest</span><br><span class="line"></span><br><span class="line"><span class="comment"># 重置 admin 密码命令</span></span><br><span class="line"><span class="built_in">sudo</span> docker <span class="built_in">exec</span> -it openlist ./openlist admin <span class="built_in">set</span> 你的新密码</span><br></pre></td></tr></table></figure><h2 id="三、网络与安全配置"><a href="#三、网络与安全配置" class="headerlink" title="三、网络与安全配置"></a>三、网络与安全配置</h2><h3 id="1-Nginx-反向代理"><a href="#1-Nginx-反向代理" class="headerlink" title="1. Nginx 反向代理"></a>1. Nginx 反向代理</h3><ul><li>创建配置</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> nano /etc/nginx/sites-available/media_srv`</span><br></pre></td></tr></table></figure><figure class="highlight nginx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">server</span> &#123;</span><br><span class="line">    <span class="attribute">listen</span> <span class="number">80</span>;</span><br><span class="line">    <span class="attribute">server_name</span> tv.xxx.com; <span class="comment"># 替换域名</span></span><br><span class="line">    <span class="section">location</span> / &#123;</span><br><span class="line">        <span class="attribute">proxy_pass</span> http://127.0.0.1:3000;</span><br><span class="line">        <span class="attribute">include</span> proxy_params;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"><span class="section">server</span> &#123;</span><br><span class="line">    <span class="attribute">listen</span> <span class="number">80</span>;</span><br><span class="line">    <span class="attribute">server_name</span> pan.xxx.com; <span class="comment"># 替换域名</span></span><br><span class="line">    <span class="section">location</span> / &#123;</span><br><span class="line">        <span class="attribute">proxy_pass</span> http://127.0.0.1:5244;</span><br><span class="line">        <span class="attribute">include</span> proxy_params;</span><br><span class="line">        <span class="attribute">client_max_body_size</span> <span class="number">0</span>;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><ul><li>启用配置</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> <span class="built_in">ln</span> -s /etc/nginx/sites-available/media_srv /etc/nginx/sites-enabled/</span><br><span class="line"><span class="built_in">sudo</span> nginx -t &amp;&amp; <span class="built_in">sudo</span> systemctl restart nginx</span><br></pre></td></tr></table></figure><h3 id="2-自动化-SSL-证书"><a href="#2-自动化-SSL-证书" class="headerlink" title="2. 自动化 SSL 证书"></a>2. 自动化 SSL 证书</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> certbot --nginx -d tv.xxx.com -d pan.xxx.com</span><br><span class="line"><span class="comment"># 过程中选择数字 &quot;2&quot; 以开启自动重定向 HTTPS</span></span><br></pre></td></tr></table></figure><h2 id="四、常用维护命令"><a href="#四、常用维护命令" class="headerlink" title="四、常用维护命令"></a>四、常用维护命令</h2><table><thead><tr><th align="left">任务</th><th align="left">命令</th></tr></thead><tbody><tr><td align="left">查看容器状态</td><td align="left">docker ps</td></tr><tr><td align="left">实时查看内存</td><td align="left">docker stats</td></tr><tr><td align="left">查看系统资源</td><td align="left">free -h</td></tr><tr><td align="left">清理冗余镜像</td><td align="left">docker system prune -f</td></tr><tr><td align="left">测试证书续期</td><td align="left">sudo certbot renew –dry-run</td></tr></tbody></table><h2 id="五、避坑总结"><a href="#五、避坑总结" class="headerlink" title="五、避坑总结"></a>五、避坑总结</h2><ol><li><strong>权限问题</strong>：OpenList 必须对挂载目录有写入权限，使用 <code>chmod 777</code> 和 <code>--user root</code> 是低配环境最稳妥方案。</li><li><strong>502 错误</strong>：通常是后端容器处于 <code>Restarting</code> 状态，请检查 <code>docker logs openlist</code>。</li><li><strong>域名解析</strong>：必须确保 GCP 防火墙已放行 80&#x2F;443 端口，且域名 A 记录已生效。</li></ol><h2 id="六、更新容器镜像"><a href="#六、更新容器镜像" class="headerlink" title="六、更新容器镜像"></a>六、更新容器镜像</h2><h3 id="1-拉取最新镜像"><a href="#1-拉取最新镜像" class="headerlink" title="1. 拉取最新镜像"></a>1. 拉取最新镜像</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> docker pull ghcr.io/mtvpls/moontvplus:latest</span><br></pre></td></tr></table></figure><h3 id="2-删除旧容器"><a href="#2-删除旧容器" class="headerlink" title="2. 删除旧容器"></a>2. 删除旧容器</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo docker pull ghcr.io/mtvpls/moontvplus:latest</span><br></pre></td></tr></table></figure><h3 id="3-用同样的参数重新启动"><a href="#3-用同样的参数重新启动" class="headerlink" title="3. 用同样的参数重新启动"></a>3. 用同样的参数重新启动</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> docker run -d --name moontv-core \</span><br><span class="line">  --restart on-failure \</span><br><span class="line">  --log-opt max-size=5m --log-opt max-file=1 \</span><br><span class="line">  -p 3000:3000 \</span><br><span class="line">  -e USERNAME=<span class="string">&quot;admin&quot;</span> \</span><br><span class="line">  -e PASSWORD=<span class="string">&quot;你的密码&quot;</span> \</span><br><span class="line">  -e NEXT_PUBLIC_STORAGE_TYPE=<span class="string">&quot;upstash&quot;</span> \</span><br><span class="line">  -e UPSTASH_URL=<span class="string">&quot;你的URL&quot;</span> \</span><br><span class="line">  -e UPSTASH_TOKEN=<span class="string">&quot;你的TOKEN&quot;</span> \</span><br><span class="line">  ghcr.io/mtvpls/moontvplus:latest</span><br></pre></td></tr></table></figure><h3 id="4-🧹-更新后的清理"><a href="#4-🧹-更新后的清理" class="headerlink" title="4. 🧹 更新后的清理"></a>4. 🧹 更新后的清理</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> docker image prune -f</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://ivitan.com/posts/CloudDocker/</id>
    <link href="https://ivitan.com/posts/CloudDocker/"/>
    <published>2026-04-28T13:15:42.000Z</published>
    <summary>
      <![CDATA[<h1 id="🚀-低配服务器极简部署笔记-Moontvplus-OpenList"><a href="#🚀-低配服务器极简部署笔记-Moontvplus-OpenList" class="headerlink" title="🚀 低配服务器极简部署笔记 (Moontvpl]]>
    </summary>
    <title>低配服务器极简 Docker 容器部署笔记</title>
    <updated>2026-05-10T08:21:05.105Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Diary" scheme="https://ivitan.com/categories/Diary/"/>
    <category term="Linux" scheme="https://ivitan.com/tags/Linux/"/>
    <category term="Android" scheme="https://ivitan.com/tags/Android/"/>
    <category term="Termux" scheme="https://ivitan.com/tags/Termux/"/>
    <content>
      <![CDATA[<h1 id="Termux-安装-OpenClaw（龙虾）"><a href="#Termux-安装-OpenClaw（龙虾）" class="headerlink" title="Termux 安装 OpenClaw（龙虾）"></a>Termux 安装 OpenClaw（龙虾）</h1><h2 id="获取存储权限"><a href="#获取存储权限" class="headerlink" title="获取存储权限"></a>获取存储权限</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">termux-setup-storage </span><br></pre></td></tr></table></figure><h2 id="脚本执行"><a href="#脚本执行" class="headerlink" title="脚本执行"></a>脚本执行</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">curl -O https://raw.githubusercontent.com/iyeoh88-svg/openclaw-android/main/install.sh</span><br><span class="line"><span class="built_in">chmod</span> +x install.sh</span><br><span class="line">./install.sh</span><br></pre></td></tr></table></figure><h2 id="进入与配置"><a href="#进入与配置" class="headerlink" title="进入与配置"></a>进入与配置</h2><h3 id="进入系统"><a href="#进入系统" class="headerlink" title="进入系统"></a>进入系统</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">proot-distro login debian --user openclaw </span><br></pre></td></tr></table></figure><h3 id="配置聊天软件"><a href="#配置聊天软件" class="headerlink" title="配置聊天软件"></a>配置聊天软件</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">openclaw onboard</span><br></pre></td></tr></table></figure><h3 id="启动网关-设置"><a href="#启动网关-设置" class="headerlink" title="启动网关&amp;设置"></a>启动网关&amp;设置</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">openclaw gateway --verbose </span><br><span class="line">openclaw setup</span><br></pre></td></tr></table></figure><h3 id="获取Token"><a href="#获取Token" class="headerlink" title="获取Token"></a>获取Token</h3><p>新建Termux会话，执行</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">openclaw dashboard</span><br></pre></td></tr></table></figure><p>  获取如：<code>http://localhost:18789/#token=xxx</code> 的地址后再次启动<br>  <code>start-claw</code>访问</p>]]>
    </content>
    <id>https://ivitan.com/posts/TermuxInstallOpenClaw/</id>
    <link href="https://ivitan.com/posts/TermuxInstallOpenClaw/"/>
    <published>2026-04-12T08:44:01.000Z</published>
    <summary>
      <![CDATA[<h1 id="Termux-安装-OpenClaw（龙虾）"><a href="#Termux-安装-OpenClaw（龙虾）" class="headerlink" title="Termux 安装 OpenClaw（龙虾）"></a>Termux 安装 OpenClaw（龙]]>
    </summary>
    <title>Termux Install OpenClaw</title>
    <updated>2026-05-10T08:21:05.115Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Diary" scheme="https://ivitan.com/categories/Diary/"/>
    <category term="Linux" scheme="https://ivitan.com/tags/Linux/"/>
    <category term="Termux" scheme="https://ivitan.com/tags/Termux/"/>
    <content>
      <![CDATA[<h1 id="在-Termux-中安装-Jupyter-的步骤"><a href="#在-Termux-中安装-Jupyter-的步骤" class="headerlink" title="在 Termux 中安装 Jupyter 的步骤"></a>在 Termux 中安装 Jupyter 的步骤</h1><h2 id="第一步：更新系统环境"><a href="#第一步：更新系统环境" class="headerlink" title="第一步：更新系统环境"></a>第一步：更新系统环境</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">pkg update &amp;&amp; pkg upgrade -y</span><br></pre></td></tr></table></figure><h2 id="第二步：安装编译器与系统依赖"><a href="#第二步：安装编译器与系统依赖" class="headerlink" title="第二步：安装编译器与系统依赖"></a>第二步：安装编译器与系统依赖</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">pkg install python clang build-essential rust binutils libzmq libcrypt openssl ca-certificates -y</span><br></pre></td></tr></table></figure><h2 id="第三步：安装-Termux-预编译的-Python-包"><a href="#第三步：安装-Termux-预编译的-Python-包" class="headerlink" title="第三步：安装 Termux 预编译的 Python 包"></a>第三步：安装 Termux 预编译的 Python 包</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">pkg install python-psutil -y</span><br></pre></td></tr></table></figure><h2 id="第四步：配置环境变量（关键）"><a href="#第四步：配置环境变量（关键）" class="headerlink" title="第四步：配置环境变量（关键）"></a>第四步：配置环境变量（关键）</h2><p>这一步是解决刚才遇到的 Cargo SSL 网络中断（unexpected eof）和 Rust 编译器找不到目标架构（ANDROID_API_LEVEL）的核心秘籍。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">export</span> CARGO_HTTP_MULTIPLEXING=<span class="literal">false</span></span><br><span class="line"><span class="built_in">export</span> ANDROID_API_LEVEL=24</span><br></pre></td></tr></table></figure><h2 id="第五步：正式安装-Jupyter"><a href="#第五步：正式安装-Jupyter" class="headerlink" title="第五步：正式安装 Jupyter"></a>第五步：正式安装 Jupyter</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">pip install jupyter</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://ivitan.com/posts/TermuxInstallJupyter/</id>
    <link href="https://ivitan.com/posts/TermuxInstallJupyter/"/>
    <published>2026-04-09T10:00:30.000Z</published>
    <summary>
      <![CDATA[<h1 id="在-Termux-中安装-Jupyter-的步骤"><a href="#在-Termux-中安装-Jupyter-的步骤" class="headerlink" title="在 Termux 中安装 Jupyter 的步骤"></a>在 Termux 中安装 J]]>
    </summary>
    <title>Termux install  Jupyter</title>
    <updated>2026-05-10T08:21:05.115Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Github" scheme="https://ivitan.com/tags/Github/"/>
    <content>
      <![CDATA[<h1 id="Github-Actions"><a href="#Github-Actions" class="headerlink" title="Github Actions"></a>Github Actions</h1><h2 id="生成-SSH-Key"><a href="#生成-SSH-Key" class="headerlink" title="生成 SSH Key"></a>生成 SSH Key</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ssh-keygen -t rsa -b 4096 -C &quot;emal@gmail.com&quot;</span><br></pre></td></tr></table></figure><span id="more"></span><h2 id="添加-Key-到-GitHub"><a href="#添加-Key-到-GitHub" class="headerlink" title="添加 Key 到 GitHub"></a>添加 Key 到 GitHub</h2><h3 id="公钥"><a href="#公钥" class="headerlink" title="公钥"></a>公钥</h3><p>仓库 –&gt; Secrets –&gt; Actions –&gt; New repository secert</p><p>Name: HEXO_DEPLOY_KEY<br>Value: id_rsa.pub 的值</p><h2 id="私钥"><a href="#私钥" class="headerlink" title="私钥"></a>私钥</h2><p>仓库 –&gt; Settings –&gt; Deploy keys –&gt; Add deploy key</p><p>Name: HEXO_DEPLOY_PUB<br>Value: id_rsa  的值</p><h1 id="使用"><a href="#使用" class="headerlink" title="使用"></a>使用</h1><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">name:</span> <span class="string">Hexo</span> <span class="string">Deploy</span></span><br><span class="line"></span><br><span class="line"><span class="attr">on:</span></span><br><span class="line">  <span class="attr">push:</span></span><br><span class="line">    <span class="attr">branches:</span> </span><br><span class="line">      <span class="bullet">-</span> <span class="string">source</span> <span class="comment"># 触发分支：当 source 分支有更新时执行</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 【关键点】必须赋予 GITHUB_TOKEN 写入权限，否则无法推送代码</span></span><br><span class="line"><span class="attr">permissions:</span></span><br><span class="line">  <span class="attr">contents:</span> <span class="string">write</span></span><br><span class="line"></span><br><span class="line"><span class="attr">jobs:</span></span><br><span class="line">  <span class="attr">build:</span> </span><br><span class="line">    <span class="attr">runs-on:</span> <span class="string">ubuntu-latest</span></span><br><span class="line">    <span class="attr">name:</span> <span class="string">auto</span> <span class="string">deploy</span></span><br><span class="line">    </span><br><span class="line">    <span class="attr">steps:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Checkout</span> <span class="string">Repository</span></span><br><span class="line">      <span class="attr">uses:</span> <span class="string">actions/checkout@v4</span></span><br><span class="line">      <span class="attr">with:</span></span><br><span class="line">        <span class="attr">ref:</span> <span class="string">source</span></span><br><span class="line"></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Setup</span> <span class="string">Node.js</span></span><br><span class="line">      <span class="attr">uses:</span> <span class="string">actions/setup-node@v4</span></span><br><span class="line">      <span class="attr">with:</span></span><br><span class="line">        <span class="attr">node-version:</span> <span class="string">&quot;25&quot;</span></span><br><span class="line"></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Generate</span> <span class="string">Public</span> <span class="string">Files</span></span><br><span class="line">      <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string">        npm install</span></span><br><span class="line"><span class="string">        npx hexo clean</span></span><br><span class="line"><span class="string">        npx hexo generate</span></span><br><span class="line"><span class="string"></span></span><br><span class="line">    <span class="comment"># 部署到当前仓库（使用 GITHUB_TOKEN）</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Deploy</span> <span class="string">Hexo</span></span><br><span class="line">      <span class="attr">uses:</span> <span class="string">peaceiris/actions-gh-pages@v4</span></span><br><span class="line">      <span class="attr">with:</span></span><br><span class="line">        <span class="attr">github_token:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.GITHUB_TOKEN</span> <span class="string">&#125;&#125;</span></span><br><span class="line">        <span class="attr">publish_branch:</span> <span class="string">master</span> <span class="comment"># 部署到当前仓库的 master 分支 (或者改为 gh-pages)</span></span><br><span class="line">        <span class="attr">publish_dir:</span> <span class="string">./public</span></span><br><span class="line">        <span class="attr">commit_message:</span> <span class="string">$&#123;&#123;</span> <span class="string">github.event.head_commit.message</span> <span class="string">&#125;&#125;</span></span><br><span class="line">        <span class="attr">user_name:</span> <span class="string">&#x27;yourname&#x27;</span></span><br><span class="line">        <span class="attr">user_email:</span> <span class="string">&#x27;yourname@mail.com&#x27;</span></span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://ivitan.com/posts/GithubActions/</id>
    <link href="https://ivitan.com/posts/GithubActions/"/>
    <published>2022-05-07T17:03:47.000Z</published>
    <summary>
      <![CDATA[<h1 id="Github-Actions"><a href="#Github-Actions" class="headerlink" title="Github Actions"></a>Github Actions</h1><h2 id="生成-SSH-Key"><a href="#生成-SSH-Key" class="headerlink" title="生成 SSH Key"></a>生成 SSH Key</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ssh-keygen -t rsa -b 4096 -C &quot;emal@gmail.com&quot;</span><br></pre></td></tr></table></figure>]]>
    </summary>
    <title>Hexo Github Actions</title>
    <updated>2026-05-10T08:21:05.107Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Diary" scheme="https://ivitan.com/categories/Diary/"/>
    <category term="Linux" scheme="https://ivitan.com/tags/Linux/"/>
    <category term="Windows" scheme="https://ivitan.com/tags/Windows/"/>
    <content>
      <![CDATA[<span id="more"></span><h2 id="命令"><a href="#命令" class="headerlink" title="命令"></a>命令</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">adb connect ip</span><br><span class="line">adb shell </span><br><span class="line"></span><br><span class="line"># 查找 APK 路径，路径截止到 base.apk</span><br><span class="line">pm list package -f | grep apkName</span><br><span class="line"></span><br><span class="line">adb pull APK_PATH Rename.apk</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://ivitan.com/posts/ADB-APK/</id>
    <link href="https://ivitan.com/posts/ADB-APK/"/>
    <published>2021-12-04T02:19:14.000Z</published>
    <summary>
      <![CDATA[<span id="more"></span>

<h2 id="命令"><a href="#命令" class="headerlink" title="命令"></a>命令</h2><figure class="highlight plaintext"><table><tr><]]>
    </summary>
    <title>ADB 提取系统 APK</title>
    <updated>2026-05-10T08:21:05.104Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Coding" scheme="https://ivitan.com/categories/Coding/"/>
    <category term="Android" scheme="https://ivitan.com/tags/Android/"/>
    <content>
      <![CDATA[<blockquote><p>一键关闭多用户状态栏头像</p></blockquote><span id="more"></span><h1 id="一键关闭多用户状态栏头像教程"><a href="#一键关闭多用户状态栏头像教程" class="headerlink" title="一键关闭多用户状态栏头像教程"></a>一键关闭多用户状态栏头像教程</h1><p>1、打开开发者模式<br>2、打开USB调试<br>3、勾上禁止权限监控<br>4、运行 ADB 命令</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">adb shell settings put global user_switcher_enabled 0 </span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://ivitan.com/posts/DeleteMutiUser/</id>
    <link href="https://ivitan.com/posts/DeleteMutiUser/"/>
    <published>2021-10-14T11:56:26.000Z</published>
    <summary>
      <![CDATA[<blockquote>
<p>一键关闭多用户状态栏头像</p>
</blockquote>]]>
    </summary>
    <title>一键关闭多用户状态栏头像</title>
    <updated>2026-05-10T08:21:05.106Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Coding" scheme="https://ivitan.com/categories/Coding/"/>
    <category term="Linux" scheme="https://ivitan.com/tags/Linux/"/>
    <category term="Windows" scheme="https://ivitan.com/tags/Windows/"/>
    <content>
      <![CDATA[<blockquote><p>remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.<br>remote: Please see <a href="https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/">https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/</a> for more information.</p></blockquote><span id="more"></span><h2 id="解决方法"><a href="#解决方法" class="headerlink" title="解决方法"></a>解决方法</h2><h3 id="Token-登录"><a href="#Token-登录" class="headerlink" title="Token 登录"></a>Token 登录</h3><p>若之前记住了密码,则需要删除用户目录下的 <code>.git-credentials</code> 文件，则可以重新输入用户名和密码，输入密码时输入 Github 生成的 Token 即可</p><ul><li>Windows</li></ul><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">rm -rf C:\Users\username\.git-credentials</span><br></pre></td></tr></table></figure><ul><li>Linux&#x2F;macOS</li></ul><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">rm -rf /home/username/.git-credentials</span><br><span class="line">rm -rf /Users/username/.git-credentials</span><br></pre></td></tr></table></figure><h2 id="SSH-免密登录"><a href="#SSH-免密登录" class="headerlink" title="SSH 免密登录"></a>SSH 免密登录</h2><h3 id="生成密钥"><a href="#生成密钥" class="headerlink" title="生成密钥"></a>生成密钥</h3><ul><li>生成</li></ul><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ssh-keygen -t rsa -b 4096 -C &quot;uesrname@xxx.com&quot;</span><br></pre></td></tr></table></figure><ul><li><p>id_rsa.pub 密钥填入 Github 的 SSH keys </p></li><li><p>修改本地项目的地址为 SSH Clone 的地址(三种方法)</p></li></ul><ol><li>修改命令</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git remote origin set-url [url]</span><br></pre></td></tr></table></figure><ol start="2"><li>先删后加</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">git remote rm origin</span><br><span class="line">git remote add origin [url]</span><br></pre></td></tr></table></figure><ol start="3"><li>编辑 .git 中 config</li></ol>]]>
    </content>
    <id>https://ivitan.com/posts/Git-Token/</id>
    <link href="https://ivitan.com/posts/Git-Token/"/>
    <published>2021-08-19T15:10:42.000Z</published>
    <summary>
      <![CDATA[<blockquote>
<p>remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.<br>remote: Please see <a href="https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/">https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/</a> for more information.</p>
</blockquote>]]>
    </summary>
    <title>Github 不再支持密码验证解决方案</title>
    <updated>2026-05-10T08:21:05.106Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Diary" scheme="https://ivitan.com/categories/Diary/"/>
    <category term="Windows" scheme="https://ivitan.com/tags/Windows/"/>
    <content>
      <![CDATA[<p>关闭大部分 WPS 广告</p><span id="more"></span><h1 id="步骤"><a href="#步骤" class="headerlink" title="步骤"></a>步骤</h1><ul><li>打开 WPS 配置工具，点击高级</li></ul><p><img src="/assets/Picture/imagesWPS_Peizhi.png"></p><p><img src="/assets/Picture/imagesWPS_Setting.png"></p><ul><li>功能定制中打勾</li></ul><p><img src="/assets/Picture/imagesWPS_Plug.png"></p><ul><li>其他选项中打勾</li></ul><p><img src="/assets/Picture/imagesWPS_other.png"></p><ul><li>右键桌面右下角 WPS 图标，进入同步设置，取消勾选办公小助手</li></ul><p><img src="/assets/Picture/imagesWps_settings.png"></p>]]>
    </content>
    <id>https://ivitan.com/posts/Anti-WPS-ADs/</id>
    <link href="https://ivitan.com/posts/Anti-WPS-ADs/"/>
    <published>2021-07-22T11:23:54.000Z</published>
    <summary>
      <![CDATA[<p>关闭大部分 WPS 广告</p>]]>
    </summary>
    <title>如何关闭大部分 WPS 广告</title>
    <updated>2026-05-10T08:21:05.104Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Diary" scheme="https://ivitan.com/categories/Diary/"/>
    <category term="Windows" scheme="https://ivitan.com/tags/Windows/"/>
    <content>
      <![CDATA[<p>安装 Windows 时 GPT 与 MBR 互换</p><span id="more"></span><p>装机启动时在选择磁盘时 Shirt + F10 进入CMD</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">diskpart</span><br><span class="line">list disk </span><br><span class="line">select disk n # n 为想要转换的序号</span><br><span class="line">clean # 清除数据</span><br><span class="line">convert mbr # GPT -&gt; MBR</span><br><span class="line"></span><br><span class="line">convert gpt # MBR -&gt; GPT</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://ivitan.com/posts/GPT-MBR/</id>
    <link href="https://ivitan.com/posts/GPT-MBR/"/>
    <published>2021-07-03T16:32:38.000Z</published>
    <summary>
      <![CDATA[<p>安装 Windows 时 GPT 与 MBR 互换</p>]]>
    </summary>
    <title>安装 Windows 时 GPT 与 MBR 互换</title>
    <updated>2026-05-10T08:21:05.106Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Diary" scheme="https://ivitan.com/categories/Diary/"/>
    <category term="Linux" scheme="https://ivitan.com/tags/Linux/"/>
    <category term="Termux" scheme="https://ivitan.com/tags/Termux/"/>
    <content>
      <![CDATA[<p>Bintray 库已关闭，如何解决？</p><span id="more"></span><h1 id="问题"><a href="#问题" class="headerlink" title="问题"></a>问题</h1><p>由于 Bintray 库已关闭，所以安装是提示 403</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">Ign:2 https://dl.bintray.com/grimler/game-packages-24 games InRelease</span><br><span class="line">Ign:3 https://dl.bintray.com/grimler/science-packages-24 science InRelease</span><br><span class="line">Err:4 https://dl.bintray.com/grimler/game-packages-24 games Release</span><br><span class="line">  403  Forbidden</span><br><span class="line">Err:5 https://dl.bintray.com/grimler/science-packages-24 science Release</span><br><span class="line">  403  Forbidden</span><br><span class="line">Get:1 https://grimler.se/termux-packages-24 stable InRelease [13.1 kB]</span><br><span class="line">Get:6 https://grimler.se/termux-packages-24 stable/main all Packages [21.6 kB]</span><br><span class="line">Get:7 https://grimler.se/termux-packages-24 stable/main aarch64 Packages [269 kB]</span><br><span class="line">Reading package lists... Done</span><br><span class="line">E: The repository &#x27;https://dl.bintray.com/grimler/game-packages-24 games Release&#x27; does not have a Release file.</span><br><span class="line">N: Metadata integrity can&#x27;t be verified, repository is disabled now.</span><br><span class="line">N: Possible cause: repository is under maintenance or down (wrong sources.list URL?).</span><br><span class="line">E: The repository &#x27;https://dl.bintray.com/grimler/science-packages-24 science Release&#x27; does not have a Release file.</span><br><span class="line">N: Metadata integrity can&#x27;t be verified, repository is disabled now.</span><br><span class="line">N: Possible cause: repository is under maintenance or down (wrong sources.list URL?).</span><br></pre></td></tr></table></figure><h1 id="解决办法"><a href="#解决办法" class="headerlink" title="解决办法"></a>解决办法</h1><h2 id="换源清华"><a href="#换源清华" class="headerlink" title="换源清华"></a>换源清华</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">termux-change-repo</span><br></pre></td></tr></table></figure><h2 id="更新缓存"><a href="#更新缓存" class="headerlink" title="更新缓存"></a>更新缓存</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">apt upgrade</span><br><span class="line">pkg upgrade</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://ivitan.com/posts/TermuxRepo/</id>
    <link href="https://ivitan.com/posts/TermuxRepo/"/>
    <published>2021-06-20T07:18:28.000Z</published>
    <summary>
      <![CDATA[<p>Bintray 库已关闭，如何解决？</p>]]>
    </summary>
    <title>Termux 的 Bintray 库已关闭，解决办法</title>
    <updated>2026-05-10T08:21:05.116Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Diary" scheme="https://ivitan.com/categories/Diary/"/>
    <category term="Hexo" scheme="https://ivitan.com/tags/Hexo/"/>
    <category term="Google" scheme="https://ivitan.com/tags/Google/"/>
    <content>
      <![CDATA[<blockquote><p>我们发现，您还有一个 AdSense 帐号。每位用户只能拥有一个帐号。要使用此帐号，请关闭另一个帐号。</p></blockquote><span id="more"></span><h1 id="失败分析"><a href="#失败分析" class="headerlink" title="失败分析"></a>失败分析</h1><p><img src="/assets/Picture/imagesGoogleAdsenseError.png"></p><ol><li>网站内容不合规</li><li>提示有另一个账号</li><li>…</li></ol><h2 id="两个账号原因"><a href="#两个账号原因" class="headerlink" title="两个账号原因"></a>两个账号原因</h2><ul><li>Google Play 商店的付款方式，若你注册 Adsense 时又填写了另一个付款方式信息，那么你实际上就有两个了。</li><li>Google Play 商店锁过非大陆地区，删除付款方式，再在  Adsense 里添加单一付款方式，依旧提示有另一个账号。</li></ul><h1 id="解决方法"><a href="#解决方法" class="headerlink" title="解决方法"></a>解决方法</h1><h2 id="重新注册谷歌账号"><a href="#重新注册谷歌账号" class="headerlink" title="重新注册谷歌账号"></a>重新注册谷歌账号</h2><blockquote><p><strong>此电话号码无法用于进行验证</strong></p></blockquote><p>大陆地区手机号码需要将浏览器语言设为英文才能接到验证码</p><h2 id="注册-Adsense"><a href="#注册-Adsense" class="headerlink" title="注册 Adsense"></a>注册 Adsense</h2><p>注册好谷歌账户后，先别登录 Play 商店，直接 Adsense 官网登录，按提示填上大陆地址的付款方式即可.</p><h1 id="成果"><a href="#成果" class="headerlink" title="成果"></a>成果</h1><p><img src="/assets/Picture/imagesAdsenseBingo.png"></p>]]>
    </content>
    <id>https://ivitan.com/posts/GoogleAdSense/</id>
    <link href="https://ivitan.com/posts/GoogleAdSense/"/>
    <published>2021-06-13T15:52:59.000Z</published>
    <summary>
      <![CDATA[<blockquote>
<p>我们发现，您还有一个 AdSense 帐号。每位用户只能拥有一个帐号。要使用此帐号，请关闭另一个帐号。</p>
</blockquote>]]>
    </summary>
    <title>你网站的 Google Adsense 为什么不通过？</title>
    <updated>2026-05-10T08:21:05.107Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Diary" scheme="https://ivitan.com/categories/Diary/"/>
    <category term="Android" scheme="https://ivitan.com/tags/Android/"/>
    <category term="TvBox" scheme="https://ivitan.com/tags/TvBox/"/>
    <content>
      <![CDATA[<p>Kodi 设置中文并添加 IPTV 源</p><span id="more"></span><h1 id="下载-Kodi"><a href="#下载-Kodi" class="headerlink" title="下载 Kodi"></a>下载 Kodi</h1><p>各平台均可在 <a href="https://kodi.tv/download/">Kodi 官网</a> 下载</p><h1 id="设置中文显示"><a href="#设置中文显示" class="headerlink" title="设置中文显示"></a>设置中文显示</h1><h2 id="设置字体"><a href="#设置字体" class="headerlink" title="设置字体"></a>设置字体</h2><ul><li>点击齿轮进入设置</li></ul><p><img src="/assets/Picture/imagesKodi_Setting.png"></p><ul><li>再点击进入 <code>Interace</code> –&gt; <code>Skin</code> -&gt; <code>Fonts</code> 设置成 <code>Arial baased</code> 以防止设置成中文后乱码</li></ul><p><img src="/assets/Picture/imagesKodi_Interface.png"><br><img src="/assets/Picture/imageskodi_font.png"></p><h2 id="添加中文"><a href="#添加中文" class="headerlink" title="添加中文"></a>添加中文</h2><ul><li>点击 <code>System</code> 进入系统设置</li></ul><p><img src="/assets/Picture/imagesKodi_System.png"></p><ul><li>依次点击 <code>Add-ons</code> 和 <code>Running</code></li></ul><p><img src="/assets/Picture/imagesKodin_adfont.png"></p><ul><li>点击 <code>Install from repository</code></li></ul><p><img src="/assets/Picture/imagesKodi_InFont.png"></p><ul><li>点击 <code>Lock and feel</code></li></ul><p><img src="/assets/Picture/imageskodi_lock.png"></p><ul><li>点击 <code>Language</code> 然后找到 <code>Chinese(simple)</code>，点击进入后再点击 <code>Install</code></li></ul><p><img src="/assets/Picture/imagesKodi_Language.png"><br><img src="/assets/Picture/imagesKodi_ChineseSimple.png"></p><h2 id="应用中文语言"><a href="#应用中文语言" class="headerlink" title="应用中文语言"></a>应用中文语言</h2><p>返回设置界面,进入 <code>Interface</code> 后选择 <code>Regional</code>，点击 <code>Language</code>，选择 <code>Chinese(simple)</code>，到此中文<br><img src="/assets/Picture/imageskodi_Settinglang.png"></p><h1 id="添加-IPTV-源"><a href="#添加-IPTV-源" class="headerlink" title="添加 IPTV 源"></a>添加 IPTV 源</h1><h2 id="安装插件"><a href="#安装插件" class="headerlink" title="安装插件"></a>安装插件</h2><ul><li>点击设置，再点击 <code>插件</code> –&gt; <code>从库安装</code> –&gt; <code>PVR 客户端</code></li></ul><p><img src="/assets/Picture/imagesKodi_Plug.png"></p><ul><li>找到 <code>PVR IPVTV Simple Client</code>，点击进入后点击 Install 安装</li></ul><p><img src="/assets/Picture/imagesKodi_PVC.png"></p><h2 id="下载源"><a href="#下载源" class="headerlink" title="下载源"></a>下载源</h2><p>在 <a href="https://github.com/biancangming/wtv">https://github.com/biancangming/wtv</a> 下载好放入U盘</p><h2 id="添加源"><a href="#添加源" class="headerlink" title="添加源"></a>添加源</h2><ul><li>点击设置齿轮，然后点击<code>插件</code> –&gt; <code>我的插件</code> –&gt; <code>PVR客户端</code> –&gt; <code>PVR IPTV Simple Client</code>，点击设置，进入源设置页面</li></ul><p><img src="/assets/Picture/imagesKodi_PVRSetting.png"></p><ul><li>在 <code>M3U playlist path</code> 中选择或填写下好的源文件,最后点击确认</li></ul><p><img src="/assets/Picture/imageskodi_setsource.png"></p><h1 id="效果展示"><a href="#效果展示" class="headerlink" title="效果展示"></a>效果展示</h1><p><img src="/assets/Picture/imagesKidi_show.png"></p>]]>
    </content>
    <id>https://ivitan.com/posts/Kodi/</id>
    <link href="https://ivitan.com/posts/Kodi/"/>
    <published>2021-06-12T11:51:28.000Z</published>
    <summary>
      <![CDATA[<p>Kodi 设置中文并添加 IPTV 源</p>]]>
    </summary>
    <title>Kodi 设置中文并添加 IPTV 源</title>
    <updated>2026-05-10T08:21:05.108Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Coding" scheme="https://ivitan.com/categories/Coding/"/>
    <category term="Linux" scheme="https://ivitan.com/tags/Linux/"/>
    <category term="Android" scheme="https://ivitan.com/tags/Android/"/>
    <content>
      <![CDATA[<p>一加 9 Pro 刷了 OxygenOS 后有时连上了WiFi但是无WiFi图标，有时还有感叹号</p><span id="more"></span><h1 id="解决方法"><a href="#解决方法" class="headerlink" title="解决方法"></a>解决方法</h1><ul><li>利用 adb ,重启手机依旧生效</li></ul><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">adb shell settings put global captive_portal_server www.google.cn/generate_204</span><br></pre></td></tr></table></figure><h2 id="还原"><a href="#还原" class="headerlink" title="还原"></a>还原</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">adb shell settings delete global captive_portal_server</span><br><span class="line">adb shell settings put global captive_portal_detection_enabled 1</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://ivitan.com/posts/ADB-NetWork/</id>
    <link href="https://ivitan.com/posts/ADB-NetWork/"/>
    <published>2021-05-11T12:51:04.000Z</published>
    <summary>
      <![CDATA[<p>一加 9 Pro 刷了 OxygenOS 后有时连上了WiFi但是无WiFi图标，有时还有感叹号</p>]]>
    </summary>
    <title>无需 root 解决 android 网络的感叹号</title>
    <updated>2026-05-10T08:21:05.104Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Diary" scheme="https://ivitan.com/categories/Diary/"/>
    <category term="Linux" scheme="https://ivitan.com/tags/Linux/"/>
    <category term="Windows" scheme="https://ivitan.com/tags/Windows/"/>
    <category term="Android" scheme="https://ivitan.com/tags/Android/"/>
    <content>
      <![CDATA[<p>修补 boot 刷 Magisk</p><span id="more"></span><ol><li><p>请确保手机为已<a href="/posts/Adb.html">解锁</a>状态</p></li><li><p>下载官方包解压获取 boot.img 放到手机储存空间中，并安装 <a href="https://github.com/topjohnwu/Magisk/releases">Magisk Manager</a></p></li><li><p>安装完成后打开 Magisk –&gt; 点击安装 –&gt; 选择并修补一个文件 –&gt; 选择刚刚的 boot.img</p></li><li><p>修补后的文件文件在 sdcard&#x2F;Download&#x2F;patched_boot.img</p></li><li><p>将手机重启至 bootloader，连接上电脑，打开 ADB </p></li><li><p>输入命令 fastboot flash boot patched_boot.img  后重启</p></li></ol>]]>
    </content>
    <id>https://ivitan.com/posts/AdbMagisk/</id>
    <link href="https://ivitan.com/posts/AdbMagisk/"/>
    <published>2021-01-11T01:17:25.000Z</published>
    <summary>
      <![CDATA[<p>修补 boot 刷 Magisk</p>]]>
    </summary>
    <title>Adb 修补 boot 刷 Magisk</title>
    <updated>2026-05-10T08:21:05.104Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Coding" scheme="https://ivitan.com/categories/Coding/"/>
    <category term="Linux" scheme="https://ivitan.com/tags/Linux/"/>
    <category term="Windows" scheme="https://ivitan.com/tags/Windows/"/>
    <category term="Python" scheme="https://ivitan.com/tags/Python/"/>
    <content>
      <![CDATA[<p>Python 项目调用 Github Actions 中的 Secrets</p><span id="more"></span><h2 id="配置-Secret"><a href="#配置-Secret" class="headerlink" title="配置 Secret"></a>配置 Secret</h2><blockquote><p>设置好名为 <code>mySecret</code> 的 Secret </p></blockquote><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">name:</span> <span class="string">&#x27;GitHub Actions Demo&#x27;</span></span><br><span class="line"> </span><br><span class="line"><span class="attr">on:</span></span><br><span class="line">  <span class="attr">push:</span></span><br><span class="line">  <span class="attr">schedule:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">cron:</span> <span class="string">&#x27;0 23 * * *&#x27;</span></span><br><span class="line"></span><br><span class="line"><span class="attr">jobs:</span></span><br><span class="line">  <span class="attr">Weather-daily:</span></span><br><span class="line">    <span class="attr">runs-on:</span> <span class="string">ubuntu-latest</span></span><br><span class="line">    <span class="attr">steps:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">&#x27;Checkout&#x27;</span></span><br><span class="line">        <span class="attr">uses:</span> <span class="string">actions/checkout@v2</span></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">&#x27;Set up Python&#x27;</span></span><br><span class="line">        <span class="attr">uses:</span> <span class="string">actions/setup-python@v1</span></span><br><span class="line">        <span class="attr">with:</span></span><br><span class="line">          <span class="attr">python-version:</span> <span class="number">3.7</span></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">&#x27;Install requirements&#x27;</span></span><br><span class="line">        <span class="attr">run:</span> <span class="string">| </span></span><br><span class="line"><span class="string">          python -m pip install --upgrade pip</span></span><br><span class="line"><span class="string">          pip install -r requirements.txt</span></span><br><span class="line"><span class="string"></span>      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">&#x27;Working&#x27;</span></span><br><span class="line">        <span class="attr">env:</span></span><br><span class="line">          <span class="attr">apiID:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.APIID</span> <span class="string">&#125;&#125;</span></span><br><span class="line">          <span class="attr">appSecret:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.APPSECRET</span> <span class="string">&#125;&#125;</span></span><br><span class="line">          <span class="attr">SCKEY:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.SCKEY</span> <span class="string">&#125;&#125;</span></span><br><span class="line">        <span class="attr">run:</span> <span class="string">python</span> <span class="string">Demo.py</span></span><br></pre></td></tr></table></figure><h2 id="Demo"><a href="#Demo" class="headerlink" title="Demo"></a>Demo</h2><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> os</span><br><span class="line"></span><br><span class="line">mySecret = os.environ[<span class="string">&#x27;mySecret&#x27;</span>]</span><br><span class="line"><span class="built_in">print</span>(mySecret)</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://ivitan.com/posts/GithubSecret/</id>
    <link href="https://ivitan.com/posts/GithubSecret/"/>
    <published>2021-01-03T02:12:17.000Z</published>
    <summary>
      <![CDATA[<p>Python 项目调用 Github Actions 中的 Secrets</p>]]>
    </summary>
    <title>Python 项目调用 Github Actions 中的 Secrets</title>
    <updated>2026-05-10T08:21:05.107Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Coding" scheme="https://ivitan.com/categories/Coding/"/>
    <category term="Linux" scheme="https://ivitan.com/tags/Linux/"/>
    <category term="Windows" scheme="https://ivitan.com/tags/Windows/"/>
    <category term="Hexo" scheme="https://ivitan.com/tags/Hexo/"/>
    <content>
      <![CDATA[<p>利用 Github Action 自动部署 Hexo。</p><span id="more"></span><h1 id="Secrets"><a href="#Secrets" class="headerlink" title="Secrets"></a>Secrets</h1><p>仓库下 Setting -&gt; Secrets -&gt; New repository secret 新建 Secrets</p><figure class="highlight sh"><figcaption><span>Secret 名</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">HEXO_DEPLOY_PRI</span><br></pre></td></tr></table></figure><h1 id="Actions"><a href="#Actions" class="headerlink" title="Actions"></a>Actions</h1><p>Hexo 目录下新建 .github\workflows\deploy.yml</p><figure class="highlight yml"><figcaption><span>deploy.yml</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># Actions 名称</span></span><br><span class="line"><span class="attr">name:</span> <span class="string">Hexo</span> <span class="string">Deploy</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 监听分支有提价时执行</span></span><br><span class="line"><span class="attr">on:</span></span><br><span class="line">  <span class="attr">push:</span></span><br><span class="line">    <span class="attr">branches:</span> </span><br><span class="line">      <span class="bullet">-</span> <span class="string">source</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 系统环境变量</span></span><br><span class="line"><span class="attr">env:</span></span><br><span class="line">  <span class="attr">TZ:</span> <span class="string">Asia/Shanghai</span></span><br><span class="line">  <span class="attr">GIT_USER:</span> <span class="string">Vitan</span></span><br><span class="line">  <span class="attr">GIT_EMAIL:</span> <span class="string">vitan.me@gmail.com</span></span><br><span class="line">  <span class="attr">DEPLOY_REPO:</span> <span class="string">ivitan/ivitan.github.io</span></span><br><span class="line">  <span class="attr">DEPLOY_BRANCH:</span> <span class="string">master</span></span><br><span class="line">  <span class="attr">THEME_REPO:</span> <span class="string">ivitan/indigo</span></span><br><span class="line">  <span class="attr">THEME_BRANCH:</span> <span class="string">master</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 系统环境</span></span><br><span class="line"><span class="attr">jobs:</span></span><br><span class="line">  <span class="attr">build:</span></span><br><span class="line">    <span class="attr">name:</span> <span class="string">Setup</span> <span class="string">OS</span></span><br><span class="line">    <span class="attr">runs-on:</span> <span class="string">ubuntu-latest</span></span><br><span class="line">    <span class="attr">strategy:</span></span><br><span class="line">      <span class="attr">matrix:</span></span><br><span class="line">        <span class="attr">os:</span> [<span class="string">ubuntu-latest</span>]</span><br><span class="line">        <span class="attr">node_version:</span> [<span class="number">12.</span><span class="string">x</span>]</span><br><span class="line"></span><br><span class="line">    <span class="attr">steps:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Checkout</span> <span class="string">Repository</span> <span class="string">source</span> <span class="string">branch</span></span><br><span class="line">        <span class="attr">uses:</span> <span class="string">actions/checkout@v2</span></span><br><span class="line">        <span class="attr">with:</span></span><br><span class="line">          <span class="attr">ref:</span> <span class="string">source</span></span><br><span class="line"></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Checkout</span> <span class="string">Deploy</span> <span class="string">Repo</span></span><br><span class="line">        <span class="attr">uses:</span> <span class="string">actions/checkout@v2</span></span><br><span class="line">        <span class="attr">with:</span></span><br><span class="line">          <span class="attr">repository:</span> <span class="string">$&#123;&#123;</span> <span class="string">env.DEPLOY_REPO</span> <span class="string">&#125;&#125;</span></span><br><span class="line">          <span class="attr">ref:</span> <span class="string">$&#123;&#123;</span> <span class="string">env.DEPLOY_BRANCH</span> <span class="string">&#125;&#125;</span></span><br><span class="line">          <span class="attr">path:</span> <span class="string">.deploy_git</span></span><br><span class="line">      </span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Checkout</span> <span class="string">Theme</span> <span class="string">Repo</span></span><br><span class="line">        <span class="attr">uses:</span> <span class="string">actions/checkout@v2</span></span><br><span class="line">        <span class="attr">with:</span></span><br><span class="line">          <span class="attr">repository:</span> <span class="string">$&#123;&#123;</span> <span class="string">env.THEME_REPO</span> <span class="string">&#125;&#125;</span></span><br><span class="line">          <span class="attr">ref:</span> <span class="string">$&#123;&#123;</span> <span class="string">env.THEME_BRANCH</span> <span class="string">&#125;&#125;</span></span><br><span class="line">          <span class="attr">path:</span> <span class="string">themes/indigo</span></span><br><span class="line"></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Setup</span> <span class="string">Node.js</span> <span class="string">$&#123;&#123;</span> <span class="string">matrix.node_version</span> <span class="string">&#125;&#125;</span></span><br><span class="line">        <span class="attr">uses:</span> <span class="string">actions/setup-node@v1</span></span><br><span class="line">        <span class="attr">with:</span></span><br><span class="line">          <span class="attr">node-version:</span> <span class="string">$&#123;&#123;</span> <span class="string">matrix.node_version</span> <span class="string">&#125;&#125;</span></span><br><span class="line">      </span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Setup</span> <span class="string">Deploy</span> <span class="string">Private</span> <span class="string">Key</span></span><br><span class="line">        <span class="attr">env:</span></span><br><span class="line">          <span class="attr">HEXO_DEPLOY_PRI:</span> <span class="string">$&#123;&#123;secrets.HEXO_DEPLOY_PRI&#125;&#125;</span></span><br><span class="line">        <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string">          mkdir -p ~/.ssh/</span></span><br><span class="line"><span class="string">          echo &quot;$HEXO_DEPLOY_PRI&quot; &gt; ~/.ssh/id_rsa</span></span><br><span class="line"><span class="string">          chmod 600 ~/.ssh/id_rsa</span></span><br><span class="line"><span class="string">          ssh-keyscan github.com &gt;&gt; ~/.ssh/known_hosts</span></span><br><span class="line"><span class="string"></span></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Setup</span> <span class="string">Git</span> <span class="string">Infomation</span></span><br><span class="line">        <span class="attr">run:</span> <span class="string">| </span></span><br><span class="line"><span class="string">          git config --global user.name $GIT_USER</span></span><br><span class="line"><span class="string">          git config --global user.email $GIT_EMAIL</span></span><br><span class="line"><span class="string"></span></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Setup</span> <span class="string">Hexo</span> <span class="string">Dependencies</span></span><br><span class="line">        <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string">          sudo timedatectl set-timezone $TZ</span></span><br><span class="line"><span class="string">          npm install hexo-cli -g</span></span><br><span class="line"><span class="string">          npm install</span></span><br><span class="line"><span class="string">          wget https://github.com/ivitan/ivitan.github.io/releases/download/Pin/generator.js -O ./node_modules/hexo-generator-index/lib/generator.js</span></span><br><span class="line"><span class="string"></span></span><br><span class="line">      <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Deploy</span> <span class="string">Hexo</span> <span class="string">blog</span></span><br><span class="line">        <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string">          hexo clean</span></span><br><span class="line"><span class="string">          hexo generate</span></span><br><span class="line"><span class="string">          hexo deploy</span></span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://ivitan.com/posts/HexoAction/</id>
    <link href="https://ivitan.com/posts/HexoAction/"/>
    <published>2020-12-11T16:30:30.000Z</published>
    <summary>
      <![CDATA[<p>利用 Github Action 自动部署 Hexo。</p>]]>
    </summary>
    <title>利用 Github Action 自动部署 Hexo</title>
    <updated>2026-05-10T08:21:05.108Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Coding" scheme="https://ivitan.com/categories/Coding/"/>
    <category term="Linux" scheme="https://ivitan.com/tags/Linux/"/>
    <category term="Termux" scheme="https://ivitan.com/tags/Termux/"/>
    <content>
      <![CDATA[<blockquote><p><a href="https://github.com/tsl0922/ttyd">ttyd</a> 是用于在 Web 上共享终端的简单命令行工具。</p></blockquote><span id="more"></span><h1 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h1><h2 id="Termux"><a href="#Termux" class="headerlink" title="Termux"></a>Termux</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">apt install ttyd -y</span><br></pre></td></tr></table></figure><h2 id="macOS"><a href="#macOS" class="headerlink" title="macOS"></a>macOS</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">brew install ttyd</span><br></pre></td></tr></table></figure><h1 id="使用"><a href="#使用" class="headerlink" title="使用"></a>使用</h1><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ttyd -p 8080 bash</span><br></pre></td></tr></table></figure><h2 id="密码登录"><a href="#密码登录" class="headerlink" title="密码登录"></a>密码登录</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo ttyd -p 8080 login</span><br></pre></td></tr></table></figure><p>即可在浏览器访问 <a href="http://ip:8080/">http://ip:8080</a></p>]]>
    </content>
    <id>https://ivitan.com/posts/TTYD/</id>
    <link href="https://ivitan.com/posts/TTYD/"/>
    <published>2020-11-29T22:45:57.000Z</published>
    <summary>
      <![CDATA[<blockquote>
<p><a href="https://github.com/tsl0922/ttyd">ttyd</a> 是用于在 Web 上共享终端的简单命令行工具。</p>
</blockquote>]]>
    </summary>
    <title>利用 ttyd 在 Web 上共享终端</title>
    <updated>2026-05-10T08:21:05.115Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Coding" scheme="https://ivitan.com/categories/Coding/"/>
    <category term="Linux" scheme="https://ivitan.com/tags/Linux/"/>
    <category term="Windows" scheme="https://ivitan.com/tags/Windows/"/>
    <content>
      <![CDATA[<p>个人常用 AAPT 查询 APK 信息命令</p><span id="more"></span><h1 id="AAPT-查询-APK-信息"><a href="#AAPT-查询-APK-信息" class="headerlink" title="AAPT 查询 APK 信息"></a>AAPT 查询 APK 信息</h1><h2 id="查看签名"><a href="#查看签名" class="headerlink" title="查看签名"></a>查看签名</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">keytool -printcert -jarfile app.apk</span><br></pre></td></tr></table></figure><h2 id="获取-apk-的详细信息"><a href="#获取-apk-的详细信息" class="headerlink" title="获取 apk 的详细信息"></a>获取 apk 的详细信息</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">aapt dump badging app-debug.apk</span><br></pre></td></tr></table></figure><h2 id="APK-MD5"><a href="#APK-MD5" class="headerlink" title="APK MD5"></a>APK MD5</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">certutil -hashfile apk.apk  MD5</span><br></pre></td></tr></table></figure><h2 id="查看-SHA1"><a href="#查看-SHA1" class="headerlink" title="查看 SHA1"></a>查看 SHA1</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">certutil -hashfile 文件名  SHA1 </span><br></pre></td></tr></table></figure><h2 id="查看-SHA256"><a href="#查看-SHA256" class="headerlink" title="查看 SHA256"></a>查看 SHA256</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">certutil -hashfile 文件名  SHA256</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://ivitan.com/posts/AAPT/</id>
    <link href="https://ivitan.com/posts/AAPT/"/>
    <published>2020-10-29T00:58:07.000Z</published>
    <summary>
      <![CDATA[<p>个人常用 AAPT 查询 APK 信息命令</p>]]>
    </summary>
    <title>AAPT 查询 APK 信息</title>
    <updated>2026-05-10T08:21:05.104Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Coding" scheme="https://ivitan.com/categories/Coding/"/>
    <category term="Linux" scheme="https://ivitan.com/tags/Linux/"/>
    <category term="Termux" scheme="https://ivitan.com/tags/Termux/"/>
    <content>
      <![CDATA[<p>解决 Hexo </p><blockquote><p>zsh:&#x2F;data&#x2F;data&#x2F;com.termux&#x2F;files&#x2F;usr&#x2F;bin&#x2F;hexo: bad interpreter: &#x2F;usr&#x2F;bin&#x2F;env:no such file or directory</p></blockquote><h2 id="方法"><a href="#方法" class="headerlink" title="方法"></a>方法</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">termux-fix-shebang /data/data/com.termux/files/usr/bin/hexo</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://ivitan.com/posts/Termux-Hexo/</id>
    <link href="https://ivitan.com/posts/Termux-Hexo/"/>
    <published>2020-09-09T09:31:50.000Z</published>
    <summary>
      <![CDATA[<p>解决 Hexo </p>
<blockquote>
<p>zsh:&#x2F;data&#x2F;data&#x2F;com.termux&#x2F;files&#x2F;usr&#x2F;bin&#x2F;hexo: bad interpreter: &#x2F;usr&]]>
    </summary>
    <title>解决 Termux 上 Hexo 无法运行</title>
    <updated>2026-05-10T08:21:05.115Z</updated>
  </entry>
  <entry>
    <author>
      <name>維坦</name>
    </author>
    <category term="Coding" scheme="https://ivitan.com/categories/Coding/"/>
    <category term="Linux" scheme="https://ivitan.com/tags/Linux/"/>
    <category term="RaspberryPi" scheme="https://ivitan.com/tags/RaspberryPi/"/>
    <content>
      <![CDATA[<p>重新拾起吃灰的 RaspberryPi 3B+ ，无显示器如何玩？</p><span id="more"></span><h1 id="烧录镜像"><a href="#烧录镜像" class="headerlink" title="烧录镜像"></a>烧录镜像</h1><p>官网下载镜像，并使用烧录工具烧录。</p><h1 id="设置"><a href="#设置" class="headerlink" title="设置"></a>设置</h1><h2 id="WiFi"><a href="#WiFi" class="headerlink" title="WiFi"></a>WiFi</h2><p>在 <code>boot</code> 中新建文件</p><figure class="highlight plaintext"><figcaption><span>wps_supplicant.conf</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">country=CN</span><br><span class="line">ctrl_interface=DIR=/var/run/wpa_supplicant</span><br><span class="line">update_config=1</span><br><span class="line"></span><br><span class="line">network=&#123;</span><br><span class="line">ssid=&quot;SSID_Name&quot;</span><br><span class="line">psk=&quot;password&quot;</span><br><span class="line">key_mgmt=WPA-PSK</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="SSH"><a href="#SSH" class="headerlink" title="SSH"></a>SSH</h2><p>在 <code>boot</code> 中新建名为 <code>ssh</code> 的无后缀的空白文件。</p><h1 id="开机获取-IP"><a href="#开机获取-IP" class="headerlink" title="开机获取 IP"></a>开机获取 IP</h1><p>开机后会自动连接预埋的 WiFI。然后就可以使用 Ping Tool 、Fing.app 或者到路由器后台查看树莓派的 IP 啦。然后就可以 SSH 连接树莓派。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">ssh pi@ip</span><br><span class="line">raspberry # 初始密码</span><br></pre></td></tr></table></figure><h1 id="系统相关配置"><a href="#系统相关配置" class="headerlink" title="系统相关配置"></a>系统相关配置</h1><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo raspi-config</span><br></pre></td></tr></table></figure><h2 id="开启-VNC"><a href="#开启-VNC" class="headerlink" title="开启 VNC"></a>开启 VNC</h2><p>选择：“5 Interfacing Options”</p><h2 id="固定-IP"><a href="#固定-IP" class="headerlink" title="固定 IP"></a>固定 IP</h2><figure class="highlight plaintext"><figcaption><span>/etc/dhcpcd.conf</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">interface wlan0</span><br><span class="line">static ip_address=10.1.1.22/24</span><br><span class="line">static routers=10.1.1.1</span><br></pre></td></tr></table></figure>]]>
    </content>
    <id>https://ivitan.com/posts/RaspberryReview/</id>
    <link href="https://ivitan.com/posts/RaspberryReview/"/>
    <published>2020-07-25T08:35:11.000Z</published>
    <summary>
      <![CDATA[<p>重新拾起吃灰的 RaspberryPi 3B+ ，无显示器如何玩？</p>]]>
    </summary>
    <title>RaspberryPi Review</title>
    <updated>2026-05-10T08:21:05.112Z</updated>
  </entry>
</feed>
