<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
<channel>
<atom:link href="https://blog.xp6.top/feed" rel="self" type="application/rss+xml"/>
<title>知行间</title>
<link>https://blog.xp6.top</link>
<description>A junior high school student</description>
<language>zh-CN</language>
<copyright>© ZXEB </copyright>
<pubDate>Sun, 03 May 2026 13:30:30 GMT</pubDate>
<generator>Mix Space CMS (https://github.com/mx-space)</generator>
<docs>https://mx-space.js.org</docs>
<image>
    <url>https://dl.xp6.top/view.php/dd18bd21e6f5495ff3313d9c110caa39.png</url>
    <title>知行间</title>
    <link>https://blog.xp6.top</link>
</image>
<item>
    <title>hexo 博客搭建教程</title>
    <link>https://blog.xp6.top/posts/云服务器/93</link>
    <pubDate>Sat, 02 May 2026 13:54:52 GMT</pubDate>
    <description>富文本内容，请前往原站查看</description>
    <content:encoded><![CDATA[
      <p>前往原站查看：<a href="https://blog.xp6.top/posts/云服务器/93">https://blog.xp6.top/posts/云服务器/93</a></p>
    ]]>
    </content:encoded>
  <guid isPermaLink="false">69f6022c62928d74cb533b39</guid>
  <category>posts</category>
<category>云服务器</category>
 </item>
  <item>
    <title>农历3.8小米解锁节</title>
    <link>https://blog.xp6.top/posts/刷机/92</link>
    <pubDate>Sun, 26 Apr 2026 03:23:16 GMT</pubDate>
    <description>农历3.8小米解锁节

前言：我我之前发过关于今年3.8小米解锁节的事情本来以为是最后一舞，没想到这</description>
    <content:encoded><![CDATA[
      <blockquote>该渲染由 marked 生成，可能存在排版问题，最佳体验请前往：<a href='https://blog.xp6.top/posts/刷机/92'>https://blog.xp6.top/posts/刷机/92</a></blockquote>
      <h1>农历3.8小米解锁节</h1>
<blockquote>
<p>前言：我我之前发过关于今年3.8小米解锁节的事情本来以为是最后一舞，没想到这次农历的3.8号大佬又带来了新的解锁方案，适配更多机器</p>
</blockquote>
<p>这次主要针对的机器是8e，8gen3和k70的8gen2</p>
<p>截止这篇文章发布前8e的教程已经免费公开，如要解锁我只推荐这个大佬的教程 <a href="https://www.coolapk.com/feed/71382801?s=OTMwOGU5ZjIxY2ZjYWZlZzY5ZWM4NTI3ega1612">点我查看</a></p>
<p>这次8e机器能解锁主要应该还是因为abl文件出来了</p>
<p>这里画个流程图可以看一下</p>
<pre class="mermaid">flowchart TD

A[手机启动 Boot] --> B[BootROM / 启动链]
B --> C[Bootloader ABL / LK]
C --> D[Fastboot 接口]

D --> E{BL 解锁校验机制}

E -->|正常路径| F[小米账号 + 解锁申请 + 等待时间锁]
F --> G[官方签名 Token 写入]
G --> H[Bootloader 状态 Unlocked]

E -->|异常路径 漏洞触发| I[底层权限校验缺陷]

I --> I1[绕过 fastboot 权限检查]
I1 --> I2[错误接受未授权指令]
I2 --> I3[修改 unlock flag]

I3 --> H

H --> J[允许刷机 Root 改系统]

%% ===== 漏洞本质 =====
subgraph P[漏洞原理]
P1[信任链校验不完整]
P2[fastboot / ABL 权限检查缺失]
P3[未验证解锁请求来源]
P4[导致非法写入 unlock 状态]
P5[本质 权限控制缺陷]
end

I --> P

%% ===== 影响范围 =====
subgraph S[可能受影响平台]
S1[Snapdragon 8 Gen 3 / 8 Elite 部分机型]
S2[Snapdragon 8 Gen 2 少量机型]
end

H -.-> S</pre><p></p>
<p>依旧世界就是个草台班子</p>
<p>高通和小米的bug同时出现造福用户</p>
<p>不过极客湾还说了些东西</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p>这个当个乐呵看就行了，因为也不知道这是真的假的（</p>
<p>现在解锁真的且解且珍惜</p>

      <p style='text-align: right'>
      <a href='https://blog.xp6.top/posts/刷机/92#comments'>看完了？说点什么呢</a>
      </p>
    ]]>
    </content:encoded>
  <guid isPermaLink="false">69ed852462928d74cb51a2a6</guid>
  <category>posts</category>
<category>刷机</category>
 </item>
  <item>
    <title>mix space 前端+后端教程-4.19</title>
    <link>https://blog.xp6.top/posts/云服务器/91</link>
    <pubDate>Sun, 19 Apr 2026 02:17:03 GMT</pubDate>
    <description>mix space 前端+后端教程-4.19

其实我之前写过这个mix space的教程，但是那一</description>
    <content:encoded><![CDATA[
      <blockquote>该渲染由 marked 生成，可能存在排版问题，最佳体验请前往：<a href='https://blog.xp6.top/posts/云服务器/91'>https://blog.xp6.top/posts/云服务器/91</a></blockquote>
      <h1>mix space 前端+后端教程-4.19</h1>
<blockquote>
<p>其实我之前写过这个mix space的教程，但是那一版当时写的有些草率所以现在来重新写一下</p>
<p>建议看完一遍再开始操作</p>
</blockquote>
<h2>准备：</h2>
<p>1.一个脑子</p>
<p>2.一台linux服务器，服务器内存不小于2g</p>
<p>我这里演示系统用的是ubuntu 24</p>
<h2>正文：</h2>
<h3>环境配置：</h3>
<p>1.先在服务器里安装好宝塔面板，然后配置好docker和nginx环境</p>
<p>2.刷新系统包缓存与安装常用/必备软件包</p>
<pre><code class="language-markup">apt update && apt install git curl vim wget git-lfs -y</code></pre><p>3.Ubuntu 安装依赖环境</p>
<pre><code class="language-markup">sudo apt update && sudo apt install git curl vim wget git-lfs -y</code></pre><p>4.安装依赖环境</p>
<p>依次运行下面两个指令</p>
<pre><code class="language-markup">sudo su</code></pre><pre><code class="language-markup">npm install -g pnpm pm2</code></pre><p>如果第二个指令下载过慢可以使用这个指令切换镜像源 </p>
<pre><code class="language-markup">npm config set registry http://mirrors.cloud.tencent.com/npm/</code></pre><p>5.安装 NVM</p>
<pre><code class="language-markup">curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash</code></pre><p>6.运行 source ~/.profile 命令将环境变量重新加载到当前会话中。</p>
<pre><code class="language-markup">source ~/.profile</code></pre><p>7.列出 Node.JS 的可用版本。</p>
<pre><code class="language-markup">nvm ls-remote</code></pre><p>8.确定版本后，运行 nvm install <em>version</em> 命令下载并安装它。例如，安装 Node.JS 20.12.2 ， <strong>强烈推荐 V20.12.2 版本</strong></p>
<pre><code class="language-markup"># 安装nvm install 20.12.2# 检查版本node -v</code></pre><p>9.安装 pnpm pm2</p>
<pre><code class="language-markup">npm install -g pnpm pm2</code></pre><p>10.安装 sharp</p>
<pre><code class="language-markup">npm i -g sharppnpm add sharp

# 配置sharp环境变量
# vim ~/.bashrc
# 在底部加上
# export NEXT_SHARP_PATH=/root/node_modules/sharp</code></pre><h3>安装后端</h3>
<p>先创建个文件夹</p>
<pre><code class="language-markup">cd</code></pre><pre><code class="language-markup">mkdir -p mx-space/server</code></pre><pre><code class="language-markup">cd /root/mx-space/server</code></pre><p>然后wget一下两个文件</p>
<pre><code class="language-markup">wget https://fastly.jsdelivr.net/gh/mx-space/core@master/docker-compose.yml</code></pre><p>下载好后去编辑<code>docker compose </code>文件可使用<code>finalshell</code>，<code>宝塔在线文件管理</code>编辑文件</p>
<p>在 <code>environment</code> 字段填入对应内容，使其符合 yaml 语法，保存即可。</p>
<blockquote>
<p>如果你后续的主题是shiro记得把 <code>image: innei/mx-server:latest</code>改成<code>image: innei/mx-server:10</code> 因为shiro只适配到10.x版本</p>
</blockquote>
<ul>
<li><strong><code>JWT 密钥：JWT_SECRET</code></strong>：需要填写长度不小于 16 个字符，不大于 32 个字符的字符串，用于加密用户的 JWT，务必保存好自己的密钥，不要泄露给他人。</li>
<li><strong><code>被允许的域名：ALLOWED_ORIGINS</code></strong>：需要填写被允许的域名，通常是前端的域名，如果允许多个域名访问，用英文逗号，分隔。</li>
<li><strong><code>是否开启加密：ENCRYPT_ENABLE</code></strong>：如果你确定要开启加密，则在配置文件中加入对应内容，开启加密后，你需要在下方填写加密密钥。</li>
<li><strong><code>加密密钥：ENCRYPT_KEY</code></strong>：如果你不知道这是什么，那么不建议开启此功能，具体内容可参考 <a href="https://mx-space.js.org/docs/usage/security.html">Key 加密与安全性</a> 关于 JWT 密钥可以使用 <img src="https://www.toolhelper.cn/favicon.ico" alt="img" style="zoom: 33%;" /><a href="https://www.toolhelper.cn/DigestAlgorithm/MD5">MD5 转换</a>将你熟悉的文字加密作为 JWT 密钥 域名通常为前端域名：例如 <code>www.glsaone.xyz</code> , <code>glsaone.xyz</code>,localhost loacalhost 作为 前端Api 调用需填入</li>
</ul>
<p>在相关内容填写完毕记得保存</p>
<p>随后拉取最新的镜像</p>
<pre><code class="language-markup">sudo docker compose pull</code></pre><p>启动容器</p>
<pre><code class="language-markup">sudo docker compose up -d</code></pre><p></p>
<p>这样就代表容器启动成功了</p>
<p>接下来打开宝塔面板，到网站里配置反向代理,先自行解析一个域名到服务器里</p>
<p></p>
<p>就像这样设置反向代理到2333端口，后续记得打开2333端口作为后端</p>
<p>这里填写好后到上一个界面，点击配置文件修改里面的配置文件为以下内容</p>
<p></p>
<pre><code class="language-markup"> ## 反向代理开始
    ## WebSocket
    location /socket.io {
      proxy_pass http://127.0.0.1:2333/socket.io; 
      proxy_set_header Host $host; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header REMOTE-HOST $remote_addr; 
      proxy_set_header Upgrade $http_upgrade; 
      proxy_set_header Connection "upgrade"; 
      proxy_buffering off;
      proxy_http_version 1.1; 
      add_header Cache-Control no-cache; 
    }
    ## Others
    location / {
      proxy_pass http://127.0.0.1:2333; 
      proxy_set_header Host $host; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header REMOTE-HOST $remote_addr; 
      add_header X-Cache $upstream_cache_status; 
    }
    ## 反向代理结束</code></pre><p>这时你的域名加上/proxy/qaqdmin就可以访问后端了</p>
<p>像这样后端就搭建完成了，根据文字一直点击下一步即可</p>
<p></p>
<h3>安装前端</h3>
<p>进入到你服务器的ssh</p>
<p>先进入文件夹</p>
<pre><code class="language-markup">cd /root/mx-space</code></pre><p>创建文件夹</p>
<pre><code class="language-markup">mkdir shiro</code></pre><p>再运行以下两个指令wget文件（记得cd进去）</p>
<blockquote>
<p>shiro进入维护状态了，官方md文档中的两个wget都有问题所以我这里贴我自己的链接</p>
</blockquote>
<pre><code class="language-markup">wget -O docker-compose.yml  https://dl.xp6.top/down.php/da6c8f95728461dd73a8cb1aa6b27fb3.yml</code></pre><pre><code class="language-markup">wget -O .env  https://dl.xp6.top/down.php/f661b65565f853bd2e0cdfc8577c8350.env</code></pre><p>随后修改.env文件,多余的两行删掉即可</p>
<p></p>
<p>最后</p>
<pre><code class="language-markup">sudo docker compose pull</code></pre><pre><code class="language-markup">docker compose up -d</code></pre><p>启动前端即可</p>
<p>接下来去配置前端的反代，和上面的一样把端口改成2444就好了</p>
<p>配置文件改成这个</p>
<pre><code class="language-markup">location ~* \.(gif|png|jpg|css|js|woff|woff2)$ {
      proxy_pass http://127.0.0.1:2323;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header REMOTE-HOST $remote_addr;
      expires 30d;
    }
    location / {
      proxy_pass http://127.0.0.1:2323;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header REMOTE-HOST $remote_addr;
      add_header X-Cache $upstream_cache_status;
      add_header Cache-Control no-cache;
      proxy_intercept_errors on;
    }</code></pre><p>最后再去修改后端里的云函数</p>
<h3>在后台配置云函数</h3>
<p>进入 Mix Space 后台，进入「配置与云函数」页面，点击右上角的新增按钮，在编辑页面中，填入以下设置：</p>
<blockquote>
<p>请注意，这份配置你需要自行修改成符合你的需求的配置。直接使用下面的配置可能会导致你的博客无法按照你的预期运行。</p>
</blockquote>
<p>下面的配置可能不全，更多配置项的信息请移步配置项了解。</p>
<p>此外，配置也可写成 YAML 格式，此时数据类型应选择 <strong>YAML</strong></p>
<ul>
<li>名称：shiro</li>
<li>引用：theme</li>
<li>数据类型：JSON</li>
<li>数据：（点击下方的按钮复制）</li>
</ul>
<pre><code class="language-markup">{
  "footer": {
    "otherInfo": {
      "date": "2020-{{now}}",
      "icp": {
        "text": "萌 ICP 备 20236136 号",
        "link": "https://icp.gov.moe/?keyword=20236136"
      }
    },
    "linkSections": [
      {
        "name": "关于",
        "links": [
          {
            "name": "关于本站",
            "href": "/about-site"
          },
          {
            "name": "关于我",
            "href": "/about"
          },
          {
            "name": "关于此项目",
            "href": "https://github.com/innei/Shiro",
            "external": true
          }
        ]
      },
      {
        "name": "更多",
        "links": [
          {
            "name": "时间线",
            "href": "/timeline"
          },
          {
            "name": "友链",
            "href": "/friends"
          },
          {
            "name": "监控",
            "href": "https://status.innei.in/status/main",
            "external": true
          }
        ]
      },
      {
        "name": "联系",
        "links": [
          {
            "name": "写留言",
            "href": "/message"
          },
          {
            "name": "发邮件",
            "href": "mailto:i@innei.ren",
            "external": true
          },
          {
            "name": "GitHub",
            "href": "https://github.com/innei",
            "external": true
          }
        ]
      }
    ]
  },
  "config": {
    "color": {
      "light": [
        "#33A6B8",
        "#FF6666",
        "#26A69A",
        "#fb7287",
        "#69a6cc",
        "#F11A7B",
        "#78C1F3",
        "#FF6666",
        "#7ACDF6"
      ],
      "dark": [
        "#F596AA",
        "#A0A7D4",
        "#ff7b7b",
        "#99D8CF",
        "#838BC6",
        "#FFE5AD",
        "#9BE8D8",
        "#A1CCD1",
        "#EAAEBA"
      ]
    },

    "bg": [
      "https://github.com/Innei/static/blob/master/images/F0q8mwwaIAEtird.jpeg?raw=true",
      "https://github.com/Innei/static/blob/master/images/IMG_2111.jpeg.webp.jpg?raw=true"
    ],
    "custom": {
      "css": [],
      "styles": [],
      "js": [],
      "scripts": []
    },
    "site": {
      "favicon": "/innei.svg",
      "faviconDark": "/innei-dark.svg"
    },
    "hero": {
      "title": {
        "template": [
          {
            "type": "h1",
            "text": "Hi, I'm ",
            "class": "font-light text-4xl"
          },
          {
            "type": "h1",
            "text": "Innei",
            "class": "font-medium mx-2 text-4xl"
          },
          {
            "type": "h1",
            "text": "👋。",
            "class": "font-light text-4xl"
          },
          {
            "type": "br"
          },
          {
            "type": "h1",
            "text": "A NodeJS Full Stack ",
            "class": "font-light text-4xl"
          },
          {
            "type": "code",
            "text": "&lt;Developer /&gt;",
            "class": "font-medium mx-2 text-3xl rounded p-1 bg-gray-200 dark:bg-gray-800/0 hover:dark:bg-gray-800/100 bg-opacity-0 hover:bg-opacity-100 transition-background duration-200"
          },
          {
            "type": "span",
            "class": "inline-block w-[1px] h-8 -bottom-2 relative bg-gray-800/80 dark:bg-gray-200/80 opacity-0 group-hover:opacity-100 transition-opacity duration-200 group-hover:animation-blink"
          }
        ]
      },
      "description": "An independent developer coding with love."
    },
    "module": {
      "activity": {
        "enable": true,
        "endpoint": "/fn/ps/update"
      },
      "donate": {
        "enable": true,
        "link": "https://afdian.net/@Innei",
        "qrcode": [
          "https://cdn.jsdelivr.net/gh/Innei/img-bed@master/20191211132347.png",
          "https://cdn.innei.ren/bed/2023/0424213144.png"
        ]
      },
      "bilibili": {
        "liveId": 1434499
      }
    }
  }
}</code></pre><p>然后点击右上角的保存</p>
<p>现在你就可以访问你的前端了</p>
<p>可能你跟着教程走都会遇到些许问题玄学真的好多！！</p>
<p>前期的环境配置借鉴了了些<a href="https://www.glsaone.xyz/posts/guide/Mix-Space-Shiro">龙司的小窝</a>里的内容</p>

      <p style='text-align: right'>
      <a href='https://blog.xp6.top/posts/云服务器/91#comments'>看完了？说点什么呢</a>
      </p>
    ]]>
    </content:encoded>
  <guid isPermaLink="false">69e43b1f62928d74cb50f21e</guid>
  <category>posts</category>
<category>云服务器</category>
 </item>
  <item>
    <title>研学之旅</title>
    <link>https://blog.xp6.top/posts/生活/90</link>
    <pubDate>Sun, 19 Apr 2026 01:45:05 GMT</pubDate>
    <description>研学之旅

前言：其实我从头到尾都是很反感这次研学的，但是想着又不能不去那就干脆记录一下在以后看到之</description>
    <content:encoded><![CDATA[
      <blockquote>该渲染由 marked 生成，可能存在排版问题，最佳体验请前往：<a href='https://blog.xp6.top/posts/生活/90'>https://blog.xp6.top/posts/生活/90</a></blockquote>
      <h1>研学之旅</h1>
<blockquote>
<p>前言：其实我从头到尾都是很反感这次研学的，但是想着又不能不去那就干脆记录一下在以后看到之后还能有一段的回忆</p>
</blockquote>
<img src="https://dl.xp6.top/view.php/4320b6b69bde66474635a3c014f50de6.jpg" style="zoom:33%;" />

<p>我最反感的地方其实就是这里的环境</p>
<p>真的</p>
<p>真的</p>
<p>真的</p>
<p>很差劲 我都不知道这360到底花在哪里了 甚至一顿午饭35我也没看出来哪个东西是值得我花35的</p>
<p>先看看宿舍</p>
<p></p>
<p>要知道我们的住宿费是100一晚上啊，100一晚上就给我们住10人间？</p>
<p>然后就是食堂的饭菜</p>
<p></p>
<p>真的是清汤寡水的，然后鸡腿是没熟的</p>
<p>唉，坏处太多了懒得吐槽了，记录一下我们干了啥吧</p>
<h4>1.烤红薯</h4>
<p>第一天的下午我们就去烤红薯</p>
<p>由于action的色彩太寡淡了我稍微拉了下火焰的饱和度（传blog的都是降了清晰度的视频）</p>
<iframe src="https://dl.xp6.top/player.php?hash=955f63441d2b49d0958c8be4666644ef" width="800" height="500" scrolling="no" frameborder="0"></iframe>

<iframe src="https://dl.xp6.top/player.php?hash=adcded5ac96816a220848a9cda9247b3" width="800" height="500" scrolling="no" frameborder="0"></iframe>


<h4>2.木匠工艺</h4>
<iframe src="https://dl.xp6.top/player.php?hash=9ec46205e8fa1a02da9e4ec1d289aa0c" width="800" height="500" scrolling="no" frameborder="0"></iframe>



<p>然后就出现了一个·同学闲着没事干割了个格调</p>
<iframe src="https://dl.xp6.top/player.php?hash=fdf864300fba260920cf61de669c7767" width="800" height="500" scrolling="no" frameborder="0"></iframe>

  

<h4>3.石膏</h4>
<iframe src="https://dl.xp6.top/player.php?hash=f6df921bb5213042af92a0a1de95c1e8" width="800" height="500" scrolling="no" frameborder="0"></iframe>

<iframe src="https://dl.xp6.top/view.php/b392e18f8330579003395641cc8fd1a4.mp4" width="800" height="500" scrolling="no" frameborder="0"></iframe>

<h4>4.钓鱼</h4>
<p>其实这块地方根本钓不上来鱼，纯娱乐</p>
<iframe src="https://dl.xp6.top/player.php?hash=53bcc4ee7f304616ceb965e023fab47f" width="800" height="500" scrolling="no" frameborder="0"></iframe>


<p>还有两个神人把鱼竿给搞到一起了.....</p>
<iframe src="https://dl.xp6.top/player.php?hash=a2e56039a168b5c0919d88b25cc21112" width="800" height="500" scrolling="no" frameborder="0"></iframe>


<h4>5.划船</h4>
<iframe src="https://dl.xp6.top/player.php?hash=eff5ff3aaf4ad4d72952c4eb81983f86" width="800" height="500" scrolling="no" frameborder="0"></iframe>


<h4>6.种地</h4>
<iframe src="https://dl.xp6.top/player.php?hash=10ad3ee2f3c8b92107e19727225cfe33" width="800" height="500" scrolling="no" frameborder="0"></iframe>

<h4>6.烤香肠</h4>
<iframe src="https://dl.xp6.top/player.php?hash=b3ead68ceebf7859fd77fd20a0d79c19" width="800" height="500" scrolling="no" frameborder="0"></iframe>


<p>这些差不多就是研学的一些项目了，其实还有个表演，但是因为表演的时候带个相机不太方便所以这里就没视频了（而且很唐）</p>
<p>总的来说这次玩的还算开心吧，除了最后的闭营仪式</p>
<p>让我们在30度的太阳下站了一个小时</p>
<p>这篇文章也只为记录一下</p>

      <p style='text-align: right'>
      <a href='https://blog.xp6.top/posts/生活/90#comments'>看完了？说点什么呢</a>
      </p>
    ]]>
    </content:encoded>
  <guid isPermaLink="false">69e433a662928d74cb50ea84</guid>
  <category>posts</category>
<category>生活</category>
 </item>
  <item>
    <title>死了吗-为独居人士开发的app</title>
    <link>https://blog.xp6.top/posts/软件/89</link>
    <pubDate>Sun, 05 Apr 2026 14:18:46 GMT</pubDate>
    <description>死了吗-为独居人士开发的app

前段时间苹果的app store上上架了一个叫做“死了吗”的app</description>
    <content:encoded><![CDATA[
      <blockquote>该渲染由 marked 生成，可能存在排版问题，最佳体验请前往：<a href='https://blog.xp6.top/posts/软件/89'>https://blog.xp6.top/posts/软件/89</a></blockquote>
      <h1>死了吗-为独居人士开发的app</h1>
<blockquote>
<p>前段时间苹果的app store上上架了一个叫做“死了吗”的app，但是收费没记错的话好像是6块钱</p>
<p>最近openclaw挺火的就顺手做了一个安卓端的</p>
<p>由于是我+ai写的所以软件内有些细节问题没去弄不过大体功能是正常的</p>
</blockquote>
<h2>客户端效果</h2>
<p><img src="https://dl.xp6.top/view.php/70c4b85478a4f34fb95cdd52c4b971e0.jpg" style="zoom: 25%;" /> <img src="https://dl.xp6.top/view.php/1709ef3e931e052590e903919826fe88.jpg" style="zoom: 25%;" /></p>
<p> <img src="https://dl.xp6.top/view.php/9fdd5d3497f7cc2dd007d39e8e2e5598.jpg" style="zoom:25%;" /> <img src="https://dl.xp6.top/view.php/f5258ef85831d9e8925bdbcf2fcf6f87.jpg" style="zoom:25%;" /></p>
<h2>服务端+网页管理</h2>
<p></p>
<p></p>
<h2>特性</h2>
<p>1.可以选择自己部署后端也可以选择使用我的服务器作为后端</p>
<p>2.可以自由选择宽限时间</p>
<p>3.软件数据会同步上传云端就算本地软件删除也会进行超时提醒</p>
<p>4.每日中午12点提醒打卡</p>
<p>5.有后端可以查看用户的设置</p>
<p>6.后端可以自行部署stmp邮箱</p>
<h2>项目结构</h2>
<pre><code class="language-">SafeCheckIn-v1/
│
├── 📂 server/                          ← 后端 (Python FastAPI)
│   ├── main_final.py                   ← 主服务器程序 (47.7 KB)
│   ├── config.json                     ← SMTP 邮件配置
│   ├── requirements.txt                ← Python 依赖
│   ├── start.bat                       ← Windows 启动脚本
│   ├── start.sh                        ← Linux 启动脚本
│   └── venv/                           ← Python 虚拟环境
│
└── 📂 client/                          ← 前端 (Android Kotlin)
    ├── build.gradle.kts                ← 项目级构建配置
    ├── settings.gradle.kts             ← Gradle 设置
    ├── gradle.properties               ← Gradle 属性
    ├── gradlew.bat                     ← Gradle Wrapper
    ├── build.bat / build-debug.bat     ← 构建脚本
    ├── README.md / PROJECT.md          ← 文档
    │
    └── 📂 app/
        ├── build.gradle.kts            ← 应用构建配置
        │
        └── 📂 src/main/
            ├── AndroidManifest.xml     ← 应用清单
            │
            ├── 📂 java/com/safecheckin/app/
            │   ├── MainActivity.kt              ← 主 Activity
            │   ├── SafeCheckInApp.kt            ← Application 类
            │   │
            │   ├── 📂 data/                     ← 数据层
            │   │   ├── 📂 api/
            │   │   │   ├── ApiClient.kt         ← Retrofit 客户端
            │   │   │   └── SafeCheckInApi.kt    ← API 接口定义
            │   │   ├── 📂 cloud/
            │   │   │   └── CloudDataSource.kt   ← 云端数据源
            │   │   ├── 📂 local/
            │   │   │   └── LocalDataSource.kt   ← 本地 DataStore
            │   │   ├── 📂 model/
            │   │   │   └── Models.kt            ← 数据模型
            │   │   └── 📂 repository/
            │   │       ├── Repository.kt        ← 仓库接口
            │   │       └── CloudRepository.kt   ← 云端仓库实现
            │   │
            │   ├── 📂 service/                  ← Android 服务
            │   │   ├── BootReceiver.kt           ← 开机广播
            │   │   ├── CheckInService.kt        ← 签到服务
            │   │   ├── CheckInWorker.kt         ← WorkManager 后台任务
            │   │   └── CheckInNotificationService.kt  ← 通知服务
            │   │
            │   ├── 📂 ui/                       ← UI 层 (Jetpack Compose)
            │   │   ├── SafeCheckInApp.kt        ← Compose 导航入口
            │   │   ├── 📂 components/
            │   │   │   └── CheckInButton.kt    ← 自定义签到按钮
            │   │   ├── 📂 theme/
            │   │   │   ├── Color.kt            ← 颜色定义
            │   │   │   ├── Theme.kt            ← 主题
            │   │   │   └── Typography.kt       ← 字体
            │   │   └── 📂 screens/
            │   │       ├── 📂 auth/            ← 认证模块
            │   │       │   ├── LoginScreen.kt
            │   │       │   ├── RegisterScreen.kt
            │   │       │   ├── ForgotPasswordScreen.kt
            │   │       │   └── AuthViewModel.kt
            │   │       ├── 📂 home/            ← 首页
            │   │       │   ├── HomeScreen.kt
            │   │       │   └── HomeViewModel.kt
            │   │       ├── 📂 contacts/        ← 联系人
            │   │       │   ├── ContactsScreen.kt
            │   │       │   └── ContactsViewModel.kt
            │   │       ├── 📂 settings/        ← 设置
            │   │       │   ├── SettingsScreen.kt
            │   │       │   └── SettingsViewModel.kt
            │   │       └── 📂 about/           ← 关于
            │   │           └── AboutScreen.kt
            │   │
            │   └── 📂 utils/                   ← 工具类
            │       ├── TimeUtils.kt            ← 时间工具
            │       └── NotificationHelper.kt   ← 通知帮助
            │
            └── 📂 res/                         ← Android 资源
                ├── 📂 drawable/                ← 图标
                ├── 📂 mipmap-anydpi-v26/       ← 自适应图标
                ├── 📂 values/                  ← 颜色/字符串/主题
                └── 📂 xml/                    ← 备份/数据提取规则</code></pre><hr>
<h2>技术栈</h2>
<table>
<thead>
<tr>
<th></th>
<th>后端</th>
<th>前端</th>
</tr>
</thead>
<tbody><tr>
<td><strong>语言</strong></td>
<td>Python</td>
<td>Kotlin</td>
</tr>
<tr>
<td><strong>框架</strong></td>
<td>FastAPI 0.104.1</td>
<td>Jetpack Compose + Material 3</td>
</tr>
<tr>
<td><strong>架构</strong></td>
<td>单文件 RESTful API</td>
<td>MVVM</td>
</tr>
<tr>
<td><strong>数据库</strong></td>
<td>SQLite3</td>
<td>DataStore (本地)</td>
</tr>
<tr>
<td><strong>网络</strong></td>
<td>Uvicorn</td>
<td>Retrofit + OkHttp</td>
</tr>
<tr>
<td><strong>后台任务</strong></td>
<td>定时异步任务</td>
<td>WorkManager</td>
</tr>
</tbody></table>
<hr>
<h2>部署教程</h2>
<p>把<code>server</code>文件夹里的文件全部上传到服务器</p>
<p>随后给<code>start.sh</code>文件权限</p>
<pre><code class="language-">chmod -x start.sh</code></pre><p>给好权限后启动<code>start.sh</code></p>
<pre><code class="language-">./start.sh</code></pre><p>等待服务启动即可</p>
<p>开启端口8000和9090</p>
<p>8000端口为app对接服务器</p>
<p>9090为网页后端</p>
<p>如果需要更改端口可在<code>main_final.py</code>里更换端口（直接搜索8000或9090全部替换掉）</p>
<p>网页后端默认用户名<code>root</code>密码<code>123456</code>如需更换请修改<code>main_final.py</code>文件</p>
<p><strong>注意:未自带保活程序，请自行使用screen</strong></p>
<p>如果你是windows系统直接运行后端的<code>start.bat</code>即可</p>
<h2>关于软件端使用教程</h2>
<p>其实这一部分没啥好写的</p>
<p>如果你没有自己部署后端你可以使用我的服务器地址</p>
<p><code>http://38.14.249.174:8000</code></p>
<p>我的文件夹里有编译好的apk可以直接使用</p>
<p><a href="https://1drv.ms/u/c/2e46bb2fc2c89b24/IQAbOUvQ68xKQLmwRQb3VaxIAUAmhG2kYeexdZYukASQBk4?e=wAqa1N">点我下载</a><strong>onedrive链接请挂梯子下载</strong></p>

      <p style='text-align: right'>
      <a href='https://blog.xp6.top/posts/软件/89#comments'>看完了？说点什么呢</a>
      </p>
    ]]>
    </content:encoded>
  <guid isPermaLink="false">69d26f463e9b75f50ebc3b0a</guid>
  <category>posts</category>
<category>软件</category>
 </item>
  <item>
    <title>Linux一键清理脚本</title>
    <link>https://blog.xp6.top/posts/云服务器/88</link>
    <pubDate>Sat, 21 Mar 2026 01:36:33 GMT</pubDate>
    <description>Linux一键清理脚本

前言：最近在服务器上部署了openclaw后存储直接炸了，服务器只剩下6g</description>
    <content:encoded><![CDATA[
      <blockquote>该渲染由 marked 生成，可能存在排版问题，最佳体验请前往：<a href='https://blog.xp6.top/posts/云服务器/88'>https://blog.xp6.top/posts/云服务器/88</a></blockquote>
      <h1>Linux一键清理脚本</h1>
<blockquote>
<p>前言：最近在服务器上部署了openclaw后存储直接炸了，服务器只剩下6g的存储。本在都想重装了结果就发现了一个清理脚本</p>
</blockquote>
<h4>脚本功能概述</h4>
<p>这个系统盘清理脚本提供了全方位的清理功能：</p>
<ol>
<li><strong>基础清理</strong>：APT缓存、临时文件、缩略图缓存</li>
<li><strong>系统维护</strong>：旧内核移除、日志轮转</li>
<li><strong>应用清理</strong>：浏览器缓存、Snap旧版本、Docker无用数据</li>
<li><strong>空间分析</strong>：大文件查找、磁盘使用情况对比</li>
</ol>
<h4>注意</h4>
<p>使用脚本时需要给脚本root权限，如果不是root用户无法使用</p>
<p><a href="https://1drv.ms/f/c/2e46bb2fc2c89b24/IgDcqPN-kpRGQrHof2QSb9YFAV4m66juF4H6me3ZUSCxGhE?e=3JyNmm">点我跳转onedrve下载</a> 需要挂梯子</p>

      <p style='text-align: right'>
      <a href='https://blog.xp6.top/posts/云服务器/88#comments'>看完了？说点什么呢</a>
      </p>
    ]]>
    </content:encoded>
  <guid isPermaLink="false">69bdf6215392c3ded6ea54be</guid>
  <category>posts</category>
<category>云服务器</category>
 </item>
  <item>
    <title>3.8 小米解锁节</title>
    <link>https://blog.xp6.top/posts/刷机/87</link>
    <pubDate>Fri, 20 Mar 2026 11:12:21 GMT</pubDate>
    <description>3.8 小米解锁节

这篇文章来得有些迟了，主要因为上周出门回来一直没顾上写，现在抽空补上。

解锁</description>
    <content:encoded><![CDATA[
      <blockquote>该渲染由 marked 生成，可能存在排版问题，最佳体验请前往：<a href='https://blog.xp6.top/posts/刷机/87'>https://blog.xp6.top/posts/刷机/87</a></blockquote>
      <h1>3.8 小米解锁节</h1>
<blockquote>
<p>这篇文章来得有些迟了，主要因为上周出门回来一直没顾上写，现在抽空补上。</p>
</blockquote>
<h3>解锁原理（部分机型已在最新 2 月补丁中修复）</h3>
<ol>
<li><p><strong>关闭 SELinux</strong><br>通过 fastboot 命令注入参数，将 SELinux 降级为宽容模式，从而获得系统分区的写入权限。</p>
</li>
<li><p><strong>植入恶意 EFI</strong><br>借助小米 <code>IMQSNative</code> 系统服务中未授权的调用接口，将未签名的解锁文件写入 <code>efisp</code> 分区。</p>
</li>
<li><p><strong>劫持引导</strong><br>重启后，高通的 ABL 在加载该分区时<strong>未对签名进行校验</strong>，直接执行了恶意代码，将底层的解锁标志位修改为“1”。</p>
</li>
</ol>
<p>这次解锁的突破口，实际上是小米和高通两边的漏洞同时发挥了作用。小米这边，系统服务暴露了过高权限；高通那边，则在 8 Gen 5 的 CPU 上新增了 ABL 分区。</p>
<p>不过，像 8 Elite 和 8 Gen 3 等部分 CPU 的机型，这次大概率还是无法解锁。</p>
<p>但临时 root 还是可以玩一玩的。</p>
<p>大致操作是手机或平板进入 fastboot 模式后，输入  </p>
<p><code>fastboot oem set-gpu-preemption 0 androidboot.selinux=permissive</code>  </p>
<p><code>fastboot continue</code>  </p>
<p>不出意外的话，此时系统已经处于宽容模式。  </p>
<p>接着，就可以通过一些指令为 Scene、Magisk 等软件提权了。</p>
<p>具体细节这里就不展开了，就写一篇文章，纪念一下这次漏洞带来的解锁机会。  </p>
<p>这也可能是小米root的最后一舞</p>

      <p style='text-align: right'>
      <a href='https://blog.xp6.top/posts/刷机/87#comments'>看完了？说点什么呢</a>
      </p>
    ]]>
    </content:encoded>
  <guid isPermaLink="false">69bd2b955392c3ded6ea470c</guid>
  <category>posts</category>
<category>刷机</category>
 </item>
  <item>
    <title>xiaomi ai取餐码 Starlsland</title>
    <link>https://blog.xp6.top/posts/软件/86</link>
    <pubDate>Fri, 06 Mar 2026 12:31:49 GMT</pubDate>
    <description>xiaomi ai取餐码 Starlsland

前言：看到oppo的ai取餐码有点眼馋，然后社区大</description>
    <content:encoded><![CDATA[
      <blockquote>该渲染由 marked 生成，可能存在排版问题，最佳体验请前往：<a href='https://blog.xp6.top/posts/软件/86'>https://blog.xp6.top/posts/软件/86</a></blockquote>
      <h1>xiaomi ai取餐码 Starlsland</h1>
<blockquote>
<p>前言：看到oppo的ai取餐码有点眼馋，然后社区大佬正好做了个软件可以实现ai取餐码，顺便发个文章水一下</p>
</blockquote>
<blockquote>
<p>注意：该软件可能在发布文章时可以使用后期可能会被修复</p>
</blockquote>
<p>先简单说一下这个软件是怎么实现上岛的</p>
<p>这个软件没有简单的去调用.300版本的 <code>Live Activities</code>上岛</p>
<p>它是调用了hyper3的一个bug可以实现系统级的上岛，但是具体支持的版本我不太清楚，所以这里我只能贴一张我当前手机的版本号，如果你有比我低或高的可以试试是否可以正常使用</p>
<img src="https://dl.xp6.top/view.php/714b4733347d643ed353f9ced520caaa.jpg" style="zoom:33%;" />

<p>本期文章的软件是在这个版本下正常运行的其他版本我不清楚</p>
<h3>正文：</h3>
<h4>激活shizuku与下载</h4>
<p>首先你要先使用你手机的adb激活shizuku</p>
<p>这个我就不赘述了网上都是教程，如果你连这个都不会那我不建议你继续操作</p>
<p>然后安装<code>Starlsland</code>软件</p>
<p><a href="https://pan.quark.cn/s/db306f01dfd8">点我下载（这里我贴的是作者给的链接如果失效请到作者主页找新的链接）</a>  <a href="https://www.bilibili.com/video/BV1xGABzzEK2/?vd_source=c1452b9806e52acf56fca29d2cb96758#reply292268296129">点我查看开发者视频</a></p>
<p>下载好软件后正常给权限即可</p>
<p>我这里主要讲的是提示词那一页</p>
<h4>提示词修改</h4>
<p>如果你平时的app都能被正常识别那你可以不看这一段</p>
<img src="https://dl.xp6.top/view.php/4a31e66791f30c9b89a70981d00788c0.jpg" style="zoom:33%;" />

<p>我在使用的时候发现我美团取餐码和快递的取件码无法被正常识别</p>
<p>然后我就修改了亿点提示词，大家可以复制使用</p>
<p>OCR Prompt</p>
<pre><code class="language-">提取图片中所有可见文字。

要求：
1. 保持原始语言、大小写、数字和换行格式。
2. 不要补全、猜测或修改任何文字。
3. 所有数字必须完整保留，包括：
   - 取餐码
   - 订单号
   - 金额
   - 数量
4. 如果同一数字出现多次，全部保留。
5. 不要省略短数字（1-6位数字通常是取餐码）。

只输出识别到的文本内容，不要解释。</code></pre><p>VLM Prompt</p>
<pre><code class="language-">你是一个外卖/茶饮订单截图信息提取助手。请从截图中提取以下字段，返回一个 JSON 对象：

pickupCode, storeName, brandName, orderAmount, itemCountNumber, itemCountUnit, extras

识别规则：

【取餐码识别规则】
1. pickupCode 是页面上最醒目的短码。
2. 常见格式：
   - 1~8位数字（028 / 56 / 101）
   - 字母+数字（A12 / B09）
   - 带符号（#056）
3. 即使标签写的是“订单号”或者“取件码”，只要是短码也属于 pickupCode。
4. 长订单号（通常10位以上纯数字）不是取餐码，应放入 extras.orderNumber。
5. 只要截图中出现疑似取餐码，必须填写 pickupCode。

【店铺与品牌】
storeName：
门店名称，仅保留门店名，去掉品牌前缀。

例如：
"瑞幸咖啡 万达店"
storeName = "万达店"

如果是取件码请参考如下
"金辉华府十号楼架空层2号丰巢柜"
storeNamo = "金辉华府十号楼架空层2号丰巢柜"

brandName：
品牌名称（如 瑞幸咖啡 / 喜茶 / 古茗 / 蜜雪冰城/丰巢）。
必须是页面明确展示的品牌。

不要把以下内容当品牌：
- 广告语
- 活动文案
- 人物角色名
- 邀请评价文字

如果没有明确品牌返回 null。

【金额】
orderAmount：
页面出现的订单金额字符串，例如：

¥18.00
￥12
¥25.50
如果没有显示金额就则强制输出"¥0"

【商品数量】

itemCountNumber：
商品数量整数，例如：

1
2
3

如果无法判断返回 1。

itemCountUnit：
商品单位，例如：

杯
件
份
个

如果没有单位返回 个。

【extras】

extras 为附加信息对象，可包含：

pickupCodeLabel
orderNumber

pickupCodeLabel：
页面标注的取餐码名称，例如：

取餐码
取餐号
取茶码
取茶号
订单号
取件码

如果页面没有明确标注：

饮品类 → 使用 "取茶码"
餐食类 → 使用 "取餐码"

orderNumber：
长订单号（10位以上数字）。

【无关截图】

如果截图不是订单页面：

{
"pickupCode":null,
"storeName":null,
"brandName":null,
"orderAmount":null,
"itemCountNumber":null,
"itemCountUnit":null,
"extras":{}
}

【重要规则】

1. 不要猜测截图不可见信息。
2. extras 没有信息时返回 {}。
3. 只返回 JSON。
4. 不输出 markdown、代码块或解释文字。
6. 即使只有 pickupCode 也必须返回 JSON。
7.如果 pickupCode 只有 1 位数字，在前面补 0 变成两位。
例如 9 → 09
8.如果识别出来的取件码/取餐码出来是6位以上的数字强制输出00</code></pre><p>输出Schema</p>
<pre><code class="language-">{"type":"object","additionalProperties":false,"required":["pickupCode","storeName","brandName","orderAmount","itemCountNumber","itemCountUnit","extras"],"properties":{"pickupCode":{"type":["string","null"],"description":"取餐码或取餐号或取件码"},"storeName":{"type":["string","null"],"description":"门店名称"},"brandName":{"type":["string","null"],"description":"品牌名称"},"orderAmount":{"type":["string","null"],"description":"订单金额"},"itemCountNumber":{"type":["integer","null"],"description":"商品数量"},"itemCountUnit":{"type":["string","null"],"description":"商品单位"},"extras":{"type":"object","additionalProperties":{"type":"string"},"description":"附加信息"}}}</code></pre><p>大致的说一下我改了些啥吧</p>
<p>在VLM Prompt里我为了正常识别快递的取件码，我写了一些东西</p>
<p>例如</p>
<p>在<code>pickupCodeLabel</code>里加入了取件码</p>
<p>还有在<code>orderAmount</code>里加入了如果没有识别到价格就强制输出¥0</p>
<p>因为这样才能在最后正常的输出，才能在岛上正常显示</p>
<p>然后就是让一位数的取餐码自动部位（比如取餐码是9 自动补位为09）因为好像如果是一位数软件无法正常显示岛会显示失败</p>
<p>还有个致命的问题</p>
<p>它只能正常显示最多6位数的 取件码/取餐码</p>
<p>为了不让整个软件残废我加了如果检测到 取件码/取件码为6位时强制输出00，这样至少还能够有个提醒的作用</p>
<p>如果这个提示词无法忙足你可以尝试自己去修改，曲线救国</p>
<h4>api的使用</h4>
<p>我这里用的api是 <a href="https://api.gpt.ge/">v-api</a>大家可以去找免费的</p>
<p>这里推荐使用以下模型</p>
<p>VLM模型-Qwen/Qwen3-VL-32B-Instruct </p>
<p>OCR模型-deepseek-ai/DeepSeek-OCR </p>
<p>LLM模型-deepseek-ai/DeepSeek-V3.2</p>
<p> 不建议使用思考模型，因为思考耗时太长可能超时</p>
<p>当然你也可以不用ocr模型，直接使用直连VLM模式，这样可以更省事</p>
<p>到这里也就差不多结束了，如果喜欢这个功能建议就不要更新系统了，因为已经有人把这个bug提交给小米了可能在未来的哪一次更新中就会修复这个bug</p>

      <p style='text-align: right'>
      <a href='https://blog.xp6.top/posts/软件/86#comments'>看完了？说点什么呢</a>
      </p>
    ]]>
    </content:encoded>
  <guid isPermaLink="false">69aac9355392c3ded6e48c37</guid>
  <category>posts</category>
<category>软件</category>
 </item>
  <item>
    <title>大疆action2使用体验</title>
    <link>https://blog.xp6.top/posts/生活/85</link>
    <pubDate>Thu, 26 Feb 2026 06:06:58 GMT</pubDate>
    <description>大疆action2使用体验

前言：这台运动相机其实我早就想买了。大概从去年开始，我就在纠结要不要入</description>
    <content:encoded><![CDATA[
      <blockquote>该渲染由 marked 生成，可能存在排版问题，最佳体验请前往：<a href='https://blog.xp6.top/posts/生活/85'>https://blog.xp6.top/posts/生活/85</a></blockquote>
      <h1>大疆action2使用体验</h1>
<blockquote>
<p>前言：这台运动相机其实我早就想买了。大概从去年开始，我就在纠结要不要入手，当时担心买回来会吃灰。不过后来想想，就算偶尔闲置，它或许也能帮我记录下一些手机无法记录的瞬间。</p>
</blockquote>
<h3>正文：</h3>
<p>这台相机是 2021 年发布的产品。放在今天来看，它的实际体验甚至可能还不如DJi osmo action 1 因为它确实存在不少缺点。</p>
<ul>
<li>发热量大</li>
<li>机身小，续航偏弱</li>
<li>……</li>
</ul>
<p>这两点，算是它刚发布时最明显的问题。</p>
<p>而放到现在来看，它还有一个比较致命的短板——夜景几乎没法看。</p>
<p>缺点说完了，接下来聊聊优点。</p>
<p>首先就是机身真的非常小巧。</p>
<p></p>
<p>我最喜欢的是它的磁吸设计，可以很“无感”地把相机挂在胸前，对于社恐（i 人）来说真的非常友好，不会太张扬，但又能记录当下。</p>
<p>至于续航差的问题，我自己的解决办法是：尽量不录制长时间视频。没电的时候就用前屏模块给主模块补电。</p>
<p></p>
<p>平时我基本都用 1080p 60 帧来录制。</p>
<p>这样做有两个好处：第一是更省电，第二是更节省存储空间。</p>
<p></p>
<p>这台相机最鸡肋的地方还是夜景。晚上开启防抖，画面会有明显抽动；不开防抖，画面又抖得难以接受。</p>
<p>不过在白天光线充足的情况下效果还是不错的。既然是运动相机，我觉得“拍到”往往比“拍好”更重要。能记录下来，本身就已经有意义了。</p>
<p>这里随便放一张用 Action2 拍的</p>
<p>有一次家里没人，我被困在外面，只好翻墙进去，当时顺手记录了一下。</p>
<p></p>
<p>到这里，这篇文章也差不多结束了。</p>
<p>希望以后能拿着这台相机，记录下更多生活里的瞬间，而不是让它安静地躺在抽屉里吃灰。</p>
<p>“有人说你可以不懂摄影，但一定要记录生活，你拍的不好没有关系，没有记录下来才是最可惜的一点，因为很多事情过后，你就不能凭空想象起来了，当按下快门的那一刻,时间就停在了这里，影像的意义在于把尽兴的瞬间变成一个永恒，当你回看的时候，回忆起当时的心情，它会让这段回忆变得更加具体，也更加鲜活一些。”——Tim</p>

      <p style='text-align: right'>
      <a href='https://blog.xp6.top/posts/生活/85#comments'>看完了？说点什么呢</a>
      </p>
    ]]>
    </content:encoded>
  <guid isPermaLink="false">699fe3025392c3ded6d6892c</guid>
  <category>posts</category>
<category>生活</category>
 </item>
  <item>
    <title>新年特刊_2026</title>
    <link>https://blog.xp6.top/posts/生活/84</link>
    <pubDate>Wed, 25 Feb 2026 04:04:20 GMT</pubDate>
    <description>新年特刊_2026

时间过得真的很快，转眼间寒假又要结束了。
我的 blog 也从 2024 年一</description>
    <content:encoded><![CDATA[
      <blockquote>该渲染由 marked 生成，可能存在排版问题，最佳体验请前往：<a href='https://blog.xp6.top/posts/生活/84'>https://blog.xp6.top/posts/生活/84</a></blockquote>
      <h1>新年特刊_2026</h1>
<p>时间过得真的很快，转眼间寒假又要结束了。
我的 blog 也从 2024 年一路写到了现在。</p>
<p>说实话，我的文笔并不算好，和很多人比起来有些普通，所以我常常对自己的文章不太满意。但仔细想想，写博客本身就是一件和自己对话的事情，它不一定非要多华丽，只要真实就够了</p>
<p>在新的 2026 年里，我给自己定了一个很明确的目标就是把Python学会 </p>
<p>这是我一直想学，却总是因为没有耐心而半途而废的东西。最近我也买了蚂蚁课堂的课程，希望既然已经为它付出了成本，就能逼自己认真一点，坚持下去。这一次，我不想再只是“想学”，而是真的学会</p>
<p>前段时间还入手了一台 DJI Osmo Action 2，虽然它是 2021 年的设备，但用来简单记录生活中的瞬间已经完全够用了。</p>
<p>或许以后在写 blog 的时候，也许可以配上自己拍的照片，而不只是冷冰冰的一段文字，让记录变得更有温度一点</p>
<p>除此之外，我也希望自己能更加热爱生活</p>
<p>去认真对待那些看似普通的日子，记录生活里的琐碎、趣事、甚至情绪。</p>
<p>也许多年以后回头看，这些点滴才是最珍贵的东西</p>
<p>2026 年，</p>
<p>希望自己慢一点焦虑，多一点行动,少一点空想，多一点坚持</p>

      <p style='text-align: right'>
      <a href='https://blog.xp6.top/posts/生活/84#comments'>看完了？说点什么呢</a>
      </p>
    ]]>
    </content:encoded>
  <guid isPermaLink="false">699e74c45392c3ded6d6795b</guid>
  <category>posts</category>
<category>生活</category>
 </item>
  
</channel>
</rss>