Android底层使用开源的Linux操作系统,亦可归于嵌入式系统,同时开放了应用程序开发工具,使用Java语言进行开发(也支持Kotlin),所有程序开发人员都在统一、开放的开发平台上进行开发,保证了Android应用程序的可移植性。
Android系统最早的一个版本Android1.0beta发布于2007年11月5日,至今已经发布了多个更新。这些更新版本都在前一个版本的基础上修复了Bug并且添加了前一个版本所没有的新功能。
从2009年5月开始,Android操作系统改用甜点来作为版本代号,这些版本按照从C大写字母开始的顺序来进行命名:纸杯蛋糕(Cupcake)、甜甜圈(Donut)、闪电泡芙(éclair)、冻酸奶(Froyo)、姜饼(Gingerbread)、蜂巢(Honeycomb)﹑冰淇淋三明治(IceCreamSandwich)、果冻豆(JellyBean)、奇巧(KitKat)、棒棒糖(Lollipop)、棉花糖(Marshmallow)、牛轧糖(Nougat)、奥利奥(Oreo)。
此外,Android操作系统还有两个预发布的内部版本,它们分别是原子小金刚(Astro)和机器人班亭(Bender,电视动画《飞出个未来》角色)。
随着版本的更迭,应用程序编程接口(API)等级不断递增。
作为参照,下面列举其中几个API等级与其Android版本一一对应的关系列表。
由于安卓系统开源、免费和可定制的特性,只要你想,任何人都可以定制自己的系统。这些定制系统可分为两大类,一是有些社区论坛不满原手机系统,于是自己在原生安卓(AOSP)的基础上进行修改优化而发布的第三方ROM;二是OEM手机厂商为了系统本地化和方便用户使用,为自家手机品牌开发出的专属系统。
这类绝大多数为类原生系统
还有一些是不那么常见的第三方ROM如XSOP等。
Touchwiz(三星)、EmotionUI(华为)、MIUI(小米)、FlymeOS(魅族)、SmartisanOS(锤子科技)、ColorOS(OPPO)、H2OS/OxygenOS(一加,国内为氢OS,国外为氧OS)等等。
通俗的讲,之前各定制系统如此慢的重要原因之一为:由芯片供应商提供的芯片驱动必须与Android的API严格对应,这样一来芯片厂商先要从Google拿到最新的系统的源代码,芯片厂商编写芯片驱动以能运行在最新的Android,然后芯片厂商把驱动交给OEM厂商,最后OEM厂商为其设备适配,这样一来OEM厂商适配新版Android系统的进度严重依赖于前面几个环节。ProjectTreble旨在最新的Android上应用兼容的芯片驱动,加快最新系统适配的速度。但这同样需要芯片厂商的的参与,如放出长支持(LTS)的芯片驱动。
目前已有数部手机已支持ProjectTreble,目前少数厂商一两部手机支持就不列举了,可自行查询。在Android8.0版本以上的系统中在Termux(免Root终端,或其它手机终端)中输入getpropro.treble.enabled命令,返回的结果为true则为支持,false则为不支持。
在移动端操作系统中,目前Android系统的全球市场占有率是最高的,运行Android系统的设备主要是智能手机和平板电脑,然而安卓系统还运行在其它产品上,包括手表、电视、数码相机、智能家居、智能眼镜、车载信息娱乐系统、游戏机等等。
对于iOS系统,需要每年支付$99来成为一个开发者,而Android系统,你可以免费开发应用(WindowsPhone同样如此)。然而,如果你想在GooglePlay上架你的应用的话,需要支付$25的注册费。
Recovery中文意思是恢复,简称Rec。我们所说的Recovery,一般是指手机的RecoveryMode(恢复模式,俗称工程模式)。这是一种可以对安卓手机内部的数据或系统进行修改的模式。Recovery的定位类似PC平台的WinPE,在这个模式下我们可以刷入新的ROM包,或者对已有的系统进行备份或升级,也可以在此恢复出厂设置。
不同厂商的Recovery界面不一样,常见的几种界面如下:
ClockworkModRecovery,简称CWM,资格非常老的第三方Recovery。CWM基于安卓2.1的Recovery改写,从安卓2.x时代开始,它就非常流行,一度是最受欢迎的第三方Recovery。不过,CWM对触屏的支持并不好,而且功能也渐渐被其他Recovery超赶。
绝大多数手机关机状态下按住音量加键+电源键,待手机开机即可进入Recovery模式。各种机型方法略有不同,具体方法的可查阅你的手机品牌官网或网上查找。
如果手机已Root,还可通过系统内某些软件重启进入Recovery,如OfficialTWRPApp、XposedInstaller等软件。
当BL被锁住时,你的手机便只认可官方的固件(简单说就是能够操纵硬件的系统底层程序,如官方的Recovery),如果BL发现手机中的系统不是被指定的,就会阻止其启动。
手机厂商要锁定BL,一来是为了自己的利益,限制用户安装除自己之外的其他ROM。二来是保护手机内的数据,防止被盗或者丢失后被人拿去刷机占为己有。
没有解锁BL,就无法进行FastBoot刷机(FastBoot,是一种比Recovery更加底层的刷机模式,俗称引导模式。是一种线刷,即使用USB数据线连接手机的一种刷机模式。相对于某些系统(如小米)的卡刷来说,线刷更加安全可靠)。
手机的厂商不同,解锁BL的方式也不同,一般来说,解锁BL有“官解”和“强解”两种方式。“官解”,就是“官方解锁”,一般是通过官方网站申请解锁,如小米申请解锁的网站。当官方不提供BL解锁渠道时,可以利用手机当中的一些软件漏洞来强制解锁BL,不过这种解锁方式并不安全。PS:解锁之前请务必关闭查找手机功能,否则会解锁失败。
刷入第三方Recovery的方法有很多,但是前提都是手机已经解锁BL,确定你的手机处理器(CPU)不是联发科(MTK)的,因为目前联发科处理器不支持FastBoot刷入,需要使用专门的工具才能刷入,此处就不叙述MTK处理器的Rec刷入方法了。
刷入第三方Recovery方法有很多,这里只介绍大部分机型都通用的方法。步骤如下:
Root译为“根”,所以Root权限也叫根权限,Root是Linux系统中的超级管理员用户账户,类似于Windows系统中的System权限(Windows系统内最高的权限)。拥有Root权限后,可以对系统中任何文件(包括系统文件)执行增、删、改、查和配置文件权限的操作。
安卓系统内核就是Linux,所以安卓获取Root其实和Linux获取Root权限是一回事。
在Linux下获取Root权限时,执行sudo或者su,然后输入root用户的密码,就可以了。
但是Android里的su和Linux的不一样,不是验证密码的,而是看你原来的权限是什么。也就是说如果你是root,那么你可以通过su切换到别的用户,比如shell,radio,audio什么的。但是如果你是root之外的用户,就不能切换回root了,会提示没有权限。
Root权限可以随意读写系统下任意文件,系统下任意一个文件的执行必须要获得并通过相应权限请求。
以此为指导思想再来分析Root的安全问题就容易理解了,Android系统下有些操作只有Root权限才能执行,如系统的重启、重启到Recovery模式等操作,如果你在SuperSU里开启了日志记录功能,能够查看权限请求日志。以下分别是通过软件OfficialTWRPApp重启系统和重启至Recovery的权限请求日志。这正是正常的Root权限请求日志。
看到这里想必大家能够对Root权限有一个理性正确的认识了,正确的防范之法就是选择安全的软件源,利用权限请求日志分析软件是否安全。
Xposed是由rovo89和Tungstwenty共同开发的一款可以在不修改APK的情况下修改系统功能和应用程序的框架。
基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。所有的修改都在内存当中进行,所以只需要停用Xposed框架,你的系统便恢复原样了。
Xposed通过替换/system/bin/app_process程序控制zygote进程,使得它在系统启动的过程中会加载XposedFramework的一个jar文件即XposedBridge.jar,从而完成对Zygote进程及其创建的Dalvik虚拟机的劫持,并且能够允许开发者独立的替代任何class,例如Framework本身,系统UI又或者任意的一个App。
XposedInstaller,中文翻译为Xposed安装器,是一款安卓App。
在这个App内,可以安装、卸载、升级Xposed框架,下载、安装、卸载、升级与管理Xposed模块。
确认你的设备已经获取Root权限,或者已经安装第三方Recovery,则可以开始安装Xposed框架。
不管有没有Root,推荐都通过卡刷安装,Root法安装更容易出错。
Xposed模块本质也是APK文件,没有Xposed框架的情况下你也能安装、卸载模块。
在APK的AndroidManifest.xml文件中还添加了mete-data标签,包括xposedmoudle、xposeddescription、xposedminversio属性,以让XposedInstaller识别该App为Xposed模块,显示在Xposed模块列表中,并且显示模块的描述与支持的最低API版本号。
下载安装模块后,在XposedInstaller的模块列表中,勾选模块,然后重启手机,模块便生效了。
由于Xposed模块拥有十分强大的能力(比如获取你输入的密码、劫持你浏览的网页、锁住手机、破坏手机系统等等),因此推荐只在值得信任的网站下载安装,否则可能造成不必要的损失。
GooglePlay服务完全依赖于谷歌服务框架(GoogleServicesFramework),是谷歌公司的系列应用在Android上运行的基础软件环境。谷歌公司为Android提供了一套系统服务(包括账号,联系人,SMS,手机查找等数据的同步备份,类似于AppleID),谷歌发布的包括谷歌服务框架在内的一系列软件统称为GApps(GoogleApps)。
国内定制系统用第三方安装工具App,卡刷GApps系统条件苛刻才能成功,安装了无法运行卸载起来非常困难。第三方ROM也推荐首选第三方安装工具。
最后整理一下刷机的流程:解锁BL,刷入TWRP,刷入Root包,通过TWRP刷ROM,然后就是按照自己想法安装Xposed,谷歌服务等增强组件。以此指南作为指导可以为你在提升Android的使用体验过程中省下不少功夫。
当然了,网上还有一些下载即用的第三方刷机工具,如刷机精灵、刷机大师等刷机工具提供ROM的下载与刷机。这些工具的优缺点也是异常明显,优点是操作极其简单,缺点是其提供的ROM中几乎都内置几个不可卸载的推广软件,安全性也令人担忧。