Android下USB pppd实现方案

Android下USB pppd实现方案
Android下USB pppd实现方案

Android下的USB pppd实现方案

目标:

实现AP或/和modem睡眠唤醒后,依然能正常上网。

当前困难:

在MODEM进入睡眠后,USB所创建的usbtty0,1,2,3均丢失,但PPPD不会释放usbtty0的句柄,导致重新唤醒后,pppd所持有的句柄无效,导致通讯不能正常。

方案一:增加一个虚拟驱动

实现方法:

增加一个虚拟驱动,该驱动负责将PPPD的数据包转发给modem(通过USB口),并将modem的数据透明传输给上层应用。当pppd试图传输数据给modem的时候,它会把数据发给Trans Drvier,此driver会判断usbtty0是否被打开,如果没有打开,则打开它;当系统进入睡眠的时候,TransDrv释放掉Usbtty0的句柄。这样,在modem能够保持住链路的情况下,系统唤醒后,pppd依然可以传输数据给modem

优点:

可行

缺点:

方案二:pppd控制usbtty0的节点

实现方法:

在系统进入睡眠的时候,通知pppd应用,使得pppd在系统睡眠前释放掉usbtty0的句柄,唤醒后,再重新open此句柄

优点:

简单明了

当前困难:

我们对Android系统不熟悉,尤其上层

方案三:修改USB驱动,使得USB在休眠唤醒过程中不枚举USBTTY

当前困难:

难度很大

Android移动设备中的传感器关键技术设计

Android移动设备中的传感器关键技术设计 摘要 随着经济的发展,Android系统在电子信息、通信系统特别是移动设备方面应用十分广泛。比如:摩托罗拉、三星等智能手机大多采用的是Android系统。 Android系统提供的加速度传感器和陀螺仪是基于硬件的传感器,其中有三个传感器既是基于硬件的也是基于软件的传感器。文章根据Android系统的五个传感器技术的应用,进行了论述研究。 一、引言 随着手机等移动设备的发展,人们对移动设备的要求不仅仅限于接打电话、QQ等传统手机功能,要求智能手机具备更加完善强大的娱乐商务功能,目前传统计算机的应用功能基本全部实现智能手机上。 Android作为一种流行系统平台,令人津津乐道的特性数不胜数,其中最为耀眼的是Android平台的各种传感器。 二、基于Android移动设备的传感器技术概述 (一)Android平台简介 Android的中文翻译是安卓,本来的意思是机器人,是Google公司基于Linux 自由及开放代码的操作系统,这种操作系统较好的整合应用软件、用户界面、操作系统和中间件,打造了一个移动终端开放完整的移动软件,在2007年11月5日正式开发成功面试。Android(安卓)最初是由Andy Rubin开发的一种操作系统,主要支持的移动设备是手机。2005年8月,Google收购安卓并未安卓注资,2007在Google的领导下改良Android系统,使Android成为一种基于Linux自由及开放代码的操作系统,除了支持智能手机还支持平板电脑等移动设备。Android 是完全开放的操作系统,它的迅速发展使其发展趋势趋向多元化,Google公司强大的互联网功能和服务优势,Android的移动技术应用的前景非常美好。 (二)基于Android平台传感器概述 传感器是被测量信号输入的第一道关口,是传感器系统中的元件组成部分,它包括载体和电路连接的敏感元件和转换元件,但是传感器系统却是组合某种信息处理能力元件的传感器。传感器是一种检测装置,是实现移动设备自动控制、自动检测的前提装置。Android平台应用的传感器技术有姿态传感器技术、光电传感器技术、磁场传感器技术和加速度传感器技术等诸多耀眼的传感器技术,传感器系统功能非常强大,为用户提供了巨大的便利。 三、基于Android移动设备的传感器技术应用 (一)基于Android移动设备的加速度传感器技术应用

浅谈安卓开发代码混淆技术

