Android定制ROM简介

Android定制ROM简介

这篇文章是为对自定义ROM、AOSP等词汇不太熟悉的技术爱好者和好奇的人写的。我希望通过向您介绍这个世界来开始博客写作。

在我们将注意力转向定制ROM之前,让我们先了解一些基础知识。

什么是操作系统?

维基百科对此的定义简洁而准确。

操作系统(OS)是管理计算机硬件、软件资源并为计算机程序提供通用服务的系统软件。

操作系统管理数字设备,包括所有移动手机。

移动操作系统管理其硬件(例如处理器、内存、摄像头、电池、WiFi)、软件资源(例如剪贴板、屏幕键盘)并为程序(在移动世界中通常称为应用)提供通用服务(例如访问摄像头、互联网、库)。

Android和iOS是两个众所周知的移动操作系统。

Android和AOSP

Android是世界上使用最广泛的操作系统。除了iPhone外,Android几乎是全球所有智能手机中使用的操作系统。Android使它们变得智能。那么谁制作了Android?

如果你认为是Google,你几乎是正确的。 Android是由一组公司(开放手机联盟)共同努力开发的。这个联盟由Google赞助。与任何程序或应用一样,Android由大量代码组成。这些代码主要由Google编写,然后作为其开源倡议Android操作系统项目(AOSP)的一部分向公众发布。这意味着任何人都可以下载所有Android代码,进行更改并提交改进!这还意味着如果代码中存在任何漏洞,更容易发现、报告并迅速修复。就像任何代码程序一样,必须从源代码构建Android才能使用。从AOSP构建的Android通常被称为原始Android。但等等…你的手机是否运行这个确切的AOSP代码?不!

你手机自带的Android

AOSP中的Android与预装在手机中的Android之间存在两个主要区别:

  1. Google Play商店和GMS

    Google Play商店是几乎所有设备中预装的应用市场。您可以在Play商店中查找、下载和安装手机上的应用。它们可以是免费的或付费的。您可能还没有听说过另一个术语,GMS——Google移动服务。

    Google Mobile Services(GMS)是一组Google应用程序和API,帮助支持跨设备的功能。

    GMS包括Play商店,它使应用程序更新变得简单,GMS实际上在消息传递和实时聊天应用程序中非常重要。 GMS使您能够将Google帐户与手机同步,并同步联系人和其他数据。这完全是由Google开发的。我会引用Google在其网站上对此的说法:

    虽然Android开源项目(AOSP)提供了通用的设备级功能,例如电子邮件和通话,但GMS不是AOSP的一部分。 GMS仅通过与Google的许可证提供,并提供一整套流行的应用程序和基于云的服务。

    在这里需要注意的是,Google向手机制造商提供许可证,以便它们可以预装这些应用程序和服务。 Google不提供将GMS安装到手机的任何其他方法,您不能仅仅抓取’apks’(Android应用程序包),在手机上安装它们并期望它们能够正常工作。在这里还需要注意的是,其中一些服务比普通应用程序‘更有特权’,即它们被安装为系统应用程序。您无法从手机中卸载Play商店和Play服务。有趣的是:Play服务将始终尝试在后台使用移动数据将Play商店静默更新到最新版本。

    几乎所有Android手机都使用GMS。然而,由于一些国家(例如中国)已禁止Google,这些国家的手机没有预装GMS。这就是为什么在中国通常有不带GMS的手机的原因。

  2. 专有硬件代码、供应商用户界面和预装软件

    接下来,有时需要一些专有代码来运行手机上的特定硬件。专有代码是不向公众公开的代码,由制造商拥有版权,为商业而创建。它可能是相机代码,可能是调整过的Android库本身,这取决于手机制造商公司。
    一些定制化Android UI

MIUI、OneUI、ColorOS、OxygenOS、ZenUI等。所有这些都是由各自的手机制造商公司调整的Android的口味(定制用户界面),他们希望为他们的Android手机用户提供一种不同、特殊的体验。这些供应商从AOSP代码作为基础开始,然后修改代码以创建自己的Android版本。这个修改后的代码是专有和保密的。这些版本旨在在AOSP提供的功能之外提供额外的功能,一致的、有特色的外观,改进的用户体验等。

回想一下当您购买新手机时。在设置完手机后,您可能会注意到一些预装的应用程序,如Facebook、Amazon、也许是一些游戏、Netflix、一些供应商特定的应用程序(如三星和小米提供自己的应用商店)等。您可能想要其中一些,但大多数时候,它们是不需要的。这些被称为“增值应用程序”。之所以预装这些应用程序,是因为应用公司付给手机公司费用来这样做。这对于预算智能手机比旗舰智能手机更常见,因为这对盈利业务更有利。手机公司决定您是否可以卸载它们,如果您不能卸载它们,是否可以禁用它们。

