书接这位老哥的文章

他写博客的时候Soul还是用SQLite数据库存数据的,所以他找到数据库文件之后直接能用SQLite的客户端打开,我半年前看的时候根据评论区老哥所说已经换成Object-box数据库了,在objectbox目录下可以找到mdb文件,这个就是新的数据库文件。

要想打开这个文件,需要一些技巧,比SQLite麻烦多了。

整体思路就是先创建一个ObjectBox数据库的示例应用,然后利用反编译APK得到的数据库字段信息手动填到创建的示例应用里面,就能打开导出。

这是2021年年中的方法,如果新的Soul还是用Object-Box数据库的话,方法还是适用的。除非数据库像微信一样加密了,那还得想办法破解密码。

首先创建ObjectBox的示例应用

官方文档

最好看看那个视频,有了示例应用之后,就要创建Soul的消息实例对象了,这个实例的字段,还有那个default.json里面的ID都是从反编译的APK里面找到的。(根据视频,编译之后自动生成的代码中有个叫MyObjectBox的类,里面包含了字段和字段对应的ID)

然后在反编译出来的代码里面找字段名称和ID

忘了原来怎么找到的了。。。

先反编译,就网上搜APK反编译的文章,很多,我用的是dex-tools和jd-gui。

找着了,自动生成的代码里面,每个实体类会有一个Cursor类,例如object-box官方文档中的NoteCursor。

知道这点之后,在反编译出来的代码里面搜索“Cursor”关键词,就能找到对应的包,我半年前备份的APK里面,这个包在“cn/soulapp/imlib/database/”这个目录下面,我是用Android Studio搜的,用jd-gui或者其它源码查看的软件应该都行。

找到这个包之后,里面会有要找的“MyObjectBox类”,不过因为编译过了,所以类名不是MyObjectBox,要挨个看看是哪个。

查看和导出

找着那个包之后,就有Soul的实体类的字段名称和ID了,然后对照着object-box官方文档中的示例代码填好,把自己的mdb文件在数据库初始化的时候加载进去,利用object-box官方文档里面提供的查看数据库的办法在浏览器里面打开相应的网址,可以查看和导出成json。

附件

下面是我在官方的初始化类的基础上改的加载自己的数据库文件的代码。