浅谈安卓开发代码混淆技术 关键字:代码混淆,代码保护,应用安全,应用加固,安卓安全 随着移动互联网的快速发展,应用的安全问题不断涌现出来,于是越来越多的应用开发者将核心代码由java层转到native层,以对抗成熟的java逆向分析工具,然而如果native层的代码如果没有进行任何保护,还是比较容易被逆向分析工作者获取其运行逻辑,进而完成应用破解或者进行其他的操作。那么提高native代码的安全性有什么好办法吗?答案是肯定的,今天我们就来介绍一种有效对抗native层代码分析的方法——代码混淆技术。 那么,什么是代码混淆呢?代码混淆的学术定义如下: 代码混淆(code obfuscation)是指将计算机程序的代码,转换成一种功能上等价,所谓功能上的等价是指其在变换前后功能相同或相近。其解释如下:程序P经过混淆变换为P‘,若P没有结束或错误结束,那么P’也不能结束或错误结束;而且P‘程序的结果应与程序P具有相同的输出。否则P’不是P的有效的混淆。 目前对于混淆的分类,普遍是以Collberg 的理论为基础,分为布局混淆(layout obfuscation)、数据混淆(data obfuscation)、控制混淆(control obfuscation)和预防混淆(preventive obfuscation)这四种类型。 1. 布局混淆 布局混淆是指删除或者混淆软件源代码或者中间代码中与执行无关的辅助文本信息,增加攻击者阅读和理解代码的难度。软件源代码中的注释文本、调试信息可以直接删除,用不到的方法和类等代码或数据结构也可以删除,这样

即可以使攻击者难以理解代码的语义,也可以减小软件体积,提高软件装载和执行的效率。软件代码中的常量名、变量名、类名和方法名等标识符的命名规则和字面意义有利于攻击者对代码的理解,布局混淆通过混淆这些标识符增加攻击者对软件代码理解的难度。标识符混淆的方法有多种,例如哈希函数命名、标识符交换和重载归纳等。哈希函数命名是简单地将原来标识符的字符串替换成该字符串的哈希值,这样标识符的字符串就与软件代码不相关了;标识符交换是指先收集软件代码中所有的标识符字符串,然后再随机地分配给不同的标识符,该方法不易被攻击者察觉;重载归纳是指利用高级编程语言命名规则中的一些特点,例如在不同的命名空间中变量名可以相同,使软件中不同的标识符尽量使用相同的字符串,增加攻击者对软件源代码的理解难度。布局混淆是最简单的混淆方法,它不改变软件的代码和执行过程。 2. 数据混淆 数据混淆是修改程序中的数据域,而对代码段不作处理。常用的数据混淆方式有合并变量、分割变量、数组重组、字符串加密等。 合并变量是将几个变量合并为一个数据,原来的每个变量占据其中一个区域,类似于一个大的数据结构。分割变量则是将一个变量分割为两个变量,对分割前后提供一种映射关系,将对一个变量的操作转化为对分割后两个变量的操作。 数组重组有数组的分割、合并、折叠和平滑等几种方式。分割是将一个数组分成2个或多个相同维度的数组;合并则相反;折叠是增加数组的维数;平滑则是相反。 在ELF文件中,全局变量和常量字符串存放在数据段中,反汇编工具可以轻易查找到字符串与代码之间的引用关系。在软件破解中,通过一些字符串提示可

app开发常用技术

app开发常用技术 app开发已经成为企业实现战略转型的重要转折。当下,移动互联网市场的迅猛发展推动了企业智能管理的步伐,加快了企业开展移动互联网营销的趋势。企业开发app已经势不可挡。 移动互联网app普及时代,常用的app开发技术总结起来主要有以下几种:node.js、图片处理、LBS定位、AR、3D建模、wifi控制、EPUB电子出版、视频音频、在线支付、数据传输加密,ERP等技术。 node.js:Node.js是一个可以快速构建网络服务及应用的平台。是基于socket 的及时通讯的协议。 LBS定位:英文全称为Location Based Services,是指通过无线电通讯网络或外部定位方式,获取移动终端用户的位置信息,在GIS平台的支持下,为用户提供相应服务的一种增值业务。 AR:AR是把虚拟的图像和文字讯息与现实生活景物结合在一起,从去年开始,很多AR已经应用在Android和iPhone手机上。 3D建模:3D建模通俗来讲就是通过三维制作软件通过虚拟三维空间构建出具有三维数据的模型。 wifi控制:利用室内wifi,通过手机app控制家电。 EPUB电子出版:ePub(Electronic Publication的缩写,电子出版)是一个自由的开放标准,属于一种可以“自动重新编排”的内容;也就是文字内容可以根据

