GPS开发、定位修改

修改于
AOSP
android7.1.1_r1
NMF26F
openjdk8.0
Mint-linux
nexus5x
原作者:https://blog.csdn.net/aggresss/article/details/54323034
指出文中错误(自己编译时候遇到的)并修正
固件共享出来是不可能的,谁知道我的固件里有没有后门,还是用源码自己编译的比较放心

新鲜的源码最好make -j8 看看能否编译通过

  1. 关于kernel 层

a.隐式函数问题:create_proc_entry 找不到改为 proc_create 编译通过
新建设备文件操作方法表 替换相关方法即可

static struct file_operations m_fops = {  .owner = THIS_MODULE,  // .open = vp_open,  // .release = vp_release, .read = vp_proc_read,  .write = vp_proc_write,
};
proc_create(VP_DEVICE_PROC_NAME, 0, NULL, &m_fops);

b.修改drivers/Makefile文件,添加一行:obj-$(CONFIG_HELLO) += vp/

obj-$(CONFIG_VP) += vp/

c.编译完成内核后会生成一个Image-gz-dtb替换源码中的即可
d.交叉编译环境用源码里面的即可(参考:https://www.jianshu.com/p/7c8f4bcb07bc)

  1. 第二步,修改HAL
    a.vp.c文件中缺少两个头文件
#include <string.h>
#include <stdlib.h>

b.


//LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
//改为
LOCAL_MODULE_PATH := hw
  1. 第四步,修改Framework
    a.路径错误

core/java/android/os/IVirtualPosition.aidl /

改为


core/java/android/os/IVirtualPositionService.aidl /

**此时注意
sepolicy 文件一定要修改 否则不能修改(7.1.1在system文件加下面)
一定要更新framework: make update-api 否则会报错

  1. 文中除新建文件外 请不要替换
  2. 进入 frameworks/base/services/core/jni 目录
    肯能不没有com_android_server_location_GpsLocationProvider.cpp文件
    (7.1.1)改为Gns什么的道理一样
    不要忘记导入头文件
#include "hardware/vp.h"
#include <fcntl.h>

此时马上成功了 md又出现了几个错误~!!!

a.VirtualPositionService: VirtualPosition JNI: failed to get vp stub module.

解决办法:
需要单独编译 这个模块mmm /hardxxx/libxxx/module/vp/
生成vp_deafult.so
(此时把app文件夹放入packages/apps/下 mmm编译app自动安装进系统)
然后make snod 重新生成system.img

b.open /dev/vp: Permission denied
解决办法:
在domain.te文件中添加
allow domain vp_device:chr_file rw_file_perms;

在untrusted_app.te文件中添加
allow untrusted_app virtualposition_service:service_manager find;

在system_app.te文件中添加
allow system_app virtualposition_service:service_manager find;

这个文件system/core/rootdir/ueventd.rc加入
/dev/vp 0666 root root

c.01-13 04:44:09.981 918-918/system_process E/LocSvc_afw: E/const GpsGeofencingInterface get_geofence_interface(), dlopen for libgeofence.so failed, error = dlopen failed: library “libloc_api_v02.so” not found

解决办法:(此so只对应nmf26f android N 不要乱用)
https://github.com/MoKee/android_vendor_lge_bullhead/blob/mkn-mr1/proprietary/lib/libloc_api_v02.so

https://github.com/mikalackis/proprietary_vendor_lge_bullhead/blob/NMF26F/vendor/lib64/libgeofence.so

此时源码已经改完!

欢迎指正
需要到 室外!室外!室外!测试

GPS开发、定位修改相关推荐

  1. gps服务器修改,怎么修改照片GPS信息?修改照片GPS定位方法

    GPS定位是一款便捷的地理位置显示,但是有时候我们并不想让图片显示出来,你知道怎么修改照片GPS信息的吗?接下来我们一起往下看看修改照片GPS定位方法吧. 方法步骤 1.运行"MagicEX ...

  2. 地图测量面积工具app_【第288期】GPS工具箱(GPS精准定位工具)

    影视猫(免费观影,自动播放)一起来看囧妈酷狗短酷--音乐卡点短视频制作神器 [一键卡点] 1.海量热门.经典.原创卡点曲目,丰富旋律任君自选: 2.多段视频.图片素材,帮你智能生成节奏大片,好听还好看 ...

  3. GPS+北斗定位借助Arduino的数值显示

    GPS+北斗定位借助Arduino的数值显示 一.前言 二.硬件要求 三.参数基础 四.原理剖析 五.使用方式 六.程序概要 七.成果展示 八.数据解析 九.总结 一.前言 较多的导航软件在生活中层出 ...

  4. 玩转GPS开发——持续更新

    GPS开发基本问题: 什么是GPS? GPS都有什么数据?如何获取这些数据? GPS对外有什么接口?其他模块如何使用GPS? GPS内部有什么流程? GPS架构部分? GPS代码流程部分? 定位数据如 ...

  5. matlab水声定位,基于水平投影的ROV水下GPS精确定位算法

    基于水平投影的ROV水下GPS精确定位算法 基于水平投影的ROV水下GPS精确定位算法 张颖军 付本国 刘光 (海军潜艇学院,山东青岛,266046) 摘 要 精确的水下定位是提高水下机器人(ROV) ...

  6. matlab rdk,rtklib_2.4.2_p3 gps导航定位算法,有最先进的rtk matlab 238万源代码下载- www.pudn.com...

    文件名称: rtklib_2.4.2_p3下载 收藏√  [ 5  4  3  2  1 ] 开发工具: C++ Builder 文件大小: 14970 KB 上传时间: 2014-07-20 下载次 ...

  7. Android附近基站+Wifi+IP+GPS多渠道定位方案

    wifi定位wiki:https://developers.google.com/maps/documentation/geolocation/intro 前言: 在移动客户端的开发中,地理位置定位是 ...

  8. android项目入门实践之GPS用户定位

    学习内容 Ø GPS的概念和用途 Ø LocationManager和LocationProvider Ø LocationListener 能力目标 Ø 掌握GPS的概念和用途 Ø 掌握如何利用DD ...

  9. oracle表结构修改回滚,87.Oracle数据库SQL开发之 修改表内存——数据库事务的提交和回滚...

    87.Oracle数据库SQL开发之 修改表内存--数据库事务的提交和回滚 数据库事务(transaction)就是一组SQL语句,这组SQL语句时一个逻辑工作单元. 要永久性的记录事务中SQL语句的 ...

  10. 基于嵌入式linux 的车载定位系统设计,基于嵌入式Linux的GPS车载定位导航系统设计...

    摘要: 随着汽车产业的迅速发展,GPS车载导航系统得到了越来越广泛的应用,已成为汽车上的重要配置,为用户提供便利.另一方面随着计算机技术.通信技术的迅猛发展,微型化和专业化成为发展的新趋势,嵌入式系统 ...

最新文章

  1. slim.flatten——将输入扁平化但保留batch_size,假设第一维是batch
  2. 查看本地文档的一些方法
  3. tomcat+SSH中遇到中文乱码的解决方法
  4. 剑三 计算机中丢失,剑网3指尖江湖:剑侠情缘中“丢失”的几年,竟在腾讯游戏被找到...
  5. php导出csv_原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
  6. Uncaught (in promise) DOMException 报错
  7. [Offer收割]编程练习赛12 题目1 : 歌德巴赫猜想
  8. pyqt之qprocess使用【详细教程】
  9. 高数篇(二)-- 傅里叶变换 VS 拉普拉斯变换
  10. 索隆:九山八海,无我不断者。
  11. 摄像头视频直播方案比较之方案二:乐橙云
  12. 如何用几何画板中绘制三角形内切圆
  13. 桌面文件夹不见了怎么恢复?4招教你找回消失的文件夹
  14. python3.8与pyinstaller_pyinstaller 3.5 在python 3.8 环境下出现不兼容的问题
  15. 除夕最绚丽3D烟花代码(html+音效)
  16. python写入pdf文件_Python用于NLP :处理文本和PDF文件
  17. 3.Hadoop3.x 项目测试
  18. 华为云之docker技术实现LNMP容器化—nginx配置文件
  19. 一只小蜜蜂...(递推求解)
  20. 百度推广一年多少钱,百度信息流广告投放一个月多少钱

热门文章

  1. ipd敏捷开发_融入华为IPD软件开发流程与敏捷开发实施java课程设计
  2. yytextview 复制_Swift iOS : YYText显示微博@文字的方法
  3. 计算机二级试题aoa,浙江省高校计算机二级AOA考试excel试题及解析
  4. 【视频编码格式】全面解析
  5. HashMap底层原理源码分析
  6. C++实现双向循环链表
  7. 新人Unity下载安装
  8. java数组动态长度_JAVA中如何动态改变数组长度 动态数组 arraycopy
  9. Hadoop虚拟机镜像
  10. 迷宫里抓神兽Java游戏_塞尔达传说荒野之息全神兽迷宫进入方法 四大神兽怎么打?_游侠网...