我们现在对Android是什么有了基本的了解,也对我们手机上安装的Android有了了解。所以让我们开始了解定制ROM。

Android定制ROM

这些通常是Android的市场分发(通常是开源的)后期版本。开源:它们是从AOSP分叉而来,即它们的代码基础是AOSP,开发人员对该代码进行了一些更改。区别在于他们将此代码公开可用。市场分发:这些通常不预装在手机上,而是用户可以手动在其设备上安装这些定制ROM。

一些流行的定制ROM的例子包括LineageOS、DirtyUnicorns、PixelExperience ROM等。

让我们来看看在手机上使用定制ROM的利弊。

优势

我认为使用定制ROM的首要优势是自由、灵活性和选择的权力。随着我列举其他优势,这一点将会得到解释。

  1. 清洁、原始的Android体验: 定制ROM看起来与AOSP非常相似。与一开始在Android中使用的相同用户界面。它与Google在Pixel手机、Nexus手机和Android One项目中提供的界面非常相似。很少有厂商保持这种原始Android体验。其他厂商会强加一种看起来截然不同的用户界面,以突出自己,进行市场和品牌推广,以取悦一个小但声音大的“粉丝群体”。

  2. 性能和电池寿命提升: 如果您的手机具有一个非常耗资源的供应商UI版本,那么您可能无法充分发挥手机硬件的优势。像MIUI这样的重型自定义UI在运行UI本身时消耗大量资源,为您运行的应用程序,尤其是RAM,留下较少的资源。如果像我一样拥有4GB RAM或更少的预算手机,那么您的自定义UI驱动的Android可能很难进行多任务处理。

    • 如果您一次打开4-5个应用程序,那么最早打开的应用程序可能会被操作系统关闭,它简直无法负担在RAM中保留该应用程序。此外,为了弥补其繁重的UI和其他后台服务,供应商会使系统更加主动关闭后台应用程序。在定制ROM中,没有供应商端服务或额外的UI进程,系统在RAM管理方面更加胜任,并且在多任务处理方面显着更加出色。由AOSP开发人员编写的原始用户界面更加流畅,整个系统的视觉延迟较小。并且图形(游戏)性能稍有提高,因为UI使用更少的资源进行渲染。
    • 现实生活中的例子:如果我使用MIUI(预装在我的Redmi Note 7 Pro手机上),玩类似《使命召唤》的游戏,切换到Whatsapp快速回复(或接电话),然后回到《使命召唤》,游戏会重新启动。但是如果我使用定制ROM,即使在离开另一个应用程序后,游戏也不会重新启动,即使过了几分钟。
  3. 无增值软件: 大多数定制ROM都非常简化。优秀的定制ROM确保所有预装的应用程序都是开源的,并且它们对基本手机功能是必需的。尽管当今一些ROM试图遵循Pixel的路线,并用它们的Google替代品替换大多数系统应用程序。通过自定义恢复(我将在另一篇博客中介绍),您实际上可以选择要预安装的哪些Google应用程序。

  4. 隐私: 定制ROM不包含供应商在“改善用户体验”的名义下包含的数据收集和分析软件。尽管一些定制ROM具有简单的匿名统计报告,但可以轻松关闭。您可以选择通过我们称之为“GApps包”安装GMS应用程序和服务,或者您可以安装替代方案,如microG。使用microG,您可以拥有完全不含Google的、真正开源、安全且注重隐私的Android。

  5. 更快的更新: 定制ROM开发人员通常是小团队协作,会在发布之前在他们自己的手机上测试每个新的更新。因此,您将获得比供应商ROM更快的更新。在AOSP发布新的月度安全补丁后,开发人员只需几天时间就能更新他们的定制ROM。更快的更新意味着您的Android手机对系统中新发现的漏洞更加安全。

  6. 无广告: 开源软件简单无法包含广告。如果有广告,某人可以轻松地调整软件的那一部分并发布同一软件的无广告版本。与此同时,一些预装的供应商应用程序包含令人讨厌的广告。

  7. 更新的Android版本: 手机供应商通常只提供一到两个Android版本的升级。例如,我曾拥有一台华硕Zenfone 3,它配备了Android 6.0(棉花糖),并升级到了Android 8.0(奥利奥)。定制ROM开发人员能够为手机提供更近期的Android版本。对于Zenfone 3,基于Android 9.0(派)的定制ROM是可用的!另一个例子:联想ZUK Z2 Pro官方升级至Android 8.0(奥利奥),但定制ROM甚至可用于Android 11.0!
    这里有更多的优点,但让我们转向缺点。

缺点

这些大多数都可以通过一个简单的措施来避免——做好你的调查。