阅读设备的特性,以最适于阅读的方式显示。 数据传输加密:更好的解决网站数据传输的安全而采用的一种加密技术。ERP:企业资源计划即ERP(Enterprise Resource Plan)是指建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。 更多app开发价格、工期、案例等可登陆蓝凌科技官网了解查询。

Android关键技术分析

Android关键技术分析 及入门技巧 华清远见:王光荣

议程 }1、专题简介 }2、Android发展现状 }3、系统架构分析 }4、Android中界面技术Activity }5、Android后台服务技术Service }6、Android广播技术Broadcast }7、Android数据保存技术内容提供者ContentProvider }8、Android入门技巧分享

专题简介 Android手机在全球智能手机市场销量排名第一, 这个技术产生到现在只有三年时间,Android工程师量的紧缺已经严重影响了IT 产业的快速 发展!通过本专题内容的分析,听众可以了解 Android关键技术和Android的入门技巧

Android发展现状 Andorid 1.0 2008年9月 Android 1.52009年7月纸杯蛋糕 Android 1.6 2009年9月甜甜圈 Android 2.0 / 2.12009年10月松饼 Android 2.2 2010年5月冻酸奶 Android2.3 2010年12月姜饼 Android 3.0 2011年2月蜂巢 Android 3.1 2011 5 蜂巢 Android 3.2 2011 7 蜂巢 Android4.0 2011 10 冰激凌三明治

Android发展现状 Android销量巨增 智能手机制造商青睐 Android保持创新 Android应用商店保持发展 Android手机价格低廉

Android 发展现状 }1月,Android 应用数量超过20万。 }1月,Google 对外公布数据,每日Android 设备的新用户数达到30万。 }2月2日,Android3.0正式发布。 }6月,Android 在日本的市场占有率达到57%。 }6月22日,Android 在韩国市场占有率达到了70%。}7月,Android 在中国的市场占有率达到了34.8%。}7月,Android 在欧洲的市场占有率达到了22.3% } 7月,Google 对外公布数据,Android 每天的新用户达到55万,Android 设备用户总数达1.35亿。 }8月,谷歌收购摩托罗拉移动。 }8月,Android 系统在35个国家市场占有率第一,平均市场占有率达到48%。 }8月,Android 系统成为亚太地区第一大系统,市场占有率为亚太地区第一大。 }9月,数据显示,Android 应用数目已经达到48万。}9月,Android 在美国的市场占有率达到43%。} 10月19日,谷歌正式发布Android 4.0操作系统。 2011年事件

android开发关键技术

Android开发技术研究 学号:110085208027 学生所在学院:信息工程学院 学生姓名:陈烨 任课教师:杨词慧 教师所在学院:信息工程学院 2012年6月

Android开发技术研究 陈烨 南昌航空大学 摘要 Android平台是Google推出的新一代智能手机平台。本论文深入讨论Android平台的系统架构,并详细介绍了在Windows系统下Android开发环境的搭建。 关键词:Google Android;系统架构;环境搭建 引言 Android一词的本义是指机器人,同时也是Google于2007年11月5日牵手34家移动技术和无线应用领域的领军企业联合组成的开发联盟(Open Handset Alliance)宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。其开放性保证该平台不存在任何阻碍移动产业创新的阻碍,开发人员在该平台开发的所有应用程序,必须是使用java语言编写的,在Android Runtime的Dalivk虚拟机上运行的。 Android系统架构 Android基本上就是一种嵌入式Linux系统再加上一些重要的手机应用开发软件,如果深入研究其系统架构,其整体自底向上由4个主要层次构成,包括Linux Kernel(Linux 内核层)、Library(函数库)和Android Runtime(Android 运行时库)、Application Framework(应用软件架构)、Application(应用程序),如图1所示。 图1、Android系统架构

