一种AndroidRIL系统及其构建方法

文档序号:6365785阅读:133来源:国知局
专利名称:一种Android RIL系统及其构建方法
技术领域
本发明属于智能手持终端操作系统领域,尤其涉及一种Android RH系统及其构
建方法。
背景技术
随着移动互联网技术的高速发展,手机、PDA 、平板电脑等智能手持终端普及度越来越高,广泛应用于通信交流、娱乐休闲、电子商务、工业制造、物流交通等领域。智能手持终端操作系统平台种类繁多,由谷歌牵头开发,开放手持式设备联盟提出的Android平台,因其开源性、开放性和可定制性等突出特点,自2008年初推出之日起就引起了国内外业界的广泛关注,现已在国内衍生出OPhone、LePhone等多个以Android平台为基础核心的智能手机操作系统平台。Android手机操作系统平台是一个架构良好的层次化软硬件平台,可以分为四层最上层为应用程序层,由操作系统厂商或者第三方开发人员提供多种功能的应用程序;第二层为应用框架层,提供应用程序运行的Java层框架及必要的基础服务等;第三层为系统运行库层,提供系统库和Android运行时库;最底层为Linux内核层,提供必要的操作系统内核驱动和硬件驱动。随着Android平台市场份额的不断攀升和应用领域的不断延伸,对Android平台进行安全防护的重要性愈发明显,目前已有部分商用安全软件能够完成短信防火墙、电话防火墙、事件监控等功能,这些功能的实现,需获取Android RILCRadio Interface Layer)系统的通信信令,并基于获取的信令进行分析和控制,但是由于这些应用程序基本上安装在应用程序层,很容易被绕行且不具备完备性。

发明内容
本发明解决的技术问题是提出一种具有完备性、普遍性的Android RIL系统及其构建方法。为解决上述技术问题本发明一种Android RIL系统,包括RIL-Java模块和RILD模块,在所述RIL-Java模块和RILD模块之间设置用于接收和处理RIL-Java模块、RILD模块发送的RIL信令的截取模块。—种上述Android RH系统的构建方法,以安装有Android系统的手持设备为实施客体,包括以下步骤
步骤一、在原生Android系统的RIL-Java模块与RILD模块之间建立RIL信令截取模
块;
(1-1) RILD模块由原始的rild迁移至rild-0 ;
(1-2)配置RIL信令截取模块为rild ;
步骤二、建立RIL-Java模块、RILD模块、RH信令截取模块三者之间的通信通道; (2-1)创建RIL-Java模块、RILD模块、RIL信令截取模块三者之间的通道;(2-2)建立RIL-Java模块、RILD模块、RH信令截取模块三者之间的通信。进一步地,本发明基于上述Android RIL系统的构建方法中,所述步骤(2_1)具体包括以下步骤
(2-1-1)配置SOCKET inner_rild的参数,并将SOCKETinner_rild的参数作为启动参数传递给RILD模块,RILD模块建立对SOCKETinner_rild的侦听,即RIL信令截取模块与RILD模块的通道SOCKET inner_rild建立;
(2-1-2) RIL信令截取模块接收启动脚本,所述启动脚本包括RIL-Java模块与RILD模块原始的通道SOCKET rild的参数,RIL信令截取模块依据启动脚本建立对SOCKET rild的侦听,即RIL-Java模块与RIL信令截取模块的通道SOCKET rild建立。进一步地,本发明基于上述Android RIL系统的构建方法中,所述步骤(2_2)具体包括以下步骤
(2-2-1) RIL-Java模块发起对SOCKET rild的连接请求,RIL信令截取模块响应RIL-Java模块建立SOCKET连接的请求,即RIL-Java模块与RIL信令截取模块之间的通信
建立;
(2-2-2)RIL信令截取模块发起对SOCKET inner_rild的连接请求,RILD模块响应RIL信令截取模块建立SOCKET连接的请求,即RIL信令截取模块与RILD模块之间的通信建立;(2-2-3) RIL信令截取模块建立对SOCKET rild和SOCKET inner_rild两个设备的侦听,设备上的数据读取将触发RIL信令截取模块的回调函数。一种基于上述Android RH系统的RIL信令截取方法,具体包括以下步骤
步骤A、RIL信令截取模块根据监听的回调函数判断触发设备的类型,若为SOCKET
rild,则执行步骤B ;若为SOCKET inner_rild,则执行步骤C ;
步骤B、当触发设备为SOCKET rild,则为RIL-Java模块向RIL信令截取模块发送信令,不做任何处理,直接将信令存储到SOCKET inner_rild中转发给RILD模块;
步骤C、当触发设备为SOCKET inner_rild,则为RILD模块向RIL信令截取模块发送信令,对该信令进行解析,并根据信令的类型进行处理,其中,所述信令的类型为新来电INC0MING_CALL、新短信 NEW_SMS_MESSAGE。本发明与现有技术相比,具有显者的优点(I)完备性在Android RIL系统中加入RIL信令截取模块后,所有的RIL信令都通过RIL信令截取模块转发或处理;(2)普适性RIL信令截取模块与原有Android RIL系统相对独立,无需改动且无需获得原有AndroidRIL系统的源代码,可适用于Android标准平台或任意基于Android标准平台的衍生平台;
(3)无法绕行=RIL-Java模块与RILD模块之间的通信信道,即RIL信令截取模块是RIL信令的必经之路;(4)用户感受透明终端用户几乎感觉不到RIL信令截取模块的存在。


