本帖最后由 laozhhaiJohn 于 2025-3-25 19:38 编辑
批处理修改群晖文件,让群晖NAS中文件按拼音排序
一、闲言碎语:
群晖文件排序的问题,已经忍了很久了。无论在桌面版 File Station 或者手机 DS File 查看文件,都是无法看明白的乱序。
不过,最近看了大佬 FlyingFizh 的文章:《解决群晖File Station文件列表中文拼音排序问题》
发现写的非常详细,即便是电脑新手,也能按照文章一步一步的完成修改。
我就是按照大佬的这篇文章,花了2个小时,解决了这个问题。
打开网页版群晖 File Station以及手机上 DS File 查看文件,都已经按照中文拼音、英文字母顺序排序了。感觉很良好。
二、两个难点:
大佬的文章很详细,其中有2个关键步骤可能是难点:
- 1、是libsynocore.so.7文件从群晖nas传入win11系统中,修改后再传回群晖nas中;
对于电脑不是很精通的初学者,有一定难度,特别是涉及nas的linux 和 win11 的系统文件互传,对于我这个从未接触过linux系统的人,花费了1个多小时才搞定,主要是用户和权限问题。
这个难点这次就不讨论了。
-
2、是修改libsynocore.so.7这个二进制文件。
大佬利用了IDApro软件对该文件进行了修改。
主要修改点是(以群晖系统7.0以上为例):
最终结果是修改2处:
地址 长度 原始字节数 修补字节数
00000000000193D9 0x2 BE B9 CC BE
00000000000252A9 0x2 2E 63 7A 68
三、写个批处理:
考虑到很多人,比如我,不习惯使用或者没有用过IDApro软件这个软件,上手修改也比较费时费力。
我根据大佬的修改,写了一个bat批处理文件,用这个批处理,一下子搞定补丁不用再下载idapro软件并进行学习使用了。
bat批处理内容如下:
@echo off
setlocal enabledelayedexpansion
set "org_FILE=libsynocore.so.7"
set "BackUP_FILE=libsynocore.so.7.bak"
:: 备份原文件
if not exist "%org_FILE%" (
echo 错误:文件 %org_FILE% 不存在!
exit /b 1
)
copy /Y "%org_FILE%" "%BackUP_FILE%"
:: 调用 PowerShell 执行二进制修补
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$bytes = [System.IO.File]::ReadAllBytes('%org_FILE%');" ^
"$bytes[0x193D9] = 0xCC; $bytes[0x193DA] = 0xBE;" ^
"$bytes[0x252A9] = 0x7A; $bytes[0x252AA] = 0x68;" ^
"[System.IO.File]::WriteAllBytes('%org_FILE%', $bytes);"
if %ERRORLEVEL% equ 0 (
echo 补丁成功应用!
) else (
echo 补丁失败,已恢复备份
copy /Y "%BackUP_FILE%" "%org_FILE%"
)
endlocal
pause
4、如何使用这个批处理?
新建一个文本文件,将上述代码拷贝粘贴进去,然后保存。(这里注意,保存的编码格式最好是ansi,否则有可能运行失败。)
再将文本文件的扩展名改为.bat。之后将libsynocore.so.7和批处理文件放在一个目录中,运行批处理即可。
原始的 libsynocore.so.7 文件的sha-1的值为:c04e4b8e56b7d7169c4cb1bb06ec3baf51aa655a
修改后 libsynocore.so.7 文件的sha-1的值为:a73fdcea1a376e96cf90c6333f5da15ac8e1e77e
请在修改前后校验比对该值。
[b]2025-03-25 19:27 补充:
我的系统版本:Version: 7.1.1-42962 Update 8
关于 libsynocore.so.7 文件,理论上,如果 sha-1的值 和我写在上面的一样的话,修改不会有错。
但我记得好像在原帖下有网友回复:如果备份 libsynocore.so.7 在nas原始目录,会导致“血的教训”。我不知道这是怎么回事儿。
我的操作是:彻底删除 nas上的此文件,然后将修改后的文件再传回nas原目录中。备份:放在win11系统中1份;nas中放在一个电影目录中1份。
对于看了我写的这个帖子,而导致一堆问题的网友,说声抱歉。
|