ios 订阅
iOS是由苹果公司开发的移动操作系统 [1]  。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad上。iOS与苹果的macOS操作系统一样,属于类Unix的商业操作系统。原本这个系统名为iPhone OS,因为iPad,iPhone,iPod touch都使用iPhone OS,所以2010年WWDC大会上宣布改名为iOS(iOS为美国Cisco公司网络设备操作系统注册商标,苹果改名已获得Cisco公司授权)。2016年1月,随着iOS 9.2.1版本的发布,苹果修复了一个存在了3年的漏洞 [2]  。2018年9月22日,美国苹果公司在最新的操作系统中秘密加入了基于iPhone用户和该公司其他设备使用者的“信任评级”功能。 展开全文
iOS是由苹果公司开发的移动操作系统 [1]  。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad上。iOS与苹果的macOS操作系统一样,属于类Unix的商业操作系统。原本这个系统名为iPhone OS,因为iPad,iPhone,iPod touch都使用iPhone OS,所以2010年WWDC大会上宣布改名为iOS(iOS为美国Cisco公司网络设备操作系统注册商标,苹果改名已获得Cisco公司授权)。2016年1月,随着iOS 9.2.1版本的发布,苹果修复了一个存在了3年的漏洞 [2]  。2018年9月22日,美国苹果公司在最新的操作系统中秘密加入了基于iPhone用户和该公司其他设备使用者的“信任评级”功能。
信息
软件语言
Swift,Objective-C、C、C++
软件大小
1.2 GB
开发商
Apple - 苹果
软件授权
仅苹果移动设备使用
更新时间
2020年7月16日
中文名
苹果移动设备操作系统
最新正式版
iOS 13.6(17G68)
全    称
iPhone Operation System
最新测试版
iOS 14.0 Beta3(18A5332f)
外文名
iOS
iOS发展历程
2007年1月9日苹果公司在Macworld展览会上公布,随后于同年的6月发布第一版iOS操作系统,最初的名称为“iPhone Runs OS X”。2007年10月17日,苹果公司发布了第一个本地化iPhone应用程序开发包(SDK),并且计划在2月发送到每个开发者以及开发商手中。2008年3月6日,苹果发布了第一个测试版开发包,并且将“iPhone runs OS X”改名为“iPhone OS”。2008年9月,苹果公司将iPod touch的系统也换成了”iPhone OS“。2010年2月27日,苹果公司发布iPad,iPad同样搭载了”iPhone OS”。这年,苹果公司重新设计了“iPhone OS”的系统结构和自带程序。2010年6月,苹果公司将“iPhone OS”改名为“iOS”,同时还获得了思科iOS的名称授权。2010年第四季度,苹果公司的iOS占据了全球智能手机操作系统26%的市场份额。2011年10月4日,苹果公司宣布iOS平台的应用程序已经突破50万个。2012年2月,应用总量达到552,247个,其中游戏应用最多,达到95,324个,比重为17.26%;书籍类以60,604个排在第二,比重为10.97%;娱乐应用排在第三,总量为56,998个,比重为10.32%。2012年6月,苹果公司在WWDC 2012上发布了iOS 6,提供了超过200项新功能。2012年9月20日,苹果发布iOS 6正式版,本次更新拥有超过200项新功能。这其中尤其加强了针对中国用户的定制功能,包括Siri开始支持中文语言,系统整合新浪微博、163邮箱等方面。 [3]  2013年6月10日,苹果公司在WWDC 2013上发布了iOS 7,几乎重绘了所有的系统App,去掉了所有的仿实物化,整体设计风格转为扁平化设计。将于2013年秋正式开放下载更新。 [4]  2013年9月19日,苹果发布iOS 7正式版,带来超过200项全新功能。 [5]  2014年6月3日(西八区时间2014年6月2日),苹果公司在WWDC 2014上发布了iOS 8,并提供了开发者预览版更新。 [6]  2014年9月17日,苹果发布iOS 8正式版。 [7]  2015年9月17日,苹果发布iOS 9正式版。 [8]  2016年9月14日,苹果发布iOS 10正式版,这是苹果推出移动操作系统以来最大的一次更新,尤其增加了很多特别适应中国国情的功能,比如骚扰电话识别、苹果地图进一步本地化等。 [9-10]  2017年9月20日,苹果发布iOS 11正式版,iOS 11为iPad带来了更强大的生产力,具体是通过新的Dock栏、文件App、多任务处理、拖拽等功能来实现的。另外,iOS 11重要的一项新功能便是AR功能,这使得该平台成为世界最大的AR平台,用户只需用手机便可享受AR的无穷乐趣。除此之外,iOS 11还带来了更生动更有趣的Live Photo、相机扫码、App Store、控制中心、锁屏、勿扰模式等。 [11-12]  2018年9月18日,苹果发布iOS 12正式版,主要为旧iPhone设备带来性能提升,以及带来了部分全新功能。 [13-14]  2018年9月13日,2018苹果秋季新品发布会上,苹果CEO库克介绍了苹果生态的一些数据。他表示,搭载苹果iOS系统设备已达20亿部。 [15]  2019年9月11日,苹果宣布于2019年9月19日推送iOS 13正式版,支持iPhone 6S及后续机型。 [16]  2019年6月4日,苹果公司在WWDC 2019上发布了iOS 13。2019年9月20日,苹果发布iOS 13正式版,iOS 13推出的"深色"模式为iPhone带来了全然不同的新风格,提供了浏览和编辑照片的全新方式,并新增了保护隐私的登录方式,轻点一下即可登录App和网站。iOS 13速度更快、响应更迅速。系统经整体优化后,App启动速度提升、App下载大小缩减,同时面容ID也变得更快。 [17-18]  2019年9月25日,苹果发布iOS 13.1正式版,实现了诸多问题修复和功能改进,包括iPhone 11、iPhone 11 Pro和iPhone 11 Pro Max上采用超宽频技术的隔空投送、快捷指令App中建议的自动化操作,以及地图App中的共享到达时间。 [19]  美国西部时间2019年9月27日上午10点(北京时间28日凌晨一点),苹果发布了iOS 13.1.1 / iPadOS 13.1.1 正式版更新。 [20]  2019年10月29日,苹果发布iOS 13.2正式版,在iPhone 11、iPhone 11 Pro和iPhone 11 Pro Max上推出了先进的图像处理系统Deep Fusion,它使用A13仿生神经网络引擎拍摄纹理及细节更出众、低光环境下噪点更少的照片。其他功能包括更新和新增的表情符号、AirPods信息播报,并支持AirPods Pro、HomeKit安全视频、具有HomeKit功能的路由器以及新的Siri隐私设置。本更新还包括错误修复和改进。 [21]  2019年12月11日,苹果发布iOS 13.3正式版,包括了改进和错误修复,并在“屏幕使用时间”中新增了更多家长控制。根据苹果发布的最新支持文档,iOS 13.3正在进行改进以最大程度地减少信息App中的垃圾短信等内容。 [22]  2020年3月18日,苹果宣布将于北京时间3月25日为iPhone、iPad和iPod touch用户推送iOS 13.4和iPadOS 13.4正式版。除了重新设计的邮件工具栏和iCloud文件夹共享功能之外,iPadOS 13.4还为iPad平台带来触控板和鼠标支持。 [23]  2020年3月19日,苹果发布iOS 13.4 Beta6(GM版),此前iOS 13.4/iPadOS 13.4已经历经了5次Beta预览测试。Golden Master版本(最终测试版)的出现意味着iOS 13.4正式版到来,优先面向开发者/公开测试版渠道用户推送。而最广泛的iOS 13.4/iPadOS 13.4正式版将在3月25日面向普通用户推送。 [24]  2020年3月25日,苹果发布iOS 13.4正式版,在此次更新中苹果主要推出了新的拟我表情贴纸和从“文件”App共享iCloud云盘文件夹的功能,同时iPad更新后支持搭配使用鼠标和触控板了。 [25]  2020年5月21日,苹果发布iOS 13.5正式版,iOS 13.5加快了配备面容ID的设备在用户佩戴口罩时显示密码栏的速度,并加入了“暴露通知”API以支持来自公共卫生管理机构的COVID-19接触追踪App。本更新还增加了控制FaceTime群聊期间视频拼贴自动突显的选项并包括错误修复和其他改进。 [26]  2020年7月16日,苹果发布iOS 13.6正式版,iOS 13.6支持数字车钥匙,并在“健康”App中包含新的症状类别。本更新还包括错误修复和改进。 [27]  2020年6月23日,苹果公司在WWDC 2020上发布了iOS 14,它为iOS主屏幕带来了多年来最大的变化:小插件。 [28]  Java [6]  苹果仍没有宣布任何让iPhone运行Java的计划。但太阳微系统已宣布其将会发布能在iPhone上运行的Java虚拟机(JVM)的计划,它是基于Java的Micro Edition版本。这将让用Java应用程序得以在iPhone和iPod Touch上运行。在这个计划发表之后,熟悉iOS软件开发协议的程序员们相信虽然iOS软件开发协议不允许应用程序后台运行(比如说在接电话的时候仍然运行程序), 但却允许自带的应用程序从其他的来源下载代码,而且它们还能与第三方应用程序相互作用(比如说Safari和Java虚拟机), 这可能会阻碍不与苹果合作的Java虚拟机的发展。 很明显,在iPhone运行的Java在iOS软件开发协议所规定的范畴以外。FlashiOS不支持Flash。Adobe计划在iPhone发行第三方Flash Lite软件程序,但现时仍未有计划。以现时来说,只支持标准Flash。现时可以使用iPhone第三方程序jailbreak观看flash动画。但不支持在线播放。SwiftSwift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。Swift是苹果公司在WWDC2014上发布的全新开发语言。从演示视频及随后在App Store上线的标准文档看来,语法内容混合了OC,JS,Python,语法简单,使用方便,并可与OC混合使用。作为一项苹果独立发布的支持型开发语言,已经有了数个应用演示及合作开发公司的测试,相信将在未来得到更广泛的应用。某种意义上Swift作为苹果的新商业战略,将吸引更多的开发者入门,从而增强App Store和Mac Store本来就已经有的应用数量基础。
收起全文
精华内容
下载资源
问答
  • 2022-02-23 19:25:43

    Appium-iOS环境搭建

    安装HomeBrew

    /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

    安装依赖库

    brew install libimobiledevice --HEAD
    npm install -g ios-deploy #如果是iOS10以上的系统才需要安装

    安装完整性检测库

    npm install appium-doctor -g

    安装完成后使用appium-doctor --ios检测是否完全安装完毕
    如果要两端环境就直接appium-doctor即可

    安装docor打叉的库

    安装carthage

    brew install carthage
    

    安装cmake

    https://cmake.org/download/
    Tools->How to install command line use
    cmake --version
    

    安装opencv4nodejs

    export OPENCV4NODEJS_DISABLE_AUTOBUILD=1
    npm i -g opencv4nodejs
    (xcode-select --install)
    

    mjpeg-consumer

    npm i -g mjpeg-consumer
    

    set-simulator-location

    brew install lyft/formulae/set-simulator-location
    

    idb

    brew tap facebook/fb
    brew install idb-companion
    #pip3.6 install fb-idb
    #pip3 install --no-cache-dir fb-idb
    sudo pip3 install fb-idb
    

    applesimutils

    brew tap wix/brew
    brew install applesimutils
    

    appium-desktop

    appium-desktop

    appium-inspector

    appium-inspector

    更多相关内容
  • 18个 ios 项目源代码

    万次下载 热门讨论 2014-02-27 17:08:31
    18个 ios 项目源代码 各种布局 控件使用 及扩展视图 自定义UITableViewCell。实现各种样式的表格输入界面、自定义Tab Bar的文字、颜色和图片加箭头、列表个性化列表项、IOS欢迎界面等。
  • 这是《iOS我的云音乐项目实战Swift版》课程【第一部分】,每部分可以单独购买,但推荐一次购买全套课程,更优惠,同时每部分课程也是有前后依赖关系。
  • iOS录音播放方法Demo

    千次下载 热门讨论 2016-07-27 10:08:31
    一、搭建长按录音UI效果; 二、使用AVAudioRecorder录音; 三、使用AVAudioPlayer播放,并添加播放动画; 四、使用lame将caf音频转化为mp3; 五、将mp3 转化为 base64编码; 六、查看录音文件大小;...
  • IOS安全测试工具

    2019-05-07 22:55:29
    IOS安全测试工具、
  • IOS网络编程与云端应用最佳实践,完整扫描版

    千次下载 热门讨论 2014-10-11 21:57:18
    《清华开发者书库:iOS网络编程与云端应用最佳实践》是介绍iOS 6网络编程和云端应用开发技术书籍,介绍了苹果网络、数据交换格式、Web Service、iCloud、定位服务、地图、推送通知、Newsstand、应用内购买、Passbook...
  • linphone ios demo

    热门讨论 2015-05-11 20:42:50
    linphpone ios demo.iOS网络电话linphone
  • win10 IOS文件百度网盘,镜像,免激活 网盘无限下载,也可安装在虚拟机上
  • ios rtsp rtmp流媒体播放器

    热门讨论 2015-07-20 14:21:01
    ios rtsp rtmp流媒体播放器,代码的架构跟kxmovie差不多,但我真实实验过好多kxmovie代码播放rtmp并不能很好的实时播放,后来看了这个播放还是很好,希望对你们有用,本人就是做ios流媒体这一块的,稍微要点资源分。
  • iOS省市区PList文件

    2016-10-14 09:54:02
    超实用的中国省市区PList文件,两种文件
  • ios上下黑边解决办法

    千次下载 热门讨论 2015-08-25 10:19:13
    在5或者5s上运行应用会出现上下黑边,是因为应用运行是320*480
  • iOS AFNetworks https ssl加密

    千次下载 热门讨论 2016-01-21 11:09:46
    iOS AFNetworks https ssl加密,介绍博客:http://www.cnblogs.com/jys509/p/5001566.html
  • iOS 文字动画(每个字逐个显示)

    热门讨论 2016-01-16 21:39:44
    基于两种思维方式的文字动画: 1.将每个字按照给定的时间逐个绘制; 2.在label上添加一个挡板
  • 斯坦福ios7公开课纸牌源码(stanford ios7)
  • iOS Programming: The Big Nerd Ranch Guide (6th Edition) (Big Nerd Ranch Guides) 6th Edition English | 1 Jan. 2017 | ISBN: 0134682335 | 416 Pages | AZW3/MOBI/EPUB/PDF (conv) | 44.19 MB by Christian ...
  • iOS中JS注入例子

    热门讨论 2014-07-02 23:03:26
    iOS中JS注入例子
  • 想学ios的童鞋们,不用再交至少15000元甚至更高的学费去北京了。 有了这套视频教程,完全可以在家里自己学习。因为视频和实培训是一模一样的,对于经济条件不好的同学,这样的视频教程就更加珍贵了。。 需要说的是...
  • 一个iOS的第三方文件,里面的方法可以实现汉字按照首字母排序,并且可以自动生成索引字母数组和各section的二级数组.
  • iOS时间轴实现(Timeline)

    千次下载 热门讨论 2015-01-09 17:47:36
    iOS时间轴的实现,需要的朋友可以下载看一看
  • iOS 8开发指南(全书源码).rar

    千次下载 热门讨论 2015-06-10 10:20:17
    iOS 8开发指南(全书源码)对于广大iOS用户来说,ios8的创新并不是特别多。但是对于开发者使用iOS8 demo的系统运行iOS7下的程序,会发生程序崩溃的情况。通常这种崩溃的发生原因是变量对象被提前释放了,这里给您提供...
  • Apple在北京时间2014年6月3日凌晨发布了iOS8。这次更新在界面上看上去几乎没有修改,不过对于开发者,iOS8是一次重大的变革。最近新接了一项iOS的开发任务,需要用UIWebView进行页面的渲染。做过iOS的都知道,使用...
  • iOS应用内部悬浮窗,可随意拖动

    热门讨论 2014-10-14 17:32:45
    iOS程序内部悬浮窗demo,可以随意拖动,添加点击手势,自定义悬浮窗
  • Beginning iOS 7 Development: Exploring the iOS SDK

    千次下载 热门讨论 2014-04-04 13:10:07
    The team that brought you the bestselling Beginning iPhone Development is back again for Beginning iOS 7 Development, bringing this definitive guide up-to-date with Apple’s latest and greatest iOS 7 ...
  • Android和ios的区别

    千次阅读 2021-11-24 17:27:20
    这一点就造成了Android与iOS的生态不同了,Android完全开源,任何软件开发商或者个人都能开发安卓的软件;ios完全封源开发。 Linux的大多数版本都开源,而Unix系统主要分为两个阵营:System V和BSD。商业版本的Unix...

    一、系统区别

    1、系统和框架结构

    (1) Android系统的底层建立在Linux系统之上;而ios基于UNIX系统。
            这一点就造成了Android与iOS的生态不同了,Android完全开源,任何软件开发商或者个人都能开发安卓的软件;ios完全封源开发。

            Linux的大多数版本都开源,而Unix系统主要分为两个阵营:System V和BSD。商业版本的Unix一般属于System V阵营,通常是不开源的,如IBM的AIX系统,惠普的HP-UX系统等;而BSD阵营的版本通常都是开源的,如FreeBSD、OpenBSD等。

    (2)编程语言:Android的编程语言是Java和KotLin;而ios的则为ObjectC和Swift。
            Android的Java,面向对象,性能比C语言和OC低;ios的OC,基于对象,完全兼容C语言的语法,可以直接操作内存。
            Android生成class文件,需要虚拟机来进行解释;ios直接执行程序的二进制代码。
            这也在根本上造成了iOS与Android性能不同:Android和Window一样,目的是打造一款通用性非常好的系统,在任何机器上面都可以运行;ios目的是让软件和硬件完美的结合到一块,该操作系统只能在极少数机器上面才能运行。

    (3)运行机制:ios采用的是沙盒运行机制;安卓采用的是虚拟机运行机制。
            iOS采用伪后台,当用户HOME键退出应用时,IOS其实关闭了程序,只保留应用的图像入口,只会默认将最后的运行数据记录在RAM中。之所以IOS也能收到推送,是因为应用程序开启推送后,系统会增加一些进程,这些进程会从苹果服务器接收信息,然后再通过服务器发给用户,苹果服务器在这里是起到了中转的作用。
            安卓手机的后台是真后台,将应用保留在RAM中,之所以能够收到推送,也因为它常驻内存。
            所以Android在软件关闭的情况下,无法接收推送信息;ios在软件关闭的情况下,依然可以接收推送信息,iOS系统在系统内存不足时会自动释放内存。

    Android:虚拟机运行机制

    1、所有的应用程序都是运行在虚拟机中,用户界面其实是由虚拟机传递的,并且通过虚拟机,Android的任何程序都就可以轻松访问其他程序文件

    2、所有的Android的应用程序都是运行在RAM里面的,所以会发现有时候Android用着用着就开始有点卡了

    ps:补充知识,手机中的RAM和ROM,可以分别对应电脑的内存和硬盘这么理解

    iOS:沙盒运行机制

    1、每个程序都有自己的虚拟地址空间。所以,程序之间是都不能进行访问

    2、默认只会将应用的最后运行数据,记录在RAM里面

    程序后台运行机制

    Android:任何程序都可以在系统后台运行

    iOS:第三方程序不能在系统后台运行

    2、渲染机制

    (1) iOS最先响应屏幕

            IOS的UI渲染采用实时优先级,Android的UI渲染遵循传统电脑模式的主线程普通优先级

            IOS的响应顺序依次为Touch–Media–Service–Core架构
            Android系统的优先级响应层级是Application–Framework–Library–Kernal架构

            当我们使用iOS或者是Android手机时,第一步就是滑屏解锁找到相应程序点击进入。而这个时候往往是所有操控开始的第一步骤,iOS系统产品就表现出来了流畅的一面,但Android产品却给人一种卡顿的现象,更别说后续深入玩游戏或者进行其它操控了。

            这也就是为什么我们常说iOS比Android流畅了,因为iOS最先响应屏幕,iOS对屏幕反应的优先级是最高的,它的响应顺序依次为Touch–Media–Service–Core架构,换句话说当用户只要触摸接触了屏幕之后,系统就会最优先去处理屏幕显示也就是Touch这个层级,然后才是媒体(Media),服务(Service)以及Core架构。

            而Android系统的优先级响应层级则是Application–Framework–Library–Kernal架构,和显示相关的图形图像处理这一部分属于Library,你可以看到到第三位才是它,当你触摸屏幕之后Android系统首先会激活应用,框架然后才是屏幕最后是核心架构。

    (2)iOS系统优先处理Touch层级
            优先级的不同导致了iOS产品以及Android手机在操控过程中的表现差异,当你滑动屏幕进行操控的时候,iOS系统会优先处理Touch层级,而Android系统则是第三个才响应Library层级,这是造成它们流畅度不同的因素之一。

            不过优先级对系统流畅性有有影响不假,但并不是最绝对的,造成两系统之间流畅性不一的现象还有其它因素。 目前智能手机硬件装备竞赛当中,其实处理器等配置已经达到了一个瓶颈期,各大旗舰产品在硬件比拼当中基本上没有太大的区别,而这时候GPU就成为了一个凸显差异的重要因素。一些大型软件像是3d游戏对GPU性能要求都会比较高,苹果iPhone产品采用的Power VR SGX系列GPU在当下来说非常的主流,跑分测试数据证明了它并不会比一些旗舰级别的Android产品差劲。

    (3) iOS图形特效基于GPU加速渲染
            iOS系统对图形的各种特效处理基本上正好都是基于GPU硬件进行加速的,它可以不用完全借助CPU或者程序本身,而是通过GPU进行渲染以达到更流畅的操控表现。

            但是Android系统产品则并非如此,因为Android需要适应不同的手机硬件,需要满足各种差异配置,所以很多图形特效大多都要靠程序本身进行加速和渲染,并严重依赖CPU运算的操作自然会加大处理器的负荷,从而出现卡顿的问题。

            iOS系统对图形的各种特效处理基本上正好都是基于GPU硬件进行加速的,它可以不用完全借助CPU或者程序本身,而是通过GPU进行渲染以达到更流畅的操控表现。
    Android系统产品则并非如此,因为Android需要适应不同的手机硬件,需要满足各种差异配置,所以很多图形特效大多都要靠程序本身进行加速和渲染。
    (虽然Android 4.0以及4.1等更高版本中进行了改进将硬件加速设为默认开启,但依旧无法做到所有特效全部都靠GPU进行加速。在很多Android手机里面都自带有“是否开启GPU渲染”这个功能选项,不过开启之后的改善也是微乎其微。)

            屏幕最先响应的优先级关系,再加上iSO本身GPU加速程序的特性,使得在操控过程中感觉iOS手机拥有着良好的流畅性。因为它本身的整个流程都是在为最大化的流畅做服务,不管是第一印象的滑动接触屏幕,还是你进一步使用程序之后的更深层操作都是如此。而GPU加速这点特性,是它优于Android系统流畅性的又一个因素。

    测试注意点

    1、多分辨率测试,Android端20多种,ios较少;

    2、手机操作系统,Android较多,ios较少且不能降级,只能单向升级;新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash);

    3、push测试:Android:点击home键,程序后台运行时,此时接收到push,点击后唤醒应用,此时是否可以正确跳转;ios,点击home键关闭程序和屏幕锁屏的情况(红点的显示);

    4、安装卸载测试:Android的下载和安装的平台和工具和渠道比较多,ios主要有app store,iTunes和testflight下载;

    5、升级测试

    可以被升级的必要条件:新旧版本具有相同的签名、具有相同的包名、有一个标识符区分新旧版本(如版本号)

    三、ios和android日志抓取

    iOS:
    1.通过 iTunes Connect(Manage Your Applications - View Details - Crash Reports)获取用户的 crash 日志
    2.通过 Xcode 从你的设备上获得崩溃日志
    3.自己在程序中添加崩溃捕捉代码,如果应用集成第三方 SDK,如百度统计
    Android:
    1.通过集成第三方 SDK,如百度统计、友盟统计等
    2、发版时使用加固工具,他们也会收集错误日志,如 360 加固
    3、在程序中添加程序异常崩溃的捕捉代码,保存到本地文件中


     

    展开全文
  • iOS应用逆向工程 分析与实战

    热门讨论 2015-02-03 09:15:28
    ios应用逆向工程:分析与实战》是ios应用逆向工程方面的权威著作,三位作者都是ios领域内的专家,拥有扎实的理论知识和丰富的实践经验。本书内容以工具+代码的形式全面、系统地展开知识点,由浅入深,图文并茂地带...
  • IOS 获取网络图片的大小

    千次下载 热门讨论 2014-05-19 11:05:42
    IOS 获取网络图片的大小 URL Image Size
  • ios 反编译工具

    热门讨论 2013-12-12 11:52:29
    ios 反编译工具,研究ios反编译的同学看看咯.
  • iOS系统安全学习小结(一)

    千次阅读 2022-02-25 17:32:21
    iOS学习小结

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


    前言

    iOS系统是由苹果公司幵发的智能移动终端操作系统。苹果公司首次于2007年1月9日在Macworld大会上提出这个系统,最早是为给iPhone使用而设计的,后来陆续在iPad、iPod touch和Apple TV等苹果产品上得到应用。

    • 随着基于iOS系统各种设备的普及,人们对其功能和性能也有了更大的要求,它们越来越多地被用来处理各种重要的信息。然而,诸如恶意程序植入、手机病毒入侵、个人隐私泄漏等安全问题也随之而来。

    提示:以下是本篇文章正文内容,下面案例可供参考

    一、iOS系统安全机制

    为了实现其安全的目的,苹果为iOS系统订制了一套安全机制主要由下面几部分组成:

    - (1)可信引导。
    iOS设备以“可信引导”的方式幵机进入系统来保护整个启动过程。系统启动开始先执行一段引导程序,载入固件(需要通过RSA签名),然后由固件启动系统。固件的RSA签名只有通过验证才能继续进行后续工作,系统又通过固件验证。通过这种方式,系统建立起了一条信任链。
    安全只读内存–>一级启动引导–二级启动引导–>内核
    - (2)代码签名
    代码签名机制是在iOS系统运行过程中**来保证程序的完整性。**苹果官方不允许用户安装来自第三方未被审核的应用程序。开发者开发的程序要想提交到电子市场,就需要使用苹果颁发的证书签名并接受屯核,通过屯核后,苹果公司使用它的私钥对程序签名,用户从电子市场上下载和安装程序时,iOS会对应用程序进行证书的校验。通过代码签名机制,保证了在iOS设备上运行的代码都是通过验证的不含恶意性的安全代码,这使得iOS系统上的恶意软件远远少于其他开放的系统。

    - (3)沙盒和权限管理。
    沙盒技术能隔离应用程序,它让用户程序只能执行在普通的用户权限上,并限制用户对文件系统的访问。沙盒针对每个进程都可以使用正则表达式制定特殊的配置文件,目的是对进程的行为进行访问控制。沙盒机制控制了程序的行为,它使应用程序隔离,保护了底层和应用程序数据都不被攻击者恶意篡改。

    • (4)密明链和数据保护。
      用户的各种数据通过密钥加密存储,这些密钥和证书又通过SQLite存储。从iOS4开始,系统引入数据加密技术来保护文件系统中的数据分区,它们的加密过程将由基于存储在一个AES加密加速硬件的密钥上进行。由于基于硬件,除非在加解密时由该加速器获取,否则该密钥不能被CPU直接访问。通过该机制,从硬盘上拷贝出来的原始数据就会解密成乱码,从而保护了用户的隐私。

    尽管有着以上的安全体系监测之下,还是有一些问题存在,比如可利用系统引导过程的漏洞对lOS设备进行越狱,或者手机隐私数据泄露问题,又或者安全漏洞和恶意程序等问题的存在。

    二、iOS系统安全架构

    iOS系统安全架构的六大相关技术:权限分离、数据加密、代码签名、数据执行保护、地址空间布局随机化和沙盒技术。

    • (1)权限分离 :iOS分离各进程是通过使用用户、组和UNIX文件权限机制进行。也就是严格的控制root权限,物理上杜绝了一些威胁。
    • (2)数据加密:在智能移动终端中,加解密是耗费时间和资源的操作。而iOS内所有用户数据的加密功能都无法关闭,都是强制性的。iOS系统的AES加解密引擎位于存储和系统之间的DMA中,都是硬件级的,任何经过存储区的数据都需要通过硬件的加解密。这样不仅提高了的加解密的效率,也提高了安全性。
    • (3)代码签名:代码签名,是软件开发商对其幵发的软件的代码进行数字签名[“〕。用户可以通过代码签名技术鉴别软件的发布者和软件在传输过程中的完整性。利用代码签名的抗伪造性,Web管理者和软件幵发者能为其产品和商标建立信誉。iOS系统中的代码签名机制在iOS安全保护方面起到了至关重要的作用,主要体现为以下两点:
      第一,它从根本上栏截了 iOS中的恶意软件。
      第二,代码签名的另一个作用是它让漏洞攻击变得困难了。
    • (4)数据执行保护:处理器能区分可执行代码以及数据在内存中的位置。DEP只允许代码的执行,而不允许数据的执行。通常情况下,当漏洞攻击尝试执行有效载荷时,它会将有效载荷注入进程并执行。DEP会杜绝这种攻击的实现,因为DEP将有效载荷识别为不允许执行的数据部分,这就无法运行恶意攻击代码,起到了数据执行保护的作用。
    • (5)地址空间布局随机化:iOS中的一种安全保护技术["],主要是针对利用缓冲区溢出的攻击。它通过对堆、栈等线性区随机化布局来增加攻击者预测目的地址的难度,防止攻击者定位攻击代码的地址,阻止攻击者实施溢出攻击。
    • (6)沙盒技术:iOS提供了一系列缓解机制来防范多层漏洞攻击。其中有加大用户获取代码执行权难度的ASLR和DEP技术,但是还需要有限制恶意代码,减少它们对设备造成破坏的机制。沙盒机制就提供了这么一种方法来限制进程行为。iOS中的沙盒技术是它整个防御机制的最后一环节。沙盒提供更细粒度的控制。
      例如,虽然Web浏览器和SMS应用都是以用户mobile权限运行的,但它们的差别较大:SMS—般不需要访问浏览器中的cookie,而浏览器不用访问短信。所以来自电子市场的各种应用不应该同时具有这两者的访问权。沙盒技术解决了如何通过苹果公司指定应用程序具体需要哪些权限这一问题

    三、iOS数据保护

    • Data Protection API是一套用于保护iOS静态数据的接口,苹果公司于iOS4引入这套接口,并沿用至今。
    • 设计DataProtectionAPI的目的是让应用开发者利用一种尽量简单的方式来保护文件keychain项中用户存储的敏感数据,从而防止用户设备因丢失造成的隐私泄露。开发人员只需指明文件或keychain项中哪些地方可能存在敏感数据,并指明它们的访问权限或访问时间。例如,可以设置某些敏感项目只有在设备被正确解锁后才允许访问。因为用户在使用各种软件之前都会将设备解锁,所以这是种很普遍的情况。另外,我们也可以指定某些文件不受制,总可以访问,那么就算在设备未解锁时,这些文件也是不受保护的。在源代码中可以看到,程序员会用一些已经定义的常量来标记文件或keychain项属于哪个保护等级。不同保护等级能区分它们对各种文件和keychain项的保护开关以及受相应保护等级的条件。
      **
    • iOS 的 keychain
      服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个ios程序都有一个独立的keychain存储。用于储存一些私密信息,比如密码、证书等等,Keychain里保存的信息不会因App被删除而丢失,在用户重新安装App后依然有效。同样也适用于应用之间数据共享。我们可以把KeyChain理解为一个Dictionary,所有数据都以key-value的形式存储,可以对这个Dictionary进行add、update、get、delete这四个操作。

    **

    • 应用程序可以通过Data Protection
      API传递新定义的保护等级标志给现有的API。程序员还能通过指明文件系统中的文件和keychain中的项解密的场合,通过保护等级指定底层系统自动解密文件或keychain项的时。
      在 Objective-C 语言中,使用 NSFileManager 类为 NSFileProtectionKey 属性设置一个值,就可以为文件启用数据保护。缺省情况下,所有文件都是NSFileProtecUonNone保护等级的,此时表示读写文件不受限制。
      **NSFileProtectionComplete:**文件受保护,只有在设备未被锁定时才可访
      NSFileProtectionCompleteUnlessOpen: 文件受保护,只有在设备解锁时可打幵(但在设备被锁定时,巳经打开的文件还是可以继续写入)
      NSFileProtectionCompleteUntil
      FirstUserAuthentication:
      在设备正常启动且用户第一次输入密码之前,文件受保护
      **NSFileProtectionNone:**文件随时可以访问,未受任何保护

    总结

    • 苹果公司的安全防护团队针对该漏洞也在新的系统版本中进行了修复。iOS每一次升级和维护基本都会修正先前版本的漏洞和存在的安全隐患,安全领域的攻防技术是彼此促进、互相协调的。攻击技术的研究是为了更好地加强防护,防护系统的升级也是为了更好抵御攻击。通过学习分析iOS平台上的攻防机制,可以将这种思路与同样是主流智能操作系统的安卓相比较,可以得到更多更好的思路,推动移动智能终端安全领域的发展。
    展开全文
  • 文章目录概述命名约定一致性IOSCisco IOS XE 软件版本 16 和 17IOS XE 软件版本 3SIOS XE Train 标识符物理平台虚拟平台IOS经典Cisco IOS 软件版本 15IOS 经典列车标识符物理平台 概述 命名约定一致性 对某事物进行...

    概述

    命名约定一致性

    对某事物进行任何命名约定的全部意义在于使事物保持一致和统一。遵守约定可为专业人员提供基本规则,让他们坚持已知的内容,为现在和未来的员工以及使用思科产品的人员提供清晰简洁的信息。

    本文概述了Cisco 路由平台的 Cisco IOS 命名约定,包括 IOS XE 版本 3S、16 和 17 以及 IOS Classic 版本 15M&T、15S 和 15 特殊和早期部署。

    IOS

    Cisco IOS XE 软件版本 16 和 17

    IOS XE 开辟了一个新世界,从 Denali 开始,通过提供对用户、应用程序和设备行为的更多可见性。IOS XE 的优势在于为企业、有线和无线接入、聚合、核心和广域接入网络提供单一操作系统的优势。

    以下是 Cisco IOS XE 16 和 17 版本的不同系列及其范围:

    • Cupertino 17.7 → 17.9
    • Bengaluru 17.4 → 17.6
    • Amsterdam 17.1 → 17.3
    • Gibraltar 16.10 → 16.12
    • Fuji 16.7 → 16.9
    • Everest 16.4 → 16.6
    • Denali 16.1 → 16.3

    IOS XE 软件版本 3S

    IOS XE 版本 3S 针对网络边缘的紧凑型路由器进行了优化,例如 Cisco ASR 900 和 1000 系列。

    以下是 Cisco 3S 版本的不同系列及其范围

    • 3.1S → 3.18S
    • 3.18SP

    IOS XE Train 标识符

    在下图中,我们的“train”是班加罗尔这个名字,当我们在本文后面看 IOS Classic 时,这将有所不同。

    我们有“17”的主要版本,“6”的发布版本,它是第一次重建。

    还有一个“a”,它是一个可选的特殊版本标识符,当有对硬件平台的特定支持或有针对一组选定缺陷的修复时,将出现此小写字母。您将使用此特殊版本表示法的一个示例是主要版本发布时,但现在有一个硬件平台最初在该版本中不可用。

    这里的“ED”是部署类型,意思是“早期部署”,还有一般部署有限部署

    物理平台

    继续检查 Cisco 映像文件名,我们看到平台名称显示在前面,这是 Catalyst 8500 系列边缘平台。

    “aep”是指聚合边缘平台,这里另一个可能的位置是“be”,意思是分支边缘

    接下来是一个标识符,让我们知道此图像提供的服务,在这种情况下,“通用”意味着此映像提供 C8500 系列边缘平台支持的所有 IOS 功能。可以在此处放置的其他示例可能是“NFVIS”或“adventerprise”,仅举几例。

    接下来,“k9”表示这是一个密码图像。

    我们可以看到 17.05.1a 的完整版本发布。

    也许您以前在 Cisco 文件名中看到过字母“SPA”,我不会在这里详细介绍,因为我在随附的参考资料中知道这些值的含义,但基本上“S”表示它是数字签名的软件,“P”代表生产,“A”是按字母顺序排列的密钥版本,因此,它也可以是 B、C、D 等。

    然后,最后是.bin 的文件扩展名类型。

    在此 ASR 1000 系列路由器映像上,有两个新元素:IOSd 版本标识符和发布类型。

    我们可以看到 IOSd 的版本是 15.5 IOSd 中的“d”代表 daemon。守护进程是在后台执行的 Linux 程序,准备好在需要时执行操作。该软件结合了 Cisco IOS 软件的路由协议功能,本质上是 Cisco IOS 软件代码,在设备上作为单独的进程运行。

    这里的发布类型,“ext”,表示镜像包含3.10S的扩展维护版本。

    虚拟平台

    CSR 1000V 是一个虚拟平台。

    此处的“串行”表示此映像是串行映像,这意味着如果您想要 OpenStack 仪表板的串行连接,则需要此映像类型。

    “qcow2”是用于虚拟磁盘的存储格式。

    IOS经典

    Cisco IOS 软件版本 15

    15M&T Cisco IOS 软件为企业、接入和商业网络提供功能和硬件支持,它结合了之前在 12.4T 和 12.4 版本中引入的功能。这里,M 代表“扩展维护”版本,T 代表“标准维护”版本。

    接下来是 15S,它被引入为 Cisco 的 7200、7300 和 7600 系列路由器提供功能。

    Cisco IOS 15 也有一个特殊和早期开发部分,但这些train的目的是短暂的,并被集成到 15M&T train中。

    以下是 Cisco IOS 版本的不同系列及其范围:

    • 15M&T
    • 15S
    • 15 特殊和早期部署

    IOS 经典列车标识符

    在思科合并班加罗尔、富士等名称之前,train是由一个特定的数字表示的。尽管它可能有点不言自明,但您可以将 Train 视为发布的“主要”版本。这个数字为 IOS 功能集奠定了基础。如前所述,此处的“T”也是 Train 的一部分,表示该版本是标准版本。

    throttle是第二个,它表示一个“次要”版本,其中可能添加了一些新功能和错误修复。新功能通常不会在throttle期间发布,您称之为“mid-throttle””,必须等待在它们被包含之前要启动一个新的油门。

    重建编号通常表示某些错误修复将发生的位置,重建可以有数字约定、字母、小写字母约定,甚至两者的混合。

    这三个属性组成了一个 Cisco IOS Release 版本,但正如您很快就会看到的那样,可以对其进行扩展,以便在查看 IOS 映像时向用户提供更详细的信息。

    物理平台

    从 1900 系列 ISR 中获取图像名称,我们可以查看一些附加信息。

    首先,我们看到平台名称显示在前面。

    接下来,就是我们之前讲的通用标识符。

    接下来,“k9”表示这是一个密码图像。

    “npe”代表无负载加密。

    “mz”表示IOS镜像的版本从RAM运行,IOS文件被压缩。

    正如我们之前讨论过的,数字签名 SPA。

    IOS版本也在这里,为15.7.3

    M 是发布类型,同样,这意味着它是扩展维护版本。

    还有一个包括维护重建编号。

    .bin 是图像的文件格式类型。

    展开全文
  • ios上运行python_iOS上的Python

    千次阅读 2020-07-12 17:55:54
    ios上运行pythonThis holiday I discovered Pythonista, and my mind was blown. 这个假期,我发现了Pythonista ,这让我很震惊 。 In the iOS world, Pythonista is a well known quantity. I can find articles ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,369,500
精华内容 547,800
关键字:

ios