Skip to content

Commit

Permalink
Merge branch 'master' of github.com:kooritea/fcmfix
Browse files Browse the repository at this point in the history
  • Loading branch information
kooritea committed Feb 18, 2022
2 parents 897a4b0 + ae02a08 commit 5af761d
Showing 1 changed file with 7 additions and 73 deletions.
80 changes: 7 additions & 73 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ fcmfix的主要目的就是为了让即使不在后台的app也能顺利接收

从0.4.0开始已经不再需要,感谢来自 @MinaMichita 的方法 [https://blog.minamigo.moe/archives/747](https://blog.minamigo.moe/archives/747)

miui13国内版 还是需要打开目标应用自启动权限中的允许系统唤醒权限

---

## Lsposed
Expand All @@ -36,6 +38,11 @@ fcmfix的主要目的就是为了让即使不在后台的app也能顺利接收

---

## SafetyNet 和 Widevine DRM等级
这个模块一般不会影响这两个检测,我的安卓11、miui12、magisk hide勾选gms、lsposed
安装了fcmfix之后能够通过SafetyNet检测且Widevine DRM等级为L1。
SafetyNet不通过请检查有没有科学上网

## 可能出现的问题

### 1、重启之后配置文件被复原
Expand All @@ -44,77 +51,4 @@ fcmfix的主要目的就是为了让即使不在后台的app也能顺利接收
### 2、遇到国内版锁屏后连接自动断开的问题请尝试使用针对国内版开发的版本
[https://blog.minamigo.moe/archives/747](https://blog.minamigo.moe/archives/747)

---

## 下面是手动找hook点的方法,从0.3.0版本开始不再需要手动反编译查找hook点了,但不排除会自动查找失败的情况,如果gms频繁崩溃或者gms状态中一直显示无服务,可以先手动找hook点检查或者请带上gms.apk发issues
## gms版本大于或等于150400-405802548则以下方法已经不适用,会找不到intent,新版本可以参考https://github.com/kooritea/fcmfix/issues/32#issuecomment-979728712
- 1. 确保xposed模块已经运行,如果存在/data/data/com.google.android.gms/shared_prefs/fcmfix_config.xml则证明模块已经成功运行,这是配置文件,之后都是编辑这个文件的内容。
- 2. 下载MT管理器等可以进行反编译的工具
- 3. 对/data/app/com.google.android.gms-/base.apk进行反编译(在MT管理器对apk文件选择查看,点击classes.dex使用Dex编辑器++打开,全选 -> 确认)
- 4. 搜索 "Previous alarms will stay active" ,路径: / ,搜索类型: 代码,按道理应该只有一个搜索结果,将搜到类名(一般是4个字母)填入配置文件的timer_class项中
- 5. 回到MT管理器点击刚才搜索到的类,看文件最上面第九行左右开始属性声明,`.field private final d:Landroid/content/Intent;`将这个私有属性类型是Intent的属性`d(按自己实际情况填)`填入配置文件的timer_intent_property
- 6. 寻找一个没有返回值,只有一个长整形参数的public方法,一般是第90行左右的`.method public final a(J)V`,认准这个`final``(J)``V`找这个方法,把方法名`a`填入配置文件的timer_settimeout_method
- 7. 继续查看刚在找到的这个timer_settimeout_method,这个方法往下几行的`iget-wide v0, p0, L[xxxx];->[f]:J`,这个xxxx是最开始的类名,这个f就是我们要找的属性名,将这个找到的属性名`f`填入配置文件的timer_next_time_property
- 8. 修改完上面的配置项,现在配置文件大概是这样的
```xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<long name="heartbeatInterval" value="117000" />
<string name="timer_intent_property">d</string>
<string name="timer_next_time_property">f</string>
<boolean name="enable" value="false" />
<string name="timer_settimeout_method">a</string>
<string name="timer_class">aazg</string>
<string name="gms_version">20.39.15 (120400-335085812)</string>
<boolean name="isInit" value="true" />
</map>

```
注: heartbeatInterval 设置为0的话则不固定心跳间隔时间,使用原本的自适应

- 9. 最后将配置文件的enable修改true,保存,重启手机

- 10. 一般来说gms更新改变的只有类名也就是timer_class


## 一些版本的配置文件

如果你不想自己找hook点的话可以看看下面哪个版本和你使用的版本一致,需要保证gms_version项和你手机上的配置文件一致,其他可以直接复制

```xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<long name="heartbeatInterval" value="0" />
<string name="timer_intent_property">d</string>
<string name="timer_next_time_property">f</string>
<boolean name="enable" value="true" />
<string name="timer_settimeout_method">c</string>
<string name="timer_class">acrp</string>
<string name="gms_version">21.18.16 (150400-374723149)</string>
<boolean name="isInit" value="true" />
</map>

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<long name="heartbeatInterval" value="0" />
<string name="timer_intent_property">d</string>
<string name="timer_next_time_property">f</string>
<boolean name="enable" value="true" />
<string name="timer_settimeout_method">c</string>
<string name="timer_class">adbc</string>
<string name="gms_version">21.21.16 (150400-378233385)</string>
<boolean name="isInit" value="true" />
</map>

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<long name="heartbeatInterval" value="0" />
<string name="timer_intent_property">d</string>
<string name="timer_next_time_property">f</string>
<boolean name="enable" value="true" />
<string name="timer_settimeout_method">c</string>
<string name="timer_class">adpi</string>
<string name="gms_version">21.24.18 (150400-383468479)</string>
<boolean name="isInit" value="true" />
</map>
```

0 comments on commit 5af761d

Please sign in to comment.