华为荣耀部分机型从鸿蒙降回EMUI的一种方法

华为荣耀部分机型从鸿蒙降回EMUI的一种方法

一、准备说明

1、这里介绍使用华为手机助手、海外代理软件结合固件将部分华为荣耀手机鸿蒙系统降级回EMUI系 统的一种方式;
2、需要降级的手机需要再出厂时内置系统为EMUI,出厂时为鸿蒙系统的无法进行降级操作;
3、降级有风险,存在刷机失败的情况,需自己斟酌。

二、操作步骤

1、首先下载海外代理软件 HiSuite Proxy这里使用的版本是HiSuite Proxy v3.3.0(博文使用荣耀V9进行的演示)

在这里插图一入图片描述


2、点击Get HiSuite自动跳转浏览器下载华为手机助手安装包,版本号为11.0.0.650_OVE
将手机与电脑连接,打开手机的设置-系统,记住手机的型号然后多次点击版本号,进入开发者模式,并允许进行usb调试。这里需要注意如果此时鸿蒙系统不是2.0需要先降回到2.0,才能进一步进行降到EMUI的操作。

在这里插入图片描述


3、点击代理软件界面SETUP按钮,等待Checks Finished完成,华为手机助手会自动关闭

在这里插入图片描述


4、选择对应的固件,这里需要注意第一个是手机型号,第二个是地区,一般建议选择手机升级鸿蒙系统前的最后一个EMUI版本,其他版本可能会存在丢快充和USB的情况;选择适合的版本的点击Add Rom成功会在左下角提示Success
https://professorjtj.github.io/v2/

在这里插入图片描述


5、重新刷新打开华为手机助手,点击系统更新,此时会提示回退版本,按照操作进行系统降级,这里需要注意初始版本鸿蒙如果高于2.0版本需要先使用14.0.0.320版本进行降回到鸿蒙2.0再进行上述降EMUI流程,纯个人经验分享,欢迎交流。

Read more

C++ 游戏开发:从零到英雄的进阶之旅

C++ 游戏开发:从零到英雄的进阶之旅

在当今数字化时代,游戏开发已然成为极具吸引力与挑战性的领域。C++ 作为游戏开发中极为常用的语言之一,凭借其高性能和强大功能,长久以来都是游戏开发者的心头好。若你对游戏开发满怀热忱,却不知如何起步,这篇博客就将为你揭开 C++ 游戏开发的神秘面纱,引领你踏上从新手到高手的进阶之路。 一、为什么选择 C++ 进行游戏开发? 在游戏开发的广袤天地里,编程语言的抉择至关重要。C++ 以其独有的优势,成为众多开发者的不二之选: (一)高性能 游戏开发过程中需要处理海量的实时计算任务,涵盖图形渲染、物理模拟以及用户输入响应等关键环节。C++ 具备直接访问硬件的能力,能够极为高效地利用系统资源,切实保障游戏运行的流畅性。以处理复杂的 3D 场景渲染为例,C++ 能够快速对大量的顶点数据、纹理信息进行处理和计算,精准地将虚拟的 3D 世界呈现在玩家眼前,其性能优势在这种场景下展现得淋漓尽致。 (二)强大的功能 C++ 全力支持面向对象编程(OOP),这使得开发者能够通过类和对象来有条不紊地组织代码。比如在开发一款角色扮演游戏时,我们可以创建 “角色” 类,

By Ne0inhk
C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)

C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)

文章目录 * 前言 * C++的类型转换 * 四种命名的强制类型转换操作符 * static_cast * reinterpret_cast * const_cast * dynamic_cast * RTTI(这个了解一下就行了) * C++的IO流 * C++文件的IO流 * stringstream 前言 在 C++ 编程体系中,类型转换与 IO 流是支撑程序数据处理与交互的两大核心环节。类型转换关乎数据在不同类型间的安全传递与运算适配,而 IO 流则负责程序与外部设备(如键盘、屏幕、文件)之间的数据输入与输出,二者共同构成了 C++ 程序实现功能、交互信息的基础框架。 C 语言中的类型转换方式虽简洁,却存在可视性差、难以追踪的问题,容易在复杂程序中引发潜在的逻辑错误。为解决这一痛点,C++ 引入了四种命名明确的强制类型转换操作符 ——static_cast、reinterpret_

By Ne0inhk
C++ 多线程同步之条件变量(condition_variable)实战

C++ 多线程同步之条件变量(condition_variable)实战

C++ 多线程同步之条件变量(condition_variable)实战 💡 学习目标:掌握 C++ 标准库中条件变量的使用方法,理解条件变量与互斥锁的协同工作机制,能够解决多线程间的等待-通知问题。 💡 学习重点:std::condition_variable 的核心接口、wait() 与 notify_one()/notify_all() 的配合使用、生产者-消费者模型的实现。 49.1 条件变量的引入场景 在多线程编程中,我们经常会遇到线程需要等待某个条件满足后再执行的场景。 比如生产者线程生产数据后,消费者线程才能消费;队列不为空时,消费者才能从中取数据。 如果仅用互斥锁实现,消费者线程只能不断轮询检查条件,这会造成 CPU 资源的浪费。 ⚠️ 注意事项:单纯的轮询会导致 CPU 空转,降低程序运行效率,条件变量就是为解决这类问题而生的。 举个简单的轮询反例,消费者不断检查队列是否有数据: #include<iostream>

By Ne0inhk
C++ 仿函数详解:让对象像函数一样调用

C++ 仿函数详解:让对象像函数一样调用

前言 在 C++ 中,仿函数(Functor) 是指重载了 operator() 的类或结构体的对象,它们的行为类似于普通函数,因此可以像函数一样被调用。仿函数在 STL 算法、回调机制、函数适配器等场景中有着广泛的应用。本文将深入探讨仿函数的概念、优点、使用方式,并结合具体示例进行详细解析。 1. 为什么需要仿函数? 在 C++ 中,我们可以用普通函数或 std::function(C++11 引入)来定义可调用对象,但仿函数相比之下有以下优势: * 状态存储:普通函数无法存储状态,而仿函数可以在对象内部维护状态,例如计数器、阈值等。 * 性能优化:由于仿函数是类的实例,可以通过内联优化减少函数调用的开销。 * 与 STL 兼容:STL 容器和算法广泛使用仿函数,如 std::sort() 可接受仿函数作为自定义排序规则。

By Ne0inhk