iOS 健康 数据数据库分析

最近上迷于「一起来捉妖」,里面有一个孵蛋的功能。就是由一天走路的步数转化为孵蛋的进度。

由于走路的步数是来自于iOS的健康,所以就想着是否有办法可以博破解健康,来满足自己的虚荣心。

与修改微信的步数类似,目前市面上修改步数的方法都已经失效。我们需要一个更加给力的方法。

  1. 修改「一起来捉妖」检测步数的代码
  2. 修改iPhone步数的代码
  3. 物理增加步数

今天就先尝试修改iPhone的步数吧

1. 数据库

将手机越狱后,发现「健康」的数据储存在/private/var/mobile/Library/Health/

两个关联数据库healthdb.sqlitehealthdb_secure.sqlite

运动数据在healthdb_secure.hfd(加密的)

数据库结构

healthdb.sqlite 主要包含了健康的来源数据。

healthdb_secure.sqlite 主要包含了健康运动等数据,并且关联到一个healthdb.sqlite数据库。

查询步数

在了解数据库后,我们可以尝试去找到步数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT
quantity AS "STEPS",
DATETIME(samples.start_date + 978307200, 'unixepoch') AS "START DATE",
DATETIME(samples.END_DATE + 978307200, 'unixepoch') AS "END DATE",
samples.DATA_ID AS "SAMPLWES TABLE ID"
FROM
"main"."samples"
LEFT OUTER JOIN
"main"."quantity_samples"
ON samples.data_id = quantity_samples.data_id
WHERE
samples.data_type = 7
ORDER BY
samples.data_id DESC
LIMIT 100

而我们需要做的就是创建,或者修改已经有的步数,达到我们步数增长的目的。

3. 修改步数

连接手机,获取healthdb_secure.sqlite的数据库文件。

找到最近的步数相关的数据(在quantity_samples中)

1
SELECT *,rowid "NAVICAT_ROWID" FROM "main"."quantity_samples" LIMIT 0,100

修改步数的数据

保存后,上传到手机中。

等待一分钟后,打开健康的数据,就可以发现数据已经更新了。

4. 补充一句

「一起来捉妖」的步数对于的距离是 2800~3000 对于 2000 米,所以需要孵2000米的蛋,需要修改到2800左右。

以上

The Why·Liam·Blog by WhyLiam is licensed under a Creative Commons BY-NC-ND 4.0 International License.

WhyLiam创作并维护的Why·Liam·Blog采用创作共用保留署名-非商业-禁止演绎4.0国际许可证

本文首发于Why·Liam·Blog (https://blog.naaln.com),版权所有,侵权必究。

本文永久链接:https://blog.naaln.com/2019/05/crask-ios-health/