下面结合附图和具体实施方式
对本发明作进一步详细的描述;
图I为原生Android RIL系统示意图
图2为加入RIL信令截取模块后Android RH系统示意图 图3为原生Android RH系统中,RIL-Java模块传递RIL信令给通信模块流程图 图4为原生Android RIL系统中,通信模块传递RIL信令给RIL-Java模块流程5为加入RIL信令截取模块后,RIL-Java模块传递RIL信令给通信模块流程图 图6为加入RIL信令截取模块后,通信模块传递RIL信令给RIL-Java模块流程图 图7为原生Android RIL系统中RIL-Java模块与RILD模块通过SOCKET交互示意图 图8为RIL-Java模块、RH信令截取模块和RILD模块通过SOCKET交互示意图。
具体实施例方式如图2、图5、图6所示,本发明一种Android RIL系统,包括RIL-Java模块10、RILD模块20和通信模块30,在所述RIL-Java模块10和RILD模块20之间设置用于接收和处理RIL-Java模块、RILD模块发送的RIL信令的截取模块40。—种上述Android RH系统的构建方法,以安装有Android系统的手持设备为实 施客体,包括以下步骤
步骤一、在原生Android RIL系统的RIL-Java模块与RILD模块之间建立RIL信令截取模块
(1-1) RILD模块由原始的rild迁移至rild-0 ;
(1-2)配置RIL信令截取模块为rild ;
步骤二、建立RIL-Java模块、RILD模块、RH信令截取模块三者之间的通信通道(2-1)创建RIL-Java模块、RILD模块、RH信令截取模块三者之间的通道(2-1-1)配置SOCKET inner_riId的参数,并将SOCKET inner_rild的参数作为启动参数传递给RILD模块,RILD模块建立对SOCKET inner_rild的侦听,即RIL信令截取模块与RILD模块的通道SOCKET inner_rild建立;
(2-1-2) RH信令截取模块接收启动脚本,所述启动脚本包括RIL-Java模块与RILD模块原始的通道SOCKET rild的参数,RIL信令截取模块依据启动脚本建立对SOCKET rild的侦听,即RIL-Java模块与RIL信令截取模块的通道SOCKET rild建立;
(2-2)建立RIL-Java模块、RILD模块、RH信令截取模块三者之间的通信(2-2-1) RIL-Java模块发起对SOCKET rild的连接请求,RIL信令截取模块响应RIL-Java模块建立SOCKET连接的请求,即RIL-Java模块与RIL信令截取模块之间的通信建立;
(2-2-2)RIL信令截取模块发起对SOCKET inner_rild的连接请求,RILD模块响应RIL信令截取模块建立SOCKET连接的请求,即RIL信令截取模块与RILD模块之间的通信建立;(2-2-3)RIL信令截取模块建立对SOCKET rild和SOCKET inner_rild两个设备的侦听,设备上的数据读取将触发RIL信令截取模块的回调函数。一种基于上述Android RH系统的RIL信令截取方法,具体包括以下步骤
步骤A、RIL信令截取模块根据监听的回调函数判断触发设备的类型,若为SOCKET
rild,则执行步骤B ;若为SOCKET inner_rild,则执行步骤C ;
步骤B、当触发设备为SOCKET rild,则为RIL-Java模块向RIL信令截取模块发送信令,不做任何处理,直接将信令存储到SOCKET inner_rild中转发给RILD模块;
步骤C、当触发设备为SOCKET inner_rild,则为RILD模块向RIL信令截取模块发送信令,对该信令进行解析,并根据信令的类型进行处理,其中,所述信令的类型为新来电INC0MING_CALL、新短信 NEW_SMS_MESSAGE。
如图I、图3、图4所示,原生Android RIL系统,其结构由RIL-Java模块10、RILD模块20及通信模块30三部分组成,其中,RIL-Java模块位于应用框架层,RILD模块位于系统运行库层,通信模块位于Linux内核层。RIL-Java模块直接与RILD模块进行通信,RILD模块直接与通信模块30进行通信。原生Android RH系统,RIL-Java模块与RILD模块通信的通道为SOCKET rild。RIL-Java模块传递RIL信令给RILD模块;RILD模块将RIL指令交由通信模块发出。如图7所示,原生的Android RIL系统中,其结构包括RIL-Java模块、RILD模块及通信模块,两者之间的通信通道为SOCK ET rild。如图8所示,所述的Android RIL系统,在RIL信令截取模块加入之后,其结构包括RIL-Java模块、RIL信令截取模块、RILD模块及通信模块,RILD模块与通信模块之间的通信关系不变,RIL-Java模块与RILD模块通过RIL信令截取模块进行通信。RIL-Java模块与RIL信令截取模块通信的通道为SOCKET rild ;RIL信令截取模块与RILD模块通信的通道为 SOCKET inner_rild。RIL信令截取模块基于但无需修改原生的Android RIL架构,RIL-Java模块与RILD模块之间所有的RIL信令都经由RIL信令截取模块,RH信令截取模块中实现RIL信令的传递和业务处理逻辑。RIL信令截取模块,在Android RIL系统中,承担如下两个功能1) RIL信令的中继。接收来自RIL-Java模块的RIL信令,将该信令传递给RILD模块,或者接收来自RILD模块的RIL信令,将该信令传递给RIL-Java模块;2)RIL信令的处理。接收来自RIL-Java模块或RILD模块的RIL信令,对RIL信令进行解析,依据预先制定的RIL信令处理策略判断是否需要处理及如何处理该信令。实施例I
使用RIL信令截取模块实现电话防火墙功能,禁止电话号码黑名单列表中的电话号码打入电话给实施例手持终端。具体的实施方式如下
步骤I,在原生Android RIL系统的RIL-Java模块与RILD模块之间建立RIL信令截取模块;
步骤 101, RILD 模块部署点由 /system/bin/rild 迁移至/system/bin/riId-O ;
步骤102,重命名RIL信令截取模块与RILD模块原名称一致,即rild ;
步骤103,部署RIL信令截取模块到RILD模块原部署点,即/system/bin/rild ;
步骤2,建立RIL-Java模块、RILD模块、RH信令截取模块三者之间的通信通道;
步骤201,配置SOCKET inner_rild的参数,并将SOCKET inner_rild的参数作为启动参数传递给RILD模块,RILD模块建立对SOCKET inner_rild的侦听,即RIL信令截取模块与RILD模块的通道SOCKET inner_rild建立;
步骤202,RH信令截取模块接收启动脚本,所述启动脚本包括RIL-Java模块与RILD模块原始的通道SOCKET rild的参数,RIL信令截取模块依据启动脚本建立对SOCKET rild的侦听,即RIL-Java模块与RIL信令截取模块的通道SOCKET rild建立;
步骤203,RIL-Java模块发起对SOCKET rild的连接请求,RH信令截取模块响应RIL-Java模块建立SOCKET连接的请求,即RIL-Java模块与RIL信令截取模块之间的通信建立;步骤204,RIL信令截取模块发起对SOCKET inner_rild的连接请求,RILD模块响应RIL信令截取模块建立SOCKET连接的请求,即RIL信令截取模块与RILD模块之间的通信建立;
步骤205,RIL信令截取模块监听SOCKET rild与SOCKET inner_rild两个设备的回调函数;任意对这两个设备的读写操作都会触发回调函数;
步骤3,利用RIL信令截取模块处理被截取的信令
步骤301,RIL信令截取模块回调函数被触发,对触发设备进行判断,如果为SOCKETrild,进入步骤302 ;
步骤302,触发设备为SOCKET rild,说明此时为RIL-Java向RIL信令截取模块发送信令,不做任何处理,直接将信令写入SOCKET inner_rild,转发给RILD模块;
步骤303,触发设备为SOCKET inner_rild,说明此时为RILD模块向RIL信令截取模块发送信令,对该信令进行解析,得到信令的类型,如果信令类型为有新来电INCOMING_CALL,那么执行步骤304,否则执行步骤305 ;
步骤304,此时有新来电,判断信令的主叫号码字段如果号码在黑名单列表中,则丢弃该条信令,并向RILD模块发送电话忙/无人接听/已关机等信令;如果号码不在黑名单列表中,则不做任何处理,直接将信令写入rild,转发给RIL-Java模块;
步骤305,此时为其它类型的信令,不做任何处理,直接将信令写入rild,转发给RIL-Java 模块。这样,使用RIL信令截取模块就实现电话防火墙功能。实施例2
使用RIL信令截取模块实现短信防火墙功能,禁止电话号码黑名单列表中的电话号码发送短信给实施例手持终端。具体的实施方式如下
步骤I,在原生Android RIL系统的RIL-Java模块与RILD模块之间建立RIL信令截取模块;
步骤 101, RILD 模块部署点由 /system/bin/rild 迁移至 /system/bin/riId-O 步骤102,重命名RIL信令截取模块与RILD模块原名称一致,即rild 步骤103,部署RIL信令截取模块到RILD模块原部署点,即/system/bin/rild 步骤2,建立RIL-Java模块、RILD模块、RH信令截取模块三者之间的通信通道;
步骤201,配置SOCKET inner_rild的参数,并将SOCKET inner_rild的参数作为启动参数传递给RILD模块,RILD模块建立对SOCKET inner_rild的侦听,即RIL信令截取模块与RILD模块的通道SOCKET inner_rild建立;
步骤202,RH信令截取模块接收启动脚本,所述启动脚本包括RIL-Java模块与RILD模块原始的通道SOCKET rild的参数,RIL信令截取模块依据启动脚本建立对SOCKET rild的侦听,即RIL-Java模块与RIL信令截取模块的通道SOCKET rild建立;
步骤203,RIL-Java模块发起对SOCKET rild的连接请求,RH信令截取模块响应RIL-Java模块建立SOCKET连接的请求,即RIL-Java模块与RIL信令截取模块之间的通信建立;
步骤204,RIL信令截取模块发起对SOCKET inner_rild的连接请求,RILD模块响应RIL信令截取模块建立SOCKET连接的请求,即RIL信令截取模块与RILD模块之间的通信建、立;
步骤205,RIL信令截取模块监听SOCKET rild与SOCKET inner_rild两个设备的回调函数;任意对这两个设备的读写操作都会触发回调函数;
步骤3,利用RIL信令截取模块处理被截取的信令
步骤301,RIL信令截取模块回调函数被触发,对触发设备进行判断,如果为rild,进入步骤302 ;
步骤302,触发设备为SOCKET rild,说明此时为RIL-Java向RIL信令截取模块发送信令,不做任何处理,直接将信令写入SOCKET inner_rild,转发给RILD模块;
步骤303,触发设备为SOCKET inner_rild,说明此时为RILD模块向RIL信令截取模块发送信令,对该信令进行解析,得到信令的类型,如果信令类型为有新短信NEW_SMS_MESSAGE,那么执行步骤304,否则执行步骤305 ;
步骤304,此时有新短信,判断信令的短信发送方字段如果号码在黑名单列表中,则丢弃该条信令;如果号码不在黑名单列表中,则不做任何处理,直接将信令写入rild,转发给RIL-Java模块;
步骤305,此时为其它类型的信令,不做任何处理,直接将信令写入rild,转发给RIL-Java 模块。这样,使用RIL信令截取模块就实现短信防火墙功能。获取Android RIL信令的过程,可在信令产生到处理完成的整个生命周期内执行,然而,在实现本发明实施例的过程中,经多次试验发现在最上层应用程序层研发独立的APK应用进行信令获取,容易被其它应用提前获取或绕行;在第二层应用框架层和第三层系统运行库层进行信令获取,需要修改相应层的实现机制,由于涉及到整个操作系统映像的重新烧制,因此修改后的功能无法直接应用在现有手持终端设备上;另外,虽然Android为开源操作系统平台,但是硬件模块驱动通常由硬件厂商独立提供且无需开源,因此在第四层Linux内核层的Modem驱动中进行信令获取也是不可行的。本发明不仅仅适用于实施例中使用RIL信令截取模块就实现电话、短信息防火墙功能,只要其采用了上述Android RIL系统进行RIL信令截取的方法,也属于本发明的保护 范围。
权利要求
1.一种Android RIL系统,包括RIL-Java模块和RILD模块,其特征在于,在所述RIL-Java模块和RILD模块之间设置用于接收和处理RIL-Java模块、RILD模块发送的RIL信令的截取模块。
2.一种权利要求I所述Android RIL系统的构建方法,其特征在于,以安装有Android系统的手持设备为实施客体,包括以下步骤 步骤一、在原生Android RIL系统的RIL-Java模块与RILD模块之间建立RIL信令截取丰吴块; (1-1)将RILD模块由原始的rild迁移至rild-0 ; (1-2)配置RIL信令截取模块为rild ; 步骤二、建立RIL-Java模块、RILD模块、RIL信令截取模块三者之间的通信通道; (2-1)创建RIL-Java模块、RILD模块、RIL信令截取模块三者之间的通道; (2-2)建立RIL-Java模块、RILD模块、RIL信令截取模块三者之间的通信。
3.根据权利要求2所述的构建方法,其特征在于,所述步骤(2-1)具体包括以下步骤 (2-1-1)配置SOCKET inner_riId的参数,并将SOCKET inner_rild的参数作为启动参数传递给RILD模块,RILD模块建立对SOCKET inner_rild的侦听,即RIL信令截取模块与RILD模块的通道SOCKET inner_rild建立; (2-1-2) RIL信令截取模块接收启动脚本,所述启动脚本包括RIL-Java模块与RILD模块原始的通道SOCKET rild的参数,RIL信令截取模块依据启动脚本建立对SOCKET rild的侦听,即RIL-Java模块与RIL信令截取模块的通道SOCKET rild建立。
4.根据权利要求2所述的构建方法,其特征在于,所述步骤(2-2)具体包括以下步骤 (2-2-1) RIL-Java模块发起对SOCKET rild的连接请求,RIL信令截取模块响应RIL-Java模块建立SOCKET连接的请求,即RIL-Java模块与RIL信令截取模块之间的通信建立; (2-2-2)RIL信令截取模块发起对SOCKET inner_rild的连接请求,RILD模块响应RIL信令截取模块建立SOCKET连接的请求,即RIL信令截取模块与RILD模块之间的通信建立;(2-2-3) RIL信令截取模块建立对SOCKET rild和SOCKET inner_rild两个设备的侦听,设备上的数据读取将触发RIL信令截取模块的回调函数。
5.一种基于权利要求I所述Android RIL系统的RIL信令截取方法,其特征在于,包括以下步骤 步骤A、RIL信令截取模块根据监听的回调函数判断触发设备的类型,若为SOCKETrild,则执行步骤B ;若为SOCKET inner_rild,则执行步骤C ; 步骤B、当触发设备为SOCKET rild,则为RIL-Java模块向RIL信令截取模块发送信令,不做任何处理,直接将信令存储到SOCKET inner_rild中转发给RILD模块; 步骤C、当触发设备为SOCKET inner_rild,则为RILD模块向RIL信令截取模块发送信令,对该信令进行解析,并根据信令的类型进行处理。
6.根据权利要求5所述的RIL信令截取方法,其特征在于,所述信令的类型为新来电INCOMING_CALL、新短信 NEW_SMS_MESSAGE。
全文摘要
本发明公开了一种Android RIL系统及其构建方法,包括RIL-Java模块和RILD模块,在所述RIL-Java模块和RILD模块之间设置用于接收和处理RIL-Java模块、RILD模块发送的RIL信令的截取模块。以安装有Android系统的手持设备为实施客体,首先在原生Android RIL系统的RIL-Java模块与RILD模块之间建立RIL信令截取模块;其次建立RIL-Java模块、RILD模块、RIL信令截取模块三者之间的通信通道;最后利用RIL信令截取模块处理被截取的信令。该系统具有完备性、普遍性且无法绕行。
文档编号G06F9/46GK102662734SQ20121005610
公开日2012年9月12日 申请日期2012年3月6日 优先权日2012年3月6日
发明者张涛, 王金双, 袁志坚, 赵敏, 陈萍, 陈融 申请人:中国人民解放军理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1