移动云计算关键技术

移动云计算关键技术 xxx. 华中科技大学. 通信xx班. U20xxxxxxx. 摘要:智能手机、平板电脑和云计算都融合于一个新的快速增长的移动云计算领域。随着一种更移动的、钟爱设备的云环境的出现,在短短的几年时间当中,将会有1 万亿云计算就绪的设备。本文主要介绍并阐述了移动云计算的关键技术,包括4G、HTML5 和CSS3、虚拟机监控程序、Web技术、并行计算等几个方面。 关键词:移动云计算,移动云计算平台,关键技术。 1.引言 科技从来都是朝着方便人类生产生活的方向发展。代步工具,通信设备的出现都很好的印证了这一观点。在资源的利用方面,人类也在不断地追求着便利,“心有所想,手到擒来”一直是我们追求的理想标准。随着人类社会的进步,相当一部分资源已经基本能达到这个标

准了,很多资源以基础设施的形式被提供给人们使用。用户可以在任意时间根据他们的需要频繁访问这些基础设施,如水、电,并只需要对他们所使用的资源付费。 信息时代里,数据计算能力作为一种至关重要的资源,在人们的日常生活中逐渐变得不可或缺,于是如何以更好地方式给公众提供计算资源受到很多研究人员和实践者的关注。如何做到“手到擒来”一直是IT人倾注心血,致力实现的梦想。近些年,一种新型的计算模式——云计算——越来越被大家提及。云计算就是这样一种可能帮助人们实现这一理想的技术,它能够按需部署计算资源,用户只需要为所使用的资源付费。 为了更好地理解云计算,先让我们举个生活中的例子。这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉,最大的不同在于,它是通过互联网进行传输的口。让用户通过高速互联网租用计算资源,而不再需要自己进行大量的软硬件投资。 从本质上来讲,云计算是指用户终端通过远程连接,获取存储、计算、数据库等计算资源。云计算在资源分布上包括“云”和“云终端”。【1】“云”是列互联网或大型服务器集群的一种比喻,由分布的互联网基础设施构成,几乎所有的数据和应用软件,都可存储在“云”里,只需要拥有一个功能完备的浏览器,并安装一个简单的操作系统,通过网络接入“云”,就可以轻松地使用云中的计算资源。 传统意义上的“云终端”主要指PC,随着移动互联网的蓬勃发展,基于手机等移动终端的云计算服务已经出现。移动云计算是在Open Gardens 博客上发布的一篇文章中首次被定义的。本文主要在云计算技术的基础上,总结分析移动云计算的特点及其核心技术,并对

Android应用安全加固关键技术研究

