红米 Note 3 在 Lineage OS 上的指纹修复方法

这篇文章完成日期在:2017-02-08 22:00:08。
现在无需修复,包括 8.x (Oreo)、7.x (Nougat)、6.0 (Marshmallow、17 年 6 月后的版本)

指纹这玩意,其实我不怎么玩来着(甚至锁屏都没密码 2333)。在酷安发某文章的时候有个酷友提到了关于指纹的问题,于是就捣鼓了下指纹。

如果你是 FPC 用户,那你可以跳过这篇文章了(FPC 指纹妥妥滴用,这篇文章主要说的是 Goodix 指纹的修复方法)。
这里简单讲一下,红米 Note 3 有不同的批次,有不同的批次就有不同厂商的元件。指纹主要分两家: FPC 与 Goodix。小米在 Gi(a)t(y)hub 里有关红米 Note 3 的内核(Android L)代码中,对于 Goodix 的描述并不详细,所以开发者们很难通过这种方法来生成指纹所需要的驱动和相关文件。红米 Note 3 有了开发版的 Android 6.0 后,xda-developers 的大神们就开始着手修复 Android 6.0 以上的指纹问题。有一个临时解决方法,只需要补充 boot.img 和 System 有关 Goodix 的代码与文件即可。

请注意
1.这篇文章是在 Linux 的环境下进行操作得出的,Windows 下有相应的替代方法
2.此方法仅针对 Lineage OS,其它第三方系统请自测
3.所有操作都在 /home 目录下完成
4.该方法不稳定,会有指纹短暂性失效的 bug

提前准备

  • Lineage OS 刷机包
    下载地址:https://download.lineageos.org
  • 需要的 Goodix 文件
    Goodix 指纹的驱动、配置等
    下载地址:点我
  • boot.img
    这玩意就不多说了吧,从你下载的 Lineage OS 刷机包里面提取就可以了
  • mkbootimg
    Linux 下解包 boot.img 的常用工具,这里我推荐 xiaolu 的解包工具(下载点我
  • file_contexts 与 file_contexts.bin 的相互转换工具
    在 Android 7.x 中,解包 ramdisk 后的file_contexts.bin无法直接编辑,需要通过工具来进行转换,cofface 大神做了一个转换工具解决了这个问题
    下载地址:http://blog.cofface.com/archives/2255.html

注意:

  1. 下载 Lineage OS 的时候,请选择正确的机型 ( Xiaomi > kenzo )
  2. mkbootimg 的使用方法在这里做省略,Github 中的 readme.md 下有详细介绍。
  3. 转换工具必须要在 Linux 下进行操作。

第一步:解压刷机包、将缺失的文件替换进去

  1. 输入命令
    unzip 你下载的LineageOS刷机包.zip -d Lineage
    你会发现 /home 中多了个 Lineage 文件夹,这就是解压的刷机包文件,boot.img 也在里面
  2. 输入命令
    unzip Goodix.zip -d Goodix
    你又会发现 /home 中多了个 Goodix 文件夹,这就是需要补上去的指纹补丁
  3. 在文件管理器中直接将 Goodix 文件夹中的文件复制到 Lineage/system
    至此,补充完成

第二步:解开 boot.img,得到 ramdiskkernel

  1. 将 boot.img 复制到 /home,同时将工具也扔在这里
  2. 输入命令
    sudo sh mkboot boot.img output
    解开的 boot.img 将会在 output 文件夹中

第三步:转换 file_contexts.bin

输入命令
./sefcontext -o file_contexts file_contexts.bin
转换完成


第四步:补充 boot.img 中有关的缺失代码

  1. 打开 file_contexts,用搜索敲下 # Fingerprint
    这里是有关指纹的代码地方,你会发现这里只有 fpc1020 的有关描述,并没有 Goodix 的,下面我们把它添加到其中
    在下面直接添加
/dev/gf66xx-spi     u:object_r:gx_fpd_device:s0
/dev/ttyACM[0-9]*   u:object_r:gx_fpd_device:s0
/dev/goodix_fp*     u:object_r:gx_fpd_device:s0
/system/bin/gx_fpd       u:object_r:gx_fpd_exec:s0
/data/system/fingerprint(/.*)?    u:object_r:gx_fpd_data_file:s0
/data/goodix/*              u:object_r:gx_fpd_data_file:s0
/persist/data/gxfp(/.*)?      u:object_r:gx_fpd_data_file:s0
/persist/data/gxfp          u:object_r:gx_fpd_data_file:s0
/system/lib/libfpservice.so       u:object_r:gx_fpd_lib_file:s0
/system/lib/libfpalgorithm.so     u:object_r:gx_fpd_lib_file:s0
/system/lib/libfp_client.so       u:object_r:gx_fp_lib_file:s0
/system/lib/libfphal.so           u:object_r:gx_fpd_lib_file:s0
/system/lib/libfpnav.so           u:object_r:gx_fpd_lib_file:s0
/system/lib64/libfpservice.so     u:object_r:gx_fpd_lib_file:s0
/system/lib64/libfpalgorithm.so   u:object_r:gx_fpd_lib_file:s0
/system/lib64/libfp_client.so     u:object_r:gx_fp_lib_file:s0
/system/lib64/libfphal.so         u:object_r:gx_fpd_lib_file:s0
/system/lib64/libfpnav.so         u:object_r:gx_fpd_lib_file:s0
  1. 打开 init.qcom.rc,用搜索敲下 on fs
    在后面直接添加
chown system system  /dev/goodix_fp
chmod 0644 /dev/goodix_fp
  1. 在最后一行敲下
service gx_fpd /system/bin/gx_fpd
    class late_start
    user system
    group system
    disabled

on property:persist.sys.fp.sensor=goodix
    start gx_fpd
  1. 打开 init.qcom.sh,在最后一行敲下
if [ -d /sys/class/goodix_fp ]; then
    setprop persist.sys.fp.sensor goodix
else
    setprop persist.sys.fp.sensor fpc
fi

全部完成,保存退出


第五步:还原 file_contexts,重新打包 boot.img,打包刷机包

  1. 输入命令
    ./sefcontext_compile -o file_contexts.bin file_contexts
    转换完成
  2. 输入命令
    sudo sh mkboot output boot1.img
    boot.img 打包完成,名称为 boot1.img
  3. 将 boot1.img 重命名为 boot.img,并复制到解压的刷机包文件,替换掉原来的
  4. 输入命令
    zip -r lineage.zip Lineage
    打包完成

全部完成,刷进去试试看吧!


更新记录

2017/02/09 00:04 创建文章
2017/02/09 05:26 修改1
2018/02/13 16:28 修改2

暂无评论

发送评论 编辑评论

分享你的想法!评论时请如实在信息框填写个人信息
文明上网理性发言,请遵守相关法律法规,发表评论将会在站长审核通过后出现在评论列表中

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