我使用复制品在我的主要三星S3手机上。Replicant是一个完全免费的Android发行版。一个后果是“完全自由”意味着某些功能无法正常工作,因为硬件需要非自由软件。我正在将我的主手机升级到Replicant 6的最新测试版。让GPS在Replicant/S3上工作并不难。我已经决定,我愿意在自由问题上为我的寻宝游戏爱好。我之前写过如何获得GPS将用于复制品4.0和复制品4.2上的GPS。当我升级到Wolfgang的Replicant 6版本早在2016年9月,我就花了一些时间研究如何让GPS工作。我做好了准备副本6上非免费固件的说明其中包括一节关于如何让GPS工作。不幸的是,这种方法要求您创建自己的图像,并可以访问构建树。这并不适合所有人。这篇文章解释了如何让GPS在复制6上工作,而无需构建自己的图像。沃尔夫冈已经解释过了如何将所有其他非免费固件添加到复制副本6但它不包括GPS。原因是GPS需要在主CPU上运行非自由软件。在继续之前,您应该了解这一点的后果!
第一步是下载Replicant 6.0映像,目前可以从replicant6.0论坛线程。下载replicant-6.0-i9300.zip文件
文件并像往常一样将其闪存到手机中。在加载其他非免费固件(Wifi、蓝牙等)后,使用“./firmwares.sh i9300 all”
你可能想要的。您可以安装Geocaching客户端c: 地理通过添加fdroidfdroid.cgeo.org
作为单独的存储库。启动应用程序并验证GPS是否不工作。保留replicant-6.0-i9300.zip文件,稍后您将需要它。
GPS的棘手之处在于,守护进程是通过Android的init系统启动的,该系统由文件指定/初始化目标.rc
。复制品附带注释掉的GPS部件。要修改这个文件,我们需要拿出我们的小工具箱。修改设备本身上的文件将不起作用,每次启动时都会从ramdisk文件中提取根文件系统。对文件所做的任何更改都不会持久。文件/初始化目标.rc
存储在引导.img
ramdisk,这是我们需要修改以进行持久修改的文件。
首先,我们需要解压缩引导
和mkbootimg(mkbootimg)
工具。如果你幸运的话,你可能会发现它们是为你的操作系统预先构建的。我正在使用Debian公司我很难找到他们。然而,从头开始构建它们并没有那么困难。假设您有一个正常的构建环境(即。,apt-get-install-build必备组件
)尝试以下方法来构建工具。我受到了关于解压缩和编辑boot.img的帖子了解以下一些说明。
git克隆https://github.com/CyanogenMod/android_system_core.git光盘安卓系统核心/git校验cm-13.0光盘mkbootimg/gcc-o/mkbootimg-我/包括/libmincrypt/*.c/mkbootimg.c文件gcc-o/unpackbootimg-我/包括/libmincrypt/*.c/解压缩引导.csudo cp mkbootimg解压缩bootimg/usr/local/bin/
您现在可以打开引导.img
文件。您将需要主目录中的复制ZIP文件。还下载我为初始化目标.rc
文件:https://gitlab.com/snippets/1639447。将修补程序另存为复制-6-gps-fix.diff
在您的主目录中。
mkdir目录cd t(光盘)解压缩~/replicant-6.0-i9300.zip解压缩引导-i/引导.imgmkdir公司/光盘cd/光盘/gzip-dc/boot.img-ramdisk.gz|cpio-imd补丁<~/replicant-6-gps-fix.diff
假设补丁应用正确(您应该看到如下输出“修补文件init.target.rc”
最后),您现在需要将ramdisk重新组装起来。
找到-名称。|LC_ALL=C排序|cpio-o-H newc-R根:根|gzip>/新boot.img-ramdisk.gz光盘。。mkbootimg—内核/引导.img-zImage\--光盘/新boot.img-ramdisk.gz\--第二/boot.img-秒\--cmdline“$(cat./boot.img-cmdline)”\--base“$(cat./boot.img-base)”\--页面大小“$(cat./boot.img-pagesize)”\--日期/引导.img-dt\--ramdisk_offset“$(cat./boot.img-ramdisk _offset)”\--second_offset“$(cat./boot.img-second_offset)”\--tags_offset“$(cat./boot.img-tags_offset)”\--输出/新boot.img
将手机重新启动到引导加载程序:
adb重新启动引导加载程序
然后将新的引导映像闪回到手机中:
heimdall flash--启动新BOOT.img
手机将重新启动。要最终完成任务,您需要非免费的GPS软件组件全球定位系统
,gps.exynos4.so公司
和gps.cer公司
在我使用复杂的方法之前sdat2img.py
从CyanogenMod 13.x存档中提取这些文件。幸运的是,世袭OS现在也提供包含相关文件的下载。您需要下载一些文件,提取它们,然后将它们加载到您的手机上。
wget公司https://mirrorbits.liangeos.org/full/i9300/20170125-liange-14.1-20170125-terial-i9300-signed.zipmkdir血统cd谱系解压缩/沿袭-14.1-20170125-terial-i9300-signed.zipadb根adb等待设备重新挂载文件系统adb推送系统/bin/glgps/system/bin/adb推送系统/lib/hw/gps.exynos4.vendor.so/system/lib/hw/gps.exynos4.soadb推送系统/bin/gps.cer/system/bin/
现在重启手机并启动c: 地理
它应该会找到一些卫星。祝贺 你!