安装定制ROM需要解锁手机的引导加载程序。 许多供应商提供了此工具,但他们会劝阻您解锁引导加载程序。有些供应商在您的设备上安装定制ROM时会取消设备的保修。他们这样做是因为您将在手机上安装他们无法提供支持的定制软件。如果您疏忽大意并设法“硬砖”(见第3点)您的设备,公司就不应该负责。但这是非常罕见的情况,保修也会因硬件问题而失效。
注意:一些公司(如小米)将考虑如果您锁定引导加载程序并再次安装供应商的自定义UI,则会考虑保修。这因供应商而异,您将在其自己的网站上找到有关此信息的更多信息。

  • 错误: 供应商ROM经过严格测试,并得到了专业开发人员的支持。供应商还提供保修,并在一定程度上对其负责。所有这些都不适用于定制ROM。错误或软件问题主要取决于两个主要因素:
  • A.错误可能出现在ROM本身或设备端源代码中。这取决于开发人员是否能够修复。
  • B.有时在定制ROM中根本无法修复错误。这可能是由于供应商对某个组件的糟糕实现,也可能是由于其他无法避免的原因。
    最后,最“可怕”的缺点是事情可能会出错。如果您不小心并安装了一个不适用于您的设备、而是为其他设备准备的文件,可能会导致您的手机在最坏的情况下无法使用。也可能发生开发人员在代码中犯了错误,导致相同的结果,或者在大多数情况下是一些小错误。因此,重要的是确保您安装的ROM与您的设备兼容且正常工作。开发人员通常在发布ROM时附上其自己设备的定制ROM安装截图。在涉及到定制ROM时,小心并在事先进行适当的查找是至关重要的。我将在此方面定义两个常用术语:
  • A.软砖:手机处于无法使用的状态。您可以将手机恢复正常,但这需要一些时间和精力。在某些情况下,您可能需要将其带到服务中心进行修复。
  • B.硬砖:手机成为实际的砖块。如果您非常不走运或疏忽大意,可能会出现硬砖。您无法从这种状态中恢复手机。通常发生在敏感的手机分区损坏或以使手机无法启动的方式进行更改时。
    某些应用可能不起作用或可能无法使用于该设备。 需要更高安全性的应用程序,如Netflix、银行应用程序,非常少量的游戏能够检测到您正在使用已解锁引导加载程序的定制ROM。有一些解决此问题的方法,我将在相关的博客文章中讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/258035.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探讨二维半导体的概念、应用前景及其与传统半导体的差异

当探讨二维半导体时,我们置身于科技革新的前沿。这种材料以其纳米级薄度和独特电学性质区别于传统半导体,引发了科学界的广泛兴趣。本文将深入探讨二维半导体的概念、应用前景及其与传统半导体的差异。 什么是二维半导体? 二维半导体是由单…

计算机网络 网络层下 | IPv6 路由选择协议,P多播,虚拟专用网络VPN,MPLS多协议标签

文章目录 5 IPv65.1 组成5.2 IPv6地址5.3 从IPv4向IPv6过渡5.3.1 双协议栈5.3.2 隧道技术 6 因特网的路由选择协议6.1 内部网关协议RIP6.2 内部网关协议 OSPF基本特点 6.3 外部网关协议 BGP6.3.1 路由选择 6.4 路由器组成6.4.1 基本了解6.4.2 结构 7 IP多播7.1 硬件多播7.2 IP多…

0062-Java运算符

文章目录 1.运算符介绍2.算术运算符2.1 介绍2.2 细节说明 3.关系运算符(比较运算符)3.1 介绍3.2 细节说明 4.逻辑运算符4.1 介绍4.2 逻辑运算规则4.3 && 和 & 基本规则4.4 && 和 & 使用区别4.5 || 和 | 基本规则4.6 || 和 | 使用区别 5. ! 取反 基本规…

Logback简介与配置详解

在开发和维护Spring Boot应用程序时,一个强大而灵活的日志框架是至关重要的。Spring Boot默认集成了Logback,一个高性能的Java日志框架。本文将介绍如何配置Logback以满足你的日志记录需求。 Logback简介 官方网址:https://logback.qos.ch/ …

Kafka核心参数(带完善)

客户端 api Kafka提供了以下两套客户端API HighLevel(重点)LowLevel HighLevel API封装了kafka的运行细节,使用起来比较简单,是企业开发过程中最常用的客户端API。 而LowLevel API则需要客户端自己管理Kafka的运行细节,Partition&#x…

RocketMQ系统性学习-SpringCloud Alibaba集成RocketMQ以及消费收发实战

文章目录 Spring Cloud Alibaba 集成 RocketMQ 最佳实践集成依赖DashBoard消息收发实战 Spring Cloud Alibaba 集成 RocketMQ 最佳实践 SpringBoot 相对于 SSM 来说已经很大程度上简化了开发,但是使用 SpringBoot 集成一些第三方的框架,还是需要花费一些…

