本发明专利技术公开了一种提取Android系统百度地图基站数据的方法,包括以下步骤:S1:访问百度地图保存基站文件;S2:解析文件,获取其中保存基站的数据;S3:逆解析基站信息;S4:地图展示基站数据;S5:地图展示完成,结束解析。本发明专利技术的有益效果如下:补充了百度地图基站数据的提取方案,使得数据的完整性得到补充;归纳百度地图访问基站的次数,直观展示用户到达地点的频率;提取的基站是基于百度地图导航定位产生,因此准确性得到保证。
【技术实现步骤摘要】
本专利技术涉及信息安全
,特别涉及一种提取Android系统百度地图基站数据的方法。
技术介绍
随着信息化技术的不断发展与进步,众所周知,Android设备已经成为人们生活中不可替代:不可或缺的一个工具。Android设备也因此得到飞速发展,现已不仅仅是通话工具那么简单,他依然成为生活的一部分,Android设备的各种各样的功能也层出不穷,覆盖了生活中的方方面面。但Android设备在获取丰富资源:处理大量数据的同时面临着被破坏的风险也越来越大,例如恢复出厂设置,误刷机:中病毒等情况均会造成手机数据丢失,因此还原Android设备的数据显得尤为重要。百度地图是在中国地区使用非常广泛的地图导航类应用,基于庞大的用户量,针对百度地图数据的恢复就更加具有普遍性的意义;目前比较成熟的是提取百度地图中包含的经纬度定位痕迹,但是针对百度地图中包含基站数据的提取却属于空白状态。
技术实现思路
本专利技术针对现有技术的缺陷,提供了一种提取Android系统百度地图基站数据的方法,能有效的解决上述现有技术存在的问题。一种提取Android系统百度地图基站数据的方法,包括以下步骤:S1:访问百度地图保存基站文件,步骤如下:S1.1:判断提取数据手机是否Root,记录布尔值类型标志F1;S1.1.1:判定系统中是否包含su文件,当不包含su文件时,直接判定F1为False,执行S5,当包含su文件时执行S1.1.2;S1.1.2:调用原生接口,开启PROCESS进程;S1.1.3:执行SHELL指令su,保存执行指令后的结果,当返回结果为0时,记录标志F1为True,否则记录为False;S1.1.4:判断F1的标志,当F1为True时执行操作S1.2,当F1为false时,代表操作系统没有root无法获取到数据区域的内容,结束解析,执行S5;S1.2:判定系统中是否存在百度地图应用,记录布尔值类型标志F2;S1.2.1:调用原生接口,开启PROCESS进程;S1.2.2:执行指令“ls/data/data/com.baidu.BaiduMap”,保存执行指令后的结果,当返回结果为包含“Nosuchfileordirectory”时代表百度地图应用不存在,记录F2为false,否则记录F2为true;S1.2.3:当F2为true时执行S1.3,当F2为false时,代表百度地图应用不存在,结束解析,执行S5;S1.3:访问保存基站数据的数据库文件;S1.3.1:调用原生接口,开启PROCESS进程;S1.3.2:对百度地图的files目录执行chmod命令,获取该目录的最高权限;S1.3.3:使用各自系统下面的文件获取api,获取该目录下面的所有的具体文件,记录为集合L1;S1.3.4:遍历L1,当遍历未结束时,记录遍历结果为R1,执行S1.3.5,当遍历结束,代表目标文件夹没有找到,结束解析,执行S5;S1.3.5:判断R1是文件夹还是文件,当是文件夹时执行S1.3.6,当是文件时执行S1.3.4;S1.3.6:获取R1的名称,记录为DirName1,将DirName1与字符串“ofld”做等值比较,当结果相等时执行S1.3.7,否者执行S1.3.4;S1.3.7:使用各自系统下面的文件获取api和DirName1文件夹下面的所有文件,记录为集合L2;S1.3.8:遍历L2,当遍历未结束时,记录遍历结果为R2并执行S1.3.9,当遍历结束时,代表目标文件没有找到,结束解析,执行S5;S1.3.9:判断R2是文件夹还是文件,当是文件时执行S1.3.10,当不是文件时执行S1.3.8;S1.3.10:获取R2的名称,记录为fileName1,将fileName1和字符串“ofl_statistics”做等值比较。当相等时执行S1.4,当不相等时执行S1.3.8;S1.4:对文件R2使用chmod指令,获取到文件的最高权限。S2:解析文件,获取其中保存基站的数据,步骤如下:S2.1:创建基站实体BS,包含MCC、MNC、LAC、CELLID、FREQ字段,同时创建保存基站的集合L2;S2.2:判定R2文件类型;S2.2.1:使用各自平台的api,判断R2文件的大小,当长度小于16字节时,代表该文件不为数据库文件,结束解析,执行S5,当大于16字节执行S2.2.2;S2.2.2:将R2文件使用流的方式读取R2的最开始的16个字节记录为filehead,将filehead依次与0X53,0X51,0X4C,0X69,0X74,0X65,0X20,0X66,0X6F,0X72,0X6D,0X61,0X74,0X20,0X33,0X00这16个字节做等值比较;当完全相同时执行S2.3,当不完全相同时,代表该文件不为数据库文件,结束解析,执行S5;S2.3:读取数据库文件;S2.3.1:使用各自平台的api,加载数据库文件R2,当加载成功时,执行S2.3.2,当加载失败时,代表数据库无法加载,结束解析,执行S5;S2.3.2:使用sql语句“SELECTnameFROMsqlite_masterWHEREtype='table'ORDERBYname”获取该数据库的所有表名的游标,记录为C1;S2.3.3:循环解析C1,当遍历未结束时,记录结果为R3,执行S2.3.4,当遍历结束时,保存基站数据的表不存在,结束解析,执行S5;S2.3.4:R3为游标的一行完整的数据,获取该行的第一列数据,记录为字符串tbName;S2.3.5:将tbName与字符串“CL”做等值比较,当相等时执行S2.4,当不相等时执行S2.3.3;S2.4:使用各自平台的api,解析表tbName,同时至少必须获取指定列名为“originid”,“frequency”;这两个列表分别代表基站数据和该基站访问的次数,记录结果为C2,C2是一个关于表tbName的游标;S2.4.1:循环遍历C2,当存在数据时记录结果为R3,执行S2.4.2,不存在数据时,代表解析结束,执行S3;S2.4.2:以字符串的形式获取R3的列名为“originid”的数据,记为data1,data1保存有基站信息,获取frequency数据,记为data2,data2是访问该基站的次数;S2.4.3:解析data1,获取基站数据;S2.4.3.1:使用“|”分割data1,结果记录为split_array数组;S2.4.3.2:判断split_array数组中含有多少个数据,记为len,当len的长度是4时执行S2.4.3.3,当长度不为4时执行S2.4.1;S2.4.3.3:split_array的第一个值记为mcc,split_array的第二个值记为mnc,split_array的第三个值记为lac,split_array的第四个值记为cid;S2.4.4:创建基站实体BS;S2.4.5:将BS的MCC设置为mcc,MNC设置为mnc,LAC设置lac,CELLID设置为cid,FREQ设置为data2;S2.4.6:将BS加入L2,并执行S2.4.1。S3:逆解析基站信息,步骤如下:S3.1:构建经纬度实体,实体应当包含经度、维度、坐标系、访问次数,分别是Lat,Lo本文档来自技高网...
【技术保护点】
一种提取Android系统百度地图基站数据的方法,其特征在于包括以下步骤:S1:访问百度地图保存基站文件,步骤如下:S1.1:判断提取数据手机是否Root,记录布尔值类型标志F1;S1.1.1:判定系统中是否包含su文件,当不包含su文件时,直接判定F1为False,执行S5,当包含su文件时执行S1.1.2;S1.1.2:调用原生接口,开启PROCESS进程;S1.1.3:执行SHELL指令su,保存执行指令后的结果,当返回结果为0时,记录标志F1为True,否则记录为False;S1.1.4:判断F1的标志,当F1为True时执行操作S1.2,当F1为false时,代表操作系统没有root无法获取到数据区域的内容,结束解析,执行S5;S1.2:判定系统中是否存在百度地图应用,记录布尔值类型标志F2;S1.2.1:调用原生接口,开启PROCESS进程;S1.2.2:执行指令“ls/data/data/com.baidu.BaiduMap”,保存执行指令后的结果,当返回结果为包含“No such file or directory”时代表百度地图应用不存在,记录F2为false,否则记录F2为true;S1.2.3:当F2为true时执行S1.3,当F2为false时,代表百度地图应用不存在,结束解析,执行S5;S1.3:访问保存基站数据的数据库文件;S1.3.1:调用原生接口,开启PROCESS进程;S1.3.2:对百度地图的files目录执行chmod命令,获取该目录的最高权限;S1.3.3:使用各自系统下面的文件获取api,获取该目录下面的所有的具体文件,记录为集合L1;S1.3.4:遍历L1,当遍历未结束时,记录遍历结果为R1,执行S1.3.5,当遍历结束,代表目标文件夹没有找到,结束解析,执行S5;S1.3.5:判断R1是文件夹还是文件,当是文件夹时执行S1.3.6,当是文件时执行S1.3.4;S1.3.6:获取R1的名称,记录为DirName1,将DirName1与字符串“ofld”做等值比较,当结果相等时执行S1.3.7,否者执行S1.3.4;S1.3.7:使用各自系统下面的文件获取api和DirName1文件夹下面的所有文件,记录为集合L2;S1.3.8:遍历L2,当遍历未结束时,记录遍历结果为R2并执行S1.3.9,当遍历结束时,代表目标文件没有找到,结束解析,执行S5;S1.3.9:判断R2是文件夹还是文件,当是文件时执行S1.3.10,当不是文件时执行S1.3.8;S1.3.10:获取R2的名称,记录为fileName1,将fileName1和字符串“ofl_statistics”做等值比较,当相等时执行S1.4,当不相等时执行S1.3.8;S1.4:对文件R2使用chmod指令,获取到文件的最高权限;S2:解析文件,获取其中保存基站的数据,步骤如下:S2.1:创建基站实体BS,包含MCC、MNC、LAC、CELLID、FREQ字段,同时创建保存基站的集合L2;S2.2:判定R2文件类型;S2.2.1:使用各自平台的api,判断R2文件的大小,当长度小于16字节时,代表该文件不为数据库文件,结束解析,执行S5,当大于16字节执行S2.2.2;S2.2.2:将R2文件使用流的方式读取R2的最开始的16个字节记录为filehead,将filehead依次与0X53,0X51,0X4C,0X69,0X74,0X65,0X20,0X66,0X6F,0X72,0X6D,0X61,0X74,0X20,0X33,0X00这16个字节做等值比较;当完全相同时执行S2.3,当不完全相同时,代表该文件不为数据库文件,结束解析,执行S5;S2.3:读取数据库文件;S2.3.1:使用各自平台的api,加载数据库文件R2,当加载成功时,执行S2.3.2,当加载失败时,代表数据库无法加载,结束解析,执行S5;S2.3.2:使用sql语句“SELECT name FROM sqlite_master WHEREtype='table'ORDER BY name”获取该数据库的所有表名的游标,记录为C1;S2.3.3:循环解析C1,当遍历未结束时,记录结果为R3,执行S2.3.4,当遍历结束时,保存基站数据的表不存在,结束解析,执行S5;S2.3.4:R3为游标的一行完整的数据,获取该行的第一列数据,记录为字符串tbName;S2.3.5:将tbName与字符串“CL”做等值比较,当相等时执行S2.4,当不相等时执行S2.3.3;S2.4:使用各自平台的api,解析表tbName,同时至少必须获取指定列名为“originid”,“frequency”;这两个列表分别代表基站数据和该基站访问的次数,记录结果为C2,C2是一个关于表tbNa...
【技术特征摘要】
1.一种提取Android系统百度地图基站数据的方法,其特征在于包括以下步骤:S1:访问百度地图保存基站文件,步骤如下:S1.1:判断提取数据手机是否Root,记录布尔值类型标志F1;S1.1.1:判定系统中是否包含su文件,当不包含su文件时,直接判定F1为False,执行S5,当包含su文件时执行S1.1.2;S1.1.2:调用原生接口,开启PROCESS进程;S1.1.3:执行SHELL指令su,保存执行指令后的结果,当返回结果为0时,记录标志F1为True,否则记录为False;S1.1.4:判断F1的标志,当F1为True时执行操作S1.2,当F1为false时,代表操作系统没有root无法获取到数据区域的内容,结束解析,执行S5;S1.2:判定系统中是否存在百度地图应用,记录布尔值类型标志F2;S1.2.1:调用原生接口,开启PROCESS进程;S1.2.2:执行指令“ls/data/data/com.baidu.BaiduMap”,保存执行指令后的结果,当返回结果为包含“Nosuchfileordirectory”时代表百度地图应用不存在,记录F2为false,否则记录F2为true;S1.2.3:当F2为true时执行S1.3,当F2为false时,代表百度地图应用不存在,结束解析,执行S5;S1.3:访问保存基站数据的数据库文件;S1.3.1:调用原生接口,开启PROCESS进程;S1.3.2:对百度地图的files目录执行chmod命令,获取该目录的最高权限;S1.3.3:使用各自系统下面的文件获取api,获取该目录下面的所有的具体文件,记录为集合L1;S1.3.4:遍历L1,当遍历未结束时,记录遍历结果为R1,执行S1.3.5,当遍历结束,代表目标文件夹没有找到,结束解析,执行S5;S1.3.5:判断R1是文件夹还是文件,当是文件夹时执行S1.3.6,当是文件时执行S1.3.4;S1.3.6:获取R1的名称,记录为DirName1,将DirName1与字符串“ofld”做等值比较,当结果相等时执行S1.3.7,否者执行S1.3.4;S1.3.7:使用各自系统下面的文件获取api和DirName1文件夹下面的所有文件,记录为集合L2;S1.3.8:遍历L2,当遍历未结束时,记录遍历结果为R2并执行S1.3.9,当遍历结束时,代表目标文件没有找到,结束解析,执行S5;S1.3.9:判断R2是文件夹还是文件,当是文件时执行S1.3.10,当不是文件时执行S1.3.8;S1.3.10:获取R2的名称,记录为fileName1,将fileName1和字符串“ofl_statistics”做等值比较,当相等时执行S1.4,当不相等时执行S1.3.8;S1.4:对文件R2使用chmod指令,获取到文件的最高权限;S2:解析文件,获取其中保存基站的数据,步骤如下:S2.1:创建基站实体BS,包含MCC、MNC、LAC、CELLID、FREQ字段,同时创建保存基站的集合L2;S2.2:判定R2文件类型;S2.2.1:使用各自平台的api,判断R2文件的大小,当长度小于16字节时,代表该文件不为数据库文件,结束解析,执行S5,当大于16字节执行S2.2.2;S2.2.2:将R2文件使用流的方式读取R2的最开始的16个字节记录为filehead,将filehead依次与0X53,0X51,0X4C,0X69,0X74,0X65,0X20,0X66,0X6F,0X72,0X6D,0X61,0X74,0X20,0X33,0X00这16个字节做等值比较;当完全相同时执行S2.3,当不完全相同时,代表该文件不为数据库文件,结束解析,执行S5;S2.3:读取数据库文件;S2.3.1:使用各自平台的api,加载数据库文件R2,当加载成功时,执行S2.3.2,当加载失败时,代表数据库无法加载,结束解析,执行S5;S2.3.2:使用sql语句“SELECTnameFROMsqlite_masterWHEREtype='table'ORDERBYname”获取该数据库的所有表名的游标,记录为C1;S2.3.3:循环解析C1,当遍历未结束时...
【专利技术属性】
技术研发人员:黄旭,聂学良,
申请(专利权)人:四川秘无痕信息安全技术有限责任公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。