如何signal-desktop
导出邮件?
我想备份我的信件。
有可能吗?
是的,有可能。
只需将其保存在文件中<yourFilename>
:
sigBase="${HOME}/.config/Signal/";
key=$( /usr/bin/jq -r '."key"' ${sigBase}config.json );
db="${HOME}/.config/Signal/sql/db.sqlite";
clearTextMsgs="${sigBase}clearTextMsgs.csv";
/usr/bin/sqlcipher -list -noheader "$db" "PRAGMA key = \"x'"$key"'\";select json from messages;" > "$clearTextMsgs";
并通过调用它bash <yourFilename>
。或将其渲染为可执行文件chmod 700 <yourFilename>
并直接调用它:./<yourFilename>
该脚本使用sqlcipher
和jq
信号桌面的数据库密钥来打开,解密和提取所有JSON
格式的消息,并将其提取到clearTextMsgs.csv
信号桌面文件夹内~/.config/Signal
。
除了通过使用jq
(from ~/.config/Signal/config.json
)过滤JSON进行键提取之外,关键的部分还发生在这里:
sqlcipher -list -noheader <DB> <SQL>
其中<SQL>
包含PRAGMA key
定义和实际的SQL语句(SELECT json FROM messages;
)。
然后可以使用它jq
来访问消息备份中的任何键/值。
您必须安装sqlcipher
,jq
为此:
sudo apt install sqlcipher jq
笔记:
尽管这确实提取了所有消息,但我们需要指定all
信号桌面中的“ all messages actually loaded
”具有“ ”的含义。因此,为了提取每条消息,必须向上滑动活动联系人的滑块,然后信号桌面将加载以前不可用的消息(反复冲洗直到满意为止)。过去,您可能希望加载您的消息。这很快就变得乏味。记住要对所有联系人的历史记录都这样做。
话虽如此,备份您的消息历史记录在技术上是可行的,实际上,这是一项手动工作。解决此问题的方法可能是一项计划工作,可能每天备份一次所有最新消息。然后,这可能包含重复项,并且如果信号桌面已重新启动,则可能会丢失消息。
无论如何,如果要不时以编程方式搜索一次(不太远-阅读:可能要几个月)的历史记录,则此方法效果很好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句