122And「oid应用安全加固关键技术研究 And「o id应用安全加固关键技术研究 Key Techniques of Android Security Reinforcement 许泽帆林彬烯王佳耿孙宇吴东庆(仲恺农业工程学院计算科学学院,广东广州510225) 摘要:通过研究A n d ro id应用的安全性问题,根据所设计的防御方案,实现了一个针对A n d ro id应用程序的安全加固软 件,该加固软件为A n d ro id应用程序提供透明的加固服务,实现应用程序的加壳,防二次打包,反动态调试等功能。然后对一 样本进行加固实验,通过实验过程和实验结果前后对比,此方案可以能在一定程度上保护A n d ro id应用程序的安全。 关键词:Android,加固,加壳技术,安全 Abstract:This paper through studies the Android security problems,according to the design of the defense scheme,the implementation of a safe reinforcement to Android application software,the strengthening software for Android applications to provide transparent reinforcement service,realize the application of packers,prevent secondary packaging,inverse dynamic de- bugging,etc,then do the same for the reinforcement of the experiment. KeywordsiAndroid/einforce^ncryption shell protection,security 1问题分析及相关研究 通过对原始应用进行反编译,加人恶意代码,再进行二次打 包和重新签名,再将应用放到应用市场供用户下载,进行这样的 修改不会改变应用原本的代码逻辑,但加人的恶意代码会在用 户不知不觉间窃取隐私信息。同时,这样的二次打包技术让许多 软件开发者的利益遭到了巨大的损失,许多付费的应用被破解 后放人应用市场中,这样不利于整个A n d ro id生态系统的发展 和建设。 由于A n d ro id系统更新迅速,所以其安全保护还没有一套 特别完整和完善的方案,大都借鉴P C端的安全保护技术,各大 互联网公司如百度、腾讯、阿里、360都有加固产品,他们的加固 方案都有一些相同的地方,也有各自的特点,但大都只能起到一 定的保护作用。 本系统对现在的逆向技术进行分析,从静态防御和动态防 御两个方面,实现了一套加固方案,实现对应用加壳,防调试,从 一定程度上保护应用的安全。 2 A n d ro id应用加固软件设计 2.1方案设计 2.1.1静态防御 2.1.1.1 D e x动态加载 实现d e x的动态加载主要使用的DexClassLoader这个 类,通过编写一个外壳程序,将需要保护的d e x文件加密保存 在assets文件夹中,程序运行时外壳程序对原d e x文件进行解 密,再加载执行原d e x文件。主要的调用过程是用DexClass-Loader实例化对象 ,之后使用过 loadClass加载 目标类 ,最后 使用反射技术进一步调用想要的函数,这样就实现了对原dex 的动态加载。 2.1.1.2签名校验 一般攻击者无法知道应用原本的签名,所以重新签名时只 能使用别的签名文件。通过检测软件运行时的签名与发布时不 同,说明软件被修改过。 Android S d k里提供了运行时获取签名的方法,通过使用 PackageManager类的getPackagelnfo()方法可以获取软件的 签名,这里使用N d k去获取签名之后就与原先保存的签名的hashcode做比较,不相等就中止程序。 2.1.1.3完整性校验 完整性校验是检测原始代码是否被恶意修改的重要方法,而 一般A n d ro id应用程序进行的完整性校验主要是对于d e x文 件。 攻击者进行代码修改和恶意代码植人一般是针对classes. d e x这个文件,所以可以在A ndroid应用运行的最开始阶段对 它进行校验,校验的方法可以利用文件的c rc值进行验证。 2.1.1.4资源文件混淆 资源混淆就是把a p k包里面的res/drawable/log.p n g文 件改成r/d/l.p n g这种型式,让重打包者看不明白文件名的意 思,同时可以减小字符串的长串,最终减小a p k体积。 2.1.2 动态防御 2.1.2.1调试器检测 因为android系统的大多数调试是基于P trace的。Ptrace 提供了一种父进程可以控制子进程运行,并可以检查和改变它 的核心image。p trace有一个很重要的特点:一个进程只能被一 个进程调试,同时当进程被调试时他的TracerPid是不为0的, 所以只要检测/proc/$pid/sta tu s中TracerP id的值,如果!=0 就退出程序。 2.1.2.2模拟器检测 攻击者一般会在模拟器上对目标应用程序进行动态调试, 所以进一步应该对代码是否在模拟器进行检测。 1) 模拟器属性检测。A n d ro id系统的一些属性模拟器和真 机是不同的,如设备id、im e i等,通过对当前运行环境的这些属 性进行检测,判断是否在模拟器中。 2)模拟器文件检测。在模拟器中一般存在着许多模拟器特 有的虚拟机文件,例如 “/dev/socket/qem ud”、“/dev/qe- mu赃pipe”等,所以通过在正常运行前对这些文件进行检测来判 断是否在模拟器中。 2.2系统架构 本安全加固方案主要分为P C端和A n d ro id端两个部分, P C端主要是对原a p k进行加密、添加加壳文件、重打包、重签 名等操作。A n d ro id端主要进行的是解密D EX文件、完整性校

相关文档
最新文档