package io.objectbox.example;import android.content.Context;
import android.util.Log;import io.objectbox.BoxStore;
import io.objectbox.BoxStoreBuilder;
import io.objectbox.android.AndroidObjectBrowser;
import io.objectbox.exception.FileCorruptException;public class ObjectBox {private static BoxStore boxStore;static void init(Context context) {BoxStoreBuilder storeBuilder = MyObjectBox.builder().initialDbFile(() -> {Log.i(App.TAG, "使用提供的数据文件");return context.getAssets().open("data.mdb");}).androidContext(context.getApplicationContext());try {boxStore = storeBuilder.build();} catch (FileCorruptException e) { // Demonstrate handling issues caused by devices with a broken file systemLog.w(App.TAG, "File corrupt, trying previous data snapshot...", e);// Retrying requires ObjectBox 2.7.1+storeBuilder.usePreviousCommit();boxStore = storeBuilder.build();}if (BuildConfig.DEBUG) {Log.d(App.TAG, String.format("Using ObjectBox %s (%s)",BoxStore.getVersion(), BoxStore.getVersionNative()));// Enable Data Browser on debug builds.// https://docs.objectbox.io/data-browsernew AndroidObjectBrowser(boxStore).start(context.getApplicationContext());}Log.i(App.TAG, "----------------------------------------");Log.i(App.TAG, "nativeStore" + boxStore.getNativeStore());for (Class<?> entityClass : boxStore.getAllEntityClasses()) {Log.i(App.TAG, entityClass.toString());}Log.i(App.TAG, "----------------------------------------");}public static BoxStore get() {return boxStore;}
}

有时间我再试试我的这套有没有过时。

Soul应用提取聊天记录【2021年中】相关推荐

  1. 2021年中寻找新SAP项目机会小记

    2021年中寻找新SAP项目机会小记 最近一段时间,笔者有在酝酿下一个SAP项目机会.在与相关业界同仁洽谈项目机会的过程中,笔者发现自己还是在犯一些低级错误,感觉自己还是太不够理性和成熟. 1,事情没 ...

  2. 用一个月面试了 大厂,中厂,小厂的总结|2021 年中总结

    推荐:两年前端程序媛从0到18k的逆袭之路 | 2021年中总结 image.png 求点赞+求分享+求评论,哦耶!!!(基本工资有一部分花在付费学习上) (文末有彩蛋...).一个朋友,面试的小哥, ...

  3. 2021年中国内燃机曲轴行业现状及竞争格局分析,高壁垒塑造曲轴行业高集中度,新能源汽车带动行业发展「图」

    一.曲轴综述 曲轴是内燃机的心脏.曲轴由碳素结构钢或球墨铸铁制成的,曲轴是内燃机五大核心零部件(缸体.缸盖.曲轴.连杆.凸轮轴)之一.在发动机工作过程中,曲轴与连杆配合,将燃料燃烧产生.作用在活塞上的 ...

  4. 2021年中质协六西格玛通过率年度总结

    讨教大学六西格玛学院2021年中质协考试成绩已经出炉, 有些小伙伴已经开始准备2022年中质协考试,相信大多数学员最关心的问题就是:绿带/黑带到底难不难?容不容易考过?通过率怎么样? 去年参加过202 ...

  5. 产业链图谱:2021年中国新能源汽车产业链图谱|产业链全景图

    中国新能源汽车产业始于21世纪初.2001年,新能源汽车研究项目被列入国家"十五"期间的"863"重大科技课题,并规划了以汽油车为起点,向氢动力车目标挺进的战略 ...

  6. 2021年中国新能源汽车产销及公共充电桩数量现状分析[图]

    一.充电桩产业链 充电桩产业链完整,从建设到运营涉及充电设备制造商.电力供应.场地供应以及第三方充电平台.产业链上游为元器件和设备生产商,主要负责提供各种充电桩元器件和充电设备:中游是充电站建设和运营 ...

  7. 【速览】2021年中国风电轴承行业发展现状分析:大功率风电轴承研发进程加快[图]

    一.概述:行业发展大致经历四个阶段 轴承是现代工业的基础零部件,被誉为机械装备的"关节",其主要功能是支撑旋转轴或其它运动体,引导转动或移动运动并承受由轴或轴上零件传递而来的载荷, ...

  8. 2021年中关村科技信贷和融资租赁支持资金申报条件及征集要求,补贴100万

    为进一步申报中关村企业开展信贷融资.发债融资.商票融资.融资租赁,切实降低中小微企业的融资成本,北京市科学技术委员会.中关村科技园区管理委员会现开展2021年度中关村科技信贷和融资租赁申报资金项目征集 ...

  9. 2021年中国新能源汽车行业发展现状及未来发展前景分析:产量达354.5万辆,销量达352.1万辆[图]

    一.概述 新能源汽车(NewEnergyVehicle,简称NEV)这个概念是中国自创的.它是相对于传统内燃机汽车而出现和存在的,最早于1960年出现,并随非传统内燃机汽车技术的发展,新能源汽车的内涵 ...

最新文章

  1. error LNK1112错误: 模块计算机类型“x64”与目标计算机类型“X86”冲突
  2. python数据动画_[转载]Maya使用Python获取动画每帧的rotation数据
  3. 如何玩转CSS列表样式?速查!
  4. 在画图软件中,可以画出不同大小或颜色的圆形、矩形等几何图形。几何图形之间有许多共同的特征,如它们可以是用某种颜色画出来的,可以是填充的或者不填充的。此外还有些不同的特征,比如,圆形都有半径,可以根据半
  5. 在cad如果用计算机,CAD如何使用快速计算器为中的变量区域功能
  6. 2019白金之星 第一次初赛 第一题 Polynomial
  7. LineageOS源码定制手机系统
  8. 16QAM-调制解调MATLAB
  9. 激光雷达:Ouster OS产品介绍及使用方法
  10. ICML 2021奖项公布!谷歌大脑摘得桂冠,田渊栋、陆昱成获荣誉提名!
  11. python3 中 sort 方法与 sorted 函数的使用
  12. linux tc 限速,TC限速
  13. Sue Shallow
  14. 麻雀虽小五脏俱全--一个小项目的总结
  15. java 2048思路_浅谈2048
  16. Pytorch搭建EfficientNet网络和Openmax
  17. 短线王的盯盘宝怎么样_股票盯盘系统app怎么样
  18. Predictive and Prescriptive Methods in Operations Research and Machine Learning: An Optimization App
  19. 惠普光影精灵拆机换屏幕_惠普光影精灵3换电池小记
  20. Sping Mvc 学习笔记(一)

热门文章

  1. CSDN的markdown不能正常生成lim符号怎么破?
  2. 高等数学(第七版)同济大学 习题9-8 个人解答
  3. Andriod底部导航栏图片和文字的切换
  4. 易语言获取网络文件正常
  5. 如何添加桌面便签?在桌面上添加便签的方法
  6. 哪一种Mac杀毒软件好用?这波安利绝对错不了
  7. [更新幻灯]1剔除“伪创新”和“无领域”的领域驱动设计
  8. 微信撤回消息服务器还有存底么,微信更新又来了,撤回消息大变化!还增加“查岗”功能......
  9. delphi 解析Json格式
  10. python交换两个变量的值(四种方法)