Android “original-package” 机制解析

问题

之前项目上遇到一个问题:手机系统从版本 A 通过 FOTA 升级到版本 B 后,系统源码中的输入法(LatinIME.apk,下面称 LatinIME)不见了!也就是设置中语言和输入法选项没有 Android Keyboard 这一项,并且设置中的应用选项中也找不到。

问题情况

先了解了一下两个版本的情况:版本 A 是只有 LatinIME 的;版本 B 中除了 LatinIME 还新预制了 GMS 中的输入法(LatinImeGoogle.apk, 下面称 LatinImeGoogle)。升级后版本 B 的 LatinIME 输入法不见了,只剩下 LatinImeGoogle 输入法。

初步分析

分析的大概步骤如下:

首先确定升级后版本 LatinIME 虽然是看不见了,但 apk 包依然存在并且此情况是必现的,所以不可能是 FOTA 升级的某些意外导致的。

同时已经确定的情况:

直接 download B 版本,两个 App 是同时存在的。
不管是 A 版本还是 B 版本通过 adb install 或 adb push 安装两个输入法应用,两个 App 都是同时存在的。
通过 pm list package 命令查看

版本 A 信息如下

package:/system/app/LatinImeGoogle.apk=com.google.android.inputmethod.latin
package:/system/app/LatinIME.apk=com.android.inputmethod.latin

版本 B 的信息如下

package:/system/app/LatinImeGoogle.apk=com.android.inputmethod.latin

版本 B 的输入法包名是变了的,而且是变成了 LatinIME 的包名了!

反编译应用,在 LatinImeGoogle 的 manifest 文件中发现有 orignial-package 属性:

<original-package android:name="co
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值