Node.js 工作线程与子进程:应该使用哪一个

Node.js 工作线程与子进程:应该使用哪一个 并行处理在计算密集型应用程序中起着至关重要的作用。例如,考虑一个确定给定数字是否为素数的应用程序。如果我们熟悉素数,我们就会知道必须从 1 遍历到该数的平方根才能确定它是否是素数&#xff…

搭建知识付费平台?明理信息科技为你提供全程解决方案

明理信息科技saas知识付费平台 在当今数字化时代,知识付费已经成为一种趋势,越来越多的人愿意为有价值的知识付费。然而,公共知识付费平台虽然内容丰富,但难以满足个人或企业个性化的需求和品牌打造。同时,开发和维护…

Python Pandas Excel/csv文件的保存与读取(第14讲)

Python Pandas Excel/csv文件的读取于保存(第14讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…

在 Kubernetes 上部署 Python 3.7、Chrome 和 Chromedriver(版本 114.0.5735.90)的完整指南

一、构建基础镜像 docker build -f /u01/isi/DockerFile . -t thinking_code.com/xhh/crawler_base_image:v1.0.2docker push thinking_code.com/xhh/crawler_base_image:v1.0.2 二、K8s运行Pod 三、DockerFile文件 # 基于镜像基础 FROM python:3.7# 设置代码文件夹工作目录…

【论文解读】Comparing VVC, HEVC and AV1 using Objective and Subjective Assessments

时间:2020 级别:IEEE 机构: IEEE 组织 摘要: 对3种最新的视频编码标准HEVC (High Efficiency video Coding)测试模型HM (High Efficiency video Coding)、amedia video 1 (AV1)和Versatile video Coding测试模型 (VTM)进行了客观和…

关于“Python”的核心知识点整理大全25

目录 10.3.4 else 代码块、 10.3.5 处理 FileNotFoundError 异常 alice.py 在这个示例中,try代码块引发FileNotFoundError异常,因此Python找出与该错误匹配的 except代码块,并运行其中的代码。最终的结果是显示一条友好的错误消息&#x…

抖音直播间websocket礼物和弹幕消息推送可能出现重复的情况,解决办法

在抖音直播间里,通过websocket收到的礼物消息数据格式如下: {common: {method: WebcastGiftMessage,msgId: 7283420150152942632,roomId: 7283413007005207308,createTime: 1695803662805,isShowMsg: True,describe: 莎***:送给主播 1个入团卡,priority…

速学数据结构 | 二叉树堆的实现详解篇

🎬 鸽芷咕:个人主页 🔥 个人专栏:《速学数据结构》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 📋 前言 🌈hello! 各位宝子们大家好啊,二叉树的概念大家都了解了那么我们…

自动驾驶学习笔记(十九)——Planning模块

#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo 社区开发者圆桌会》免费报名—>传送门 文章目录 前言 Planning作用 Planning内容 Plannin…

uni-app ucharts中饼图与圆环图区别

项目情况: uni-app的用于移动端H5项目,包使用uni_modules目录存放。 图表引用ucharts中的echarts配置的组件方式 区别1 饼图与圆环图在echarts使用的配置都是pie类型。但是配置raduis使用: radius: [40%, 70%] 区别2 组件type指明&#xf…

保护您的Android应用程序:Android应用程序安全一览

保护您的Android应用程序:Android应用程序安全一览 我们都知道Android是为所有人设计的——开放、面向开发者、面向用户,这种开放性为今天和明天的移动技术提供了很多便利。然而,开放性也带来了需要妥善处理的安全风险。 安全是我们所有人都…

广州华锐互动VRAR:利用VR开展新能源汽车触电安全演练,降低培训成本和风险

随着新能源汽车行业的快速发展,相关的安全培训也变得越来越重要。其中,触电急救培训对于保障驾驶员和乘客的安全具有重要意义。传统培训方式存在一些不足,而利用VR技术进行培训则具有很多优势。 利用VR技术开展新能源汽车触电安全演练可以在模…

ansible模块 (7-13)

模块 7、hostname模块: 远程主机名管理模块 ansible 192.168.10.202 -m hostname -a nameliu 8、copy模块: 用于复制指定的主机文件到远程主机的模块 常用参数: dest: 指出要复制的文件在哪,必须使用绝对路径。如果源目标是…

fastjson1.2.24 反序列化漏洞(CVE-2017-18349)分析

FastJson在< 1.2.24 版本中存在反序列化漏洞&#xff0c;主要原因FastJson支持的两个特性&#xff1a; fastjson反序列化时&#xff0c;JSON字符串中的type字段&#xff0c;用来表明指定反序列化的目标恶意对象类。fastjson反序列化时&#xff0c;字符串时会自动调用恶意对…