y83忘了应用锁怎么办?

MySQL有很多特性,其中事务和分库分表是我们开发过程常用到的,本章节我们重点介绍。我们将了解到:

1、事务有哪些特点,事务的隔离级别,开发过程中如何选择对应的级别?

2、事务是如何实现的,什么是行锁表锁以及版本控制?

3、分库分表的使用场景,以及实现方式和策略有哪些?

4、分库分表后存在哪些问题,如何解决这些问题?

账户A给账户B转款,处理流程如下:

(1)、A账户扣款m元

(2)、B账户收款m元

       如果第一步完成后,第二步出错了,那么就会导致A账户款被扣了,但是B账户没有收到款。如果哪个的银行系统这么设计,那么就离关门不远了,当然还没听说银行因为这个倒闭,正是使用了"事务"。

      "事务"是将这两步看成了一个整体,要么一起执行,要么一起不执行。如第二步出错后,整体回滚,那么A账户也不会扣钱。

实际开发过程中,我们经常删除主表以及相关联的扩展表数据,就需要使用事务,否则就容易造成脏数据。如要支持事务,需要选择Innodb引擎。

(1)A(Atomicity),原子性,事务里面的所有操作,看成一个原子操作,要么一起做完,要么一起不做,不存在部分执行,部分没有执行的中间状态。上例中,扣款和收款就是一个原子操作。

(2)C(Consistency),一致性,事务开始前和结束后,数据库的完整性约束没有被破坏,上例中,不能出现A扣了钱,但是B没有收到。

(3)I(Isolation),独立性,事务之间是互相独立的,隔离的,不允许相互影响,上例中,A账户扣钱完成前,其他账户不能向A账户充钱。

(4)D(Durability),持久化,事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。上例中,一旦完成转款并提交,A账户的钱就要不回来了,投资有风险,转款需谨慎。

      事务的独立性要求事务之间有隔离的,隔离也分4个级别,每个级别对应不同的要求。

  • read-uncommitted(读未提交),隔离级别最低的,A事务中的任何修改,在未提交的情况下,都暴露给B事务,相当于裸奔。
  • read-committied(读提交,又称不可重复读,RC),A事务的任何修改,只有在提交的情况下,B事务才能感知到。
  • repeatable-read(可重复读,RR),A事务做了修改,并且提交,B事务如果在其修改前启动的,那么在B事务内,读到的是修改前的数据,不会感知到A的修改,直到B事务结束。MySQL的默认级别。
  • serializable(串行化),隔离级别最高的,将事务的执行变为顺序执行,就相当于单线程,A事务执行过程中,B阻塞,直到A提交。

这几个级别按照直译后的字面含义,很难理解是什么意思。没关系,接下来我们用实例演示下这四个级别的区别。

先了解下几个操作指令:

先创建一张表user,其中userid为主键,username字段建立普通索引。

接下来我们插入一些数据

打开两个客户端,模拟事务A和B。

1)启动事务A,并修改money数据,暂不提交。

2)启动事务B,查询该条数据。

查询到的结果如下,B事务可以看到修改后的值了。

所以,对于read-uncommittied级别,A修改后未提交,其他事务也能看到修改后的值。

我们将数据重置到初始状态,继续往下

1)启动事务A,并修改money数据,暂不提交

2)启动事务B,查询该条数据

查询到的结果如下,B事务无法看到修改后的值。

3)A事务提交后,重新执行B事务查询

所以,对于read-committied级别,A事务修改后,未提交,B事务无法查询到更新值,A事务提交后,B事务可以查看。

将数据重置到初始状态,继续往下

1) 启动事务A,并修改数据,暂不提交

2)启动事务B,查询该条数据

查询到的结果如下,B事务无法看到修改后的值。

3)A事务提交后,重新执行B事务查询

对于repeatable-read级别,A事务提交后,B事务查到的还是之前的数据。也就是说,B事务结束前,查询到的都是B事务开始时的数据"快照"。

将数据重置到初始状态,继续往下

1)启动事务A,并修改数据,暂不提交

2)启动事务B,查询该条数据

此时,B事务阻塞住了。

此时,B事务可以执行了,查询到修改后的值。

对于serializable级别,A事务执行时,其他事务处于排队阻塞状态(包括读事务),当A事务提交后,才开始其他事务执行。

    需要注意的是,对于以上的隔离级别,都是针对与"读"的,即A事务更新,B事务读的场景。如果A,B事务都对于同一条记录进行修改,那么B事务必定会阻塞。我们来验证下,将隔离级别调整到最低read uncommitted进行测试。

(1)启动A事务,并修改数据,暂不提交

(2)启动B事务,并修改同一条数据

(3)A事务提交,B事务执行

4、事务级别对并发问题的解决

先看下并发的相关问题。

脏读,事务未提交,其他事务就可以感知到,一旦该事务回滚,那么其他事务感知到的就是脏数据。

不可重复读,其他事务修改了某个记录并提交,在另外的事务中,对该条记录多次读,会导致结果不一致。

幻读:幻读主要是针对插入操作,很多同学对这个有些困惑,下面我们就重点通过实例演示下幻读现象。

(2)此时,A事务尚未提交,B事务插入一条记录

(3)A事务再提交后,B事务再提交,A再查看记录

新插入的记录,并没有修改。

作为A来说,不知道更新后还有新记录插入,认为所有的数据都已经修改才对,这条异常数据是个"幻觉",所以称之为"幻读"。解决"幻读"问题,仅能通过设置serializable级别。

各隔离级别对并发问题的支持如下:

对于事务的级别,MySQL默认为RR基本满足绝大部分场景要求了。对于解决幻读,可以使用应用层的分布式锁解决。 

     MySQL对于事务的管控主要通过设置隔离级别实现,那么底层是如何实现这些隔离级别的呢。

     其实,实现原理也不难想到,我们在做应用开发的时候也遇到过很多并发的问题,一般都是使用"锁"来解决,乐观锁,悲观锁,共享锁等等,锁的作用就是将宏观上并行的问题,在微观上利用串行解决。

     对于MySQL也不例外,锁的类型很多,这里我们重点介绍下常用的行锁和表锁。

     顾名思义,行锁就是以行为粒度进行加锁,我们用实例来看下行锁的实现

1)A事务更新userid=5行记录,暂不提交

2)新开一个客户端窗口,模拟其他事务也更新这行记录

我们再更新一个其他行的记录

由此可见,只是锁住了userid=5这一条记录。

下面我们看下多行记录的情况

2)新开一个客户端窗口,模拟其他事务也更新userid=1记录

正确执行,符合预期,A事务中更新并没有包含userid=1。

      阻塞住了,A事务明明是userid<4,为什么将userid=4也锁住了呢,在MySQL中,行锁的范围是左开右闭,也就是(1,4]。为什么这样?行锁并不是在这条记录上加锁,而是在索引上加锁。

     这种锁也成为间隙锁所有的行锁仅针对索引加锁,包括主键,唯一索引,普通索引

      表锁就是以表为粒度进行加锁。上面说了行锁仅对索引加锁,那我们选择一个非索引列(money)作为查询条件看下

2))新开一个客户端窗口,更新money=400记录

可以看到,阻塞住了,对于条件为非索引列的更新,是用表锁实现的。

需要注意的是,当行锁的数量达到一定阀值,行锁会逐级升级为页锁和表锁。

(1)行锁的粒度比表锁的小,锁冲突的概率也小,尽量使用行锁。

(2)正确的加索引,使用主键或者索引加锁,避免引起全表扫描,导致锁表。

     上面的行锁和表锁解决了"写-写"冲突问题,对于"读-写"来说,从严格意义上,也可以使用悲观锁控制,但是考虑到实际场景和性能要求,大多数情况下是不需要类似"写-写"那么严格的,无需加锁。

     前面我们在讲到repeatable-read隔离级别时,提到了"快照",这个就是MySQL解决无锁状态下"读-写"冲突的方式,那是怎么做到的呢?

     我们使用git提交版本后 ,可以根据根据版本号回溯到之前的任意版本。实际上,MySQL也是用了这个方式,称之为MVCC(多版本控制)。

     MVCC原理就是每条记录增加隐藏字段,保存事务号,每次事务对记录的改变,保存一条记录,用链表将这些历史记录串起来。当事务A读某个记录,利用最新记录做了快照(该记录的最新事务号),A事务内部读取该记录,使用记录的事务号,到链表中找到对应的记录,其表象就是做了一份快照。A事务的读操作,不会影响其他事务的写,同样,其他事务的写,也不会影响A事务的读。

    当然,MVCC实现过程要比这个复杂,还需要考虑到历史记录的老化等,这方面的文章也比较多,我们也会在中具体介绍。

     对于一些流水型的数据,包括交易记录,日志记录,评论记录等等,都是随着系统运行的时间快速增长,当数据量达到一定度,IO,CPU,网络都会是瓶颈,数据库的整体性能将下降,甚至带来灾难性后果。此时有几种常用的方法:

(1)、提升硬件性能,增加CPU核数,使用高速网卡,简单粗暴,成本高,对于整体性能的改善也是有限的。

(2)、冷热数据库分离,定期将不活跃的数据移到冷库中,热库中仅保留访问量高的活跃数据。这种对于冷热界限比较明显的数据比较合适的,比如交易型数据,但是对于用户型数据就不大合适,今天的不活跃用户不代表未来不活跃。

(3)、分库分表,这个也是我们最常用方式,将库和表拆成多个,也是我们今天重点讨论的内容。

     前面也说了一部分,当数据量达到一定程度,会导致IO,CPU,网络成为瓶颈。我们具体来看:

(1)当一张表的数据量特别大(上亿条),全量扫描的时间会更长,如果发生锁表,影响事务的并发,另外B+索引维护也是一份巨大的工作,这些都会导致CPU飙升。

(2)当一个库的数据特别大,MySQL是半工型的,网络带宽影响数据的传输,导致查询的性能下降,另外也会产生大量的IO,降低查询速度。

反过来,如果实现了分库分表,有什么好处:

(1)最重要的是,我们说的这些瓶颈都不存在,且对于单个库表的维护简单很多,量变导致质变。

(2)这些库表分布在不同的物理设备上,可以有效利用这些设备的性能。

当然分库分表也会导致很多问题,比如事务一致性,夸库的操作,包括join,排序等等,后面我们也将逐个分析。

可以分为垂直拆分和水平拆分。

1)垂直分库,以业务的维度,将表分到不同的库中,比如用户库,订单库等。每个库的表结构不一样,数据也没有交集。

对于垂直分库的场景,一般是结合业务系统的分拆,特别是对于微服务的架构,这种情况会比较多。

2)垂直分表,以业务的维度,将字段拆分到不同的表中,比如将表拆成主表和扩展表,通过主键关联。

对于垂直分表的场景,一般是对于宽表(字段比较多),可以按照活跃字段以及非活跃字段进行拆表,但是也要考虑一部分字段冗余(反范式),避免大量的join。

1)水平分库,以字段为依据,按照某种策略(hash,rang等),将库中的数据分拆到多个库中。每个库中的表结构是一样,所有数据的并集就是全量数据。

对于水平分拆的场景,在高并发情况下,将网络,cpu,io的压力负载到多个分库上。

2)水平分表,以字段为依据,按照某种策略(hash,rang等),将一张表中的数据分拆到多张表,每张表的结构一样的,所有数据的并集就是全量数据。

对于水平分表的场景,一张表的数据太多(大于500w行),影响SQL的执行效率,数据分拆到多张表中,减轻CPU的压力。

3)水平分库分表的策略

常用的有以下几种策略:

以某个字段进行hash,将数据均衡的分布到分库和分表上。一般适用于一些离散型的字段,比如会员号,账号等。

按照范围进行分割,比如以价格,年龄等。

按照时间范围,这种对于操作日志,流水记录的库表比较适合。

按照地区进行分割,这种对于地区强相关的数据比较适合,比如天气记录。

3、分库分表需要注意的问题

     分库分表是整个数据库设计中最复杂的环节之一,在实践过程中需要考虑因素很多,而且这些如果处理不好,会导致后续变更非常困难。

下面我们就来梳理下这些问题

      当所有的表都在同一个库中,我们可以"随心所欲"的去join,但是分库之后,问题就来了,比如我们分割为用户库和订单库,现在需要根据用户名查询用户订单,首先需要根据用户名查到到用户的账号,然后根据账号查询订单。不要试图做夸库的join,我们看下都有哪些解决方法。

     这个应该是首先想到的方法,先查询用户表,获取到用户id,然后再将用户id作为入参查询订单库,获取最终结果。这种方式需要依靠应用层的逻辑处理,对于比较复杂的场景,需要多次查询,并进行条件过滤才能得到最终的结果。

      将订单表在用户库中也保存一份,这个就可以在同一个库中join了。这种方式看起来与分库原则向违背,实际上是常用的方式,特别对于强关联的表做冗余,用空间换效率。

对于一些字典表,也常用此种方法。

     和冗余发有些类似,只不过不是将整张表冗余,而是将对应关系的字段保存在相关库中,比如

对于水平分库,按照某个属性字段进行拆分所有表,尽量将查询封闭到一个库中。

     对于按照范围,时间和区域的水平拆分策略,可以直接扩容,不涉及迁移的问题,而对于hash取模扩容的时候则需要考虑原数据的迁移。

首先禁止写,然后通过脚本将A,B两个库的数据按照规则重新导入到新库。这也是最简单粗暴的方式,一般对于业务影响不大的库。

通过迁移工具,将A,B的库数据按照规则迁移到B,D,找个业务低峰期,禁止一段时间的写入,待A,B的数据排干,再切换到新的策略。该方案会影响一段时间的业务,大部分情况下是可接受的。

      C库作为A库的从库,D库作为B库的从库,首先进行主从复制,C,D分别同步全量的A,B库的数据,再切换策略,生效后,断开复制关系。这种方式无需停机,与数据迁移相比较,C,D库中会有冗余的数据。

(3)聚合,排序,分页,分组的问题

      一旦分库了,那么聚合,排序,分页,分组都面临了多个库操作的问题,比如说订单按照用户id的维度分布到各个库中,现在要按照时间进行降序,就需要在每个库查询记录,然后在内存中排序,再返回客户端。如果应用来实现,将是非常复杂的,幸运的是,有一些开源的组件帮我们完成。这里推荐两款:

     Sharding-JDBC是当当网的开源中间件,属于客户端模式,支持分库分表、读写分离、分布式 id 生成、柔性事务。sharding-jdbc无需单独部署,维护简单,对于规模不大,轻量级应用较适合。

      Mycat是目前国内比较活跃的数据中间件,与sharding-jdbc不同的是,它采用的是proxy模式,支持分库分表,读写分离,分片策略配置,自动路由,分布式事务,多租户等特性,功能非常强大。由于需要单独部署,维护较为复杂,开发人员需要对此有一定了解,所以一般适合一些大型的数据库集群上使用。

      分库后,事务的一致性就无法保证,比如用户下单时,生成订单和库存扣减需要在一个事务中,当订单和库存在一个库中,没有问题,但是当订单和库存分库后,现有的机制就无法保证了。

目前解决方案是分布式(XA)事务,采用的二阶段提交方式,包括:

XA分布式事务模型定义了事务管理器(TM,常见的是交易中间件),资源管理器(RM,一般是数据库),

       分布式事务需要所有的RM反馈后才能提交,如果哪个RM处理速度慢,整个事务只能处于等待状态,直到timeout,在高并发情况下,严重影响性能。

      在5.7.7版本前,分布式事务存在bug,一些情况下会导致主从数据不一致。所以最好选择使用5.7.7之后的版本。

回答开篇的几个问题作为总结:

Q:事务有哪些特点,事务的隔离级别,开发过程中如何选择对应的级别?

A:(1)事务的特点包括:A(原子性)C(一致性)I(独立性)D(持久性)

  (3)如没有特殊要求,RR级别满足大部分场景,也是MySQL的默认级别。串行化不推荐使用,一般在应用层实现分布式锁解决。

Q:事务是如何实现的,什么是行锁表锁以及版本控制?

A:事务是通过各种锁实现的,其中最重要的是行锁表锁,行锁是以行记录为粒度进行加锁,行锁仅针对索引列(包括主键,唯一索引,普通索引),表锁是以表为粒度进行加锁,针对普通列。

  版本控制是以更新的事务号作为"版本号",以链表的方式保存该行的历史记录,事务可以通过事务号回溯到记录"快照",解决"读-写"冲突。

Q:分库分表的使用场景,以及实现方式和策略有哪些?

A:当数据量达到一定程度,会严重影响数据库的读写性能,分库分表是常用的解决方式之一,由分为水平和垂直拆分两种方式。对于水平拆分,又可以按Hash,Range,时间,地区等策略。

Q:分库分表后存在哪些问题,如何解决这些问题?

A:主要总结了跨库查询,扩容迁移,聚合,分页排序,分组,以及跨库事务的问题。

对于跨库查询,主要有应用层join,冗余法,索引法几种处理方法。

对于扩容迁移,主要有停服扩容,数据迁移,主从同步方法。

聚合,分页排序,分组,可以使用数据库中间件解决。

跨库事务采用分布式事务,数据库中间件也提供了相关的解决方案。

互联网出版许可证编号新出网证(京)字150号| | |违法和不良信息举报电话:

是一款专业的智能手机软件维修设备,主要针对手机取证市场和手机维修市场。定位于政府相关职能部门、手机维修人员以及终端个人用户。我们想要构建一个易于使用的产品,并提供前所未有的产品售后服务。从一开始,EMT被设计成易于操作,而不需要用户的任何专业技能。产品中大多数功能都是自动完成的——您只需要根据提示按下按钮,让EMT为您完成艰苦的工作。尽管如此,如果你在产品使用过程中还是遇到了困难,你不必担心,因为我们专业的售后服务团队随时准备回答您提出的任何产品问题,以帮助你在短时间内解决问题。

EMT )制作发布,使用本网站账户不能登录使用该软件。本站暂时没有销售。

不得用于非法用途。若有违反!引起的一切法律后果由使用者自行承担。与网站无关!

通过BROM模式支持以下机型:
读信息, 刷机, 读/擦/写分区, 恢复出厂, 移除FRP锁, 移除ID锁, 分区文件管理
注:移除ID锁后如果联网反锁,需要挂VPN禁用查找手机, 小米账号等APP联网!

- 新增 各功能联机时的提示信息,包括端口名称及进端口方法等信息
- 优化 各功能联机时的端口名称
- 修改 首页 > 账号页,默认不勾选"记住密码"选项

- 优化 在线升级功能
- 修改 限制账号异地同时登录

EMT v3.20.00 发布,新增高通模块自动检测引导、新增500+高通引导文件支持众多不同品牌的设备! 


新增 高通模块自动检测引导,无须手动选择引导直接恢复出厂、移除FRP码、读/擦/写分区等功能!

新增 大量高通引导文件支持众多不同品牌的设备!

新增 高通模块自动检测引导,无须手动选择引导;

注:以上引导可能不适用于某些设备,这取决于设备芯片版本,您也可以手动选择高通引导;

- 新增 高通模块自动检测引导
- 新增 500+独特的高通引导,支持众多不同品牌的设备

新增 VIVO高通机型一键免拆恢复出厂, 移除FRP码, 解开/重锁Bootloader等功能!

通过Fastboot模式支持以下机型:

注:暂未列出机型请选择"高通通用_UBL2205"进行测试,欢迎测试后反馈!

通过EDL模式支持以下机型:

恢复出厂, 移除FRP码, 移除ID码

新增菊花模块高通骁龙662系列机型, 支持读/擦/写分区, 恢复出厂, 移除FRP码, 分区文件管理等功能!

优化 高通Firehose协议,解决部分super.img文件写入失败问题!


免费激活一加模块,支持读/擦/写分区, 恢复出厂, 移除FRP码, 分区文件管理, 暴破/移除/移除&备份/还原屏幕码, 读取用户数据等功能!

新增 VIVO模块"移除演示模式"功能,支持MTK机型一键移除演示模式!

- 新增 VIVO模块"服务"页,新增"移除演示模式"功能
- 新增 部分机型拆机短接图
- 优化 MTK模块"特殊"页"恢复出厂"功能,支持新/老款MTK机型一键恢复出厂!
- 优化 软件常见日志信息汉化


新增 小米12X, 小米NOTE10等机型, 支持刷机, 恢复出厂, 移除FRP锁等功能!

- 新增 部分机型拆机短接图
- 优化 VIVO模块"恢复出厂"功能,解决新版本"手机正在启动..."问题

通过MTK刷机模式支持以下机型:
读信息, 刷机, 读/擦/写分区, 恢复出厂, 移除FRP锁, 移除ID锁, 分区文件管理
注:移除ID锁后如果联网反锁,需要挂VPN禁用查找手机, 小米账号等APP联网!

通过MTK刷机模式支持以下机型:
读信息, 刷机, 读/擦/写分区, 恢复出厂, 移除FRP锁, 移除ID锁, 分区文件管理
注:移除ID锁后如果联网反锁,需要挂VPN禁用查找手机, 小米账号等APP联网!


更新 MTK模块(支持到天玑1200),支持一键免授权/免扣点刷机, 授权服务, 恢复出厂, 移除FRP锁, 解锁/重锁Bootloader等!

需要授权服务 (支持查找关闭)
通过EDL模式支持以下机型:
读信息, 刷机, 读/擦/写分区, 恢复出厂, 移除FRP锁, 分区文件管理

- 新增 部分机型拆机短接图
- 修改 各模块"查看设备信息"和"分区文件管理"功能移动到工具页
- 修改 各模块"解锁"页名改为"保资料"
- 修复 小米模块高通"授权服务"功能
- 修复 华为模块恢复出厂问题
- 修复 安卓模块读分区问题

关于MTK模块"授权服务"功能说明:
1).操作方法:平台点授权服务,手机关机状态按住音量上键和音量下键,再连接USB线;
2).功能作用:授权服务后通过手动选择引导和Scatter文件,支持解锁/刷机等功能;

新增 红米10/10 PRIME等机型,支持免授权刷机, 恢复出厂, 移除FRP锁, 移除ID锁等功能!

新增 华为荣耀50/50 PRO等机型,支持恢复出厂, 移除FRP锁等功能!

通过MTK刷机模式支持以下机型:
读信息, 刷机, 读/擦/写分区, 恢复出厂, 移除FRP锁, 移除ID锁, 分区文件管理
注:移除ID锁后如果联网反锁,需要挂VPN禁用查找手机, 小米账号等APP联网!

- 新增 部分机型拆机短接图
- 修复 华为模块恢复出厂问题
- 修复 华为模块读取分区表问题


免费激活华为模块,支持(高通系列)读信息, 读/擦/写分区, 恢复出厂, 移除FRP锁, 分区文件管理, 暴破/移除/移除&备份/还原屏幕锁, 禁用/启用屏幕锁, 读取用户数据等功能!

新增 MTK模块"移除FRP锁"新方案,解决各模块MTK机型移除FRP锁问题!

新增 红米NOTE10_4G等机型,支持免授权/不扣点刷机, 移除FRP锁, 移除ID锁等功能!

免授权/不扣点 (支持查找开启/关闭)
通过EDL模式支持以下机型:
读信息, 刷机, 读/擦/写分区, 恢复出厂, 移除FRP锁, 移除ID锁, 分区文件管理

- 新增 移除FRP锁新方案,解决各模块MTK机型移除FRP锁问题


新增  小米移除ID锁新方案,解决小米高版本移除ID锁后无WiFi/基带未知问题!

- 新增 各模块"恢复出厂(META)"解锁功能
- 新增 部分机型拆机短接图
- 优化 软件常见日志信息汉化
- 优化 小米移除ID锁方案,解决小米高版本移除ID锁后无WiFi/基带未知问题

全球首创!新增 VIVO IQOO NEO 5活力版等机型,支持免授权/不扣点恢复出厂, 移除FRP锁, 移除ID锁等功能!

通过MTK刷机模式支持以下机型:
读信息, 刷机, 读/擦/写分区, 恢复出厂, 移除FRP锁, 移除ID锁, 分区文件管理
注:移除ID锁后如果联网反锁,需要挂VPN禁用查找手机, 小米账号等APP联网!

- 新增 各模块保资料解锁相关功能操作前提示信息
- 新增 部分机型拆机短接图
- 优化 软件常见日志信息汉化

关于MTK模块"授权服务"功能说明:
1).操作方法:平台点授权服务,手机关机状态按住音量上键和音量下键,再连接USB线;
2).功能作用:授权服务后通过手动选择引导和Scatter文件,支持解锁/刷机等功能;

全球首创!新增红米6, 红米6A, 小米PLAY保资料解锁,支持到MIUI11版本!

通过MTK刷机模式支持以下机型:
读信息, 刷机, 读/擦/写分区, 恢复出厂, 移除ID锁, 分区文件管理
注:移除ID锁后如果联网反锁,需要挂VPN禁用查找手机, 小米账号等APP联网!

关于MTK模块"授权服务"功能说明:
1).操作方法:平台点授权服务,手机关机状态按住音量上键和音量下键,再连接USB线;
2).功能作用:授权服务后通过手动选择引导和Scatter文件,支持解锁/刷机等功能;

全球首创!新增小米(高通系列)免VPN/免解BL锁/免刷资料包移除ID锁新方案,支持MIUI8,9,10,11,12版本,移除ID锁后可恢复出厂/可重启设备!

关于VIVO新款保资料解锁功能说明:
1).保资料解锁功能支持VIVO(高通系列)安卓9及以下版本机型!
2).保资料解锁功能默认未开启,需要联系技术人员!

关于VIVO新款保资料解锁功能说明:
1).保资料解锁功能支持VIVO(高通系列)安卓9及以下版本机型!
2).保资料解锁功能默认未开启,需要联系技术人员!

1.优化软件保护机制后,相关错误提示的解决方法:
错误提示:检测到调试软件...请卸载 "XXX" 后继续...
解决方法:请到控制面板,卸载"XXX"软件,然后重启电脑
错误提示:检测到监听驱动...请卸载 "XXX" 后继续...

1.优化软件保护机制后,相关错误提示的解决方法:
错误提示:检测到调试软件...请卸载 "XXX" 后继续...
解决方法:请到控制面板,卸载"XXX"软件,然后重启电脑
错误提示:检测到监听驱动...请卸载 "XXX" 后继续...

1.优化软件保护机制后,相关错误提示的解决方法:
错误提示:检测到调试软件...请卸载 "XXX" 后继续...
解决方法:请到控制面板,卸载该软件,然后重启电脑
错误提示:检测到监听驱动...请卸载 "XXX" 后继续...

1.优化软件保护机制后,相关错误提示的解决方法:
错误提示:检测到调试软件...请卸载 "XXX" 后继续...
解决方法:请到控制面板,卸载该软件,然后重启电脑
错误提示:检测到监听驱动...请卸载 "XXX" 后继续...

新增 联想模块,支持读信息,刷机,读/擦/写分区,恢复出厂,移除FRP锁,移除ID锁,分区文件管理,暴破/移除/移除&备份/还原屏幕锁,读取用户数据等功能!
新增 小米10T/10T PRO, 小米10至尊纪念版等机型,支持刷机/恢复出厂/移除FRP锁/分区文件管理等功能!

- 优化 软件保护机制
- 优化 高通Sahara协议写分区速度
- 优化 小米高通授权服务功能

1.优化软件保护机制后,相关错误提示的解决方法:
错误提示:检测到调试软件...请卸载 "XXX" 后继续...
解决方法:请到控制面板,卸载该软件,然后重启电脑
错误提示:检测到监听驱动...请卸载 "XXX" 后继续...

- 保资料恢复出厂 (针对VIVO机型)

- 优化 软件版本管理
- 优化 MTK模块写分区操作
- 修复 编程器模块Window7无法枚举设备问题

新增(ISP/USB)编程器模块免费激活,包括小米, OPPO, VIVO, 锤子, 真我, 联想, 美图, 高通, 联发科等品牌,支持读信息、恢复出厂、移除FRP锁、读/擦/写分区、分区文件管理等功能!
全球首创,新增黑鲨3S/3(8+128)/HELO机型,支持刷机、读/擦/写分区、恢复出厂、移除FRP、移除ID锁、分区文件管理等!
新增VIVO V15 PRO/V17/V19 NEO/Y17机型,支持读信息、刷机、读/擦/写分区、恢复出厂、分区文件管理等功能!

- 分区文件管理 (支持联机导出/重命名/擦除/替换/删除未加密EXT4分区的文件及目录)

通过USB线支持以下机型
读信息, 刷机, 读/擦/写分区, 恢复出厂, 分区文件管理, 禁用/启用屏幕锁

关于编程器模块相关功能说明:
1).支持编程器类型:支持通用的EMMC ISP/USB编程器
2).分区文件管理:联机管理未加密EXT4分区的文件及目录,支持导出,重命名,擦除,替换,删除等操作


全球首创,新增黑鲨3PRO/3/2PRO/2机型,支持刷机,读/擦/写分区,恢复出厂,移除FRP,移除ID锁,分区文件管理等!
新增,加入小米模块"移除ID锁"按钮,支持一键移除账户锁!

> 修改:优化软件操作流程

* 关于刷机时"跳过安全分区"和"跳过数据分区"功能说明:
1).跳过安全分区:刷机时跳过NVM等分区,防止误写分区导致串号丢失的问题
2).跳过数据分区:刷机时跳过USERDATA等分区,防止误写分区导致用户数据丢失的问题


全球首创,VIVO高版本(6.x/8.x)恢复出厂功能,解决NEX等机型高版本恢复出厂失效问题!
新增,加入OPPO/VIVO/锤子模块"移除ID锁"按钮,支持一键移除账户锁!

> 新增:设置页新增MTK模块版本指定功能,优化MTK通讯兼容性问题

> 修改:调整部分"测试免授权"机型为"免授权"

> 修改:调整部分"测试免授权"机型为"免授权"

* VIVO高版本(6.x/8.x)恢复出厂后,如果无法正常开机请手动进入Recovery模式后双清即可!


新增,加入MTK新加密芯片(MT65,等),支持刷机,读/擦/写分区,恢复出厂和分区文件管理等功能!

> 新增:加入MTK新加密芯片(MT65,等),支持刷机,读/擦/写分区,恢复出厂和分区文件管理等功能
> 修改:优化高通SAHARA协议,增加"需要授权服务"提示

> 修改:优化禁用/启用屏幕锁功能
> 修改:关闭部分"测试免授权"机型
> 修改:移除FRP锁"停止"按钮位置

> 修改:优化禁用应用锁功能
> 修改:移除FRP锁"停止"按钮位置

> 新增:VIVO模块(MTK系列)刷机功能,支持跳过安全分区和跳过数据分区刷机
- 跳过安全分区:刷机时跳过NVM等分区,防止误写分区导致串号丢失的问题
- 跳过数据分区:刷机时跳过USERDATA等分区,防止误写分区导致用户数据丢失的问题

> 修改:优化部分高通"新加密"机型恢复出厂功能
> 修改:调整部分"测试免授权"机型为"免授权"
> 修改:移除FRP锁"停止"按钮位置

> 修改:移除FRP锁"停止"按钮位置

> 新增:MTK模块刷机功能,支持跳过安全分区和跳过数据分区刷机
- 跳过安全分区:刷机时跳过NVM等分区,防止误写分区导致串号丢失的问题
- 跳过数据分区:刷机时跳过USERDATA等分区,防止误写分区导致用户数据丢失的问题

> 修改:优化小米授权功能


新增 小米黑鲨2,黑鲨2PRO机型,支持恢复出厂/移除FRP锁/分区文件管理等功能!
新增 VIVO机型,支持Z3,NEX,X27,Z5等机型恢复出厂等功能,支持修复解锁后导致不开机的问题!
新增 锤子模块,支持刷机/恢复出厂/移除FRP锁/分区文件管理/保资料解锁以及读取用户数据等功能!

> 修改:优化各模块高通Sahara协议刷机功能
> 修改:优化部分模块读信息功能
> 修改:拆机短接图文件不存在时提示信息

> 修改:调整小米模块(高通系列)授权服务价格
- 授权服务价格由原来的10点调整为8点/次
- 授权服务功能未默认开启,需要授权服务的请联系技术人员


新增 OPPO模块通过ADB禁用应用锁功能,支持OPPO最新机型保资料解应用锁!
新增 小米/OPPO/VIVO模块机型扩展信息显示功能!

> 新增:小米/OPPO/VIVO模块机型扩展信息显示功能
> 新增:更新页增加论坛链接
> 修改:优化软件版本管理
> 修改:调整授权版本和更新日志显示位置
> 修改:优化各模块(高通/MTK协议)刷机时跳过数据分区功能

> 修改:修复小米移除FRP锁问题

* OPPO模块禁用应用锁(ADB)操作流程:
1).手机开启USB调试,连接电脑 (安装驱动)


新增 OPPO/VIVO模块(高通)刷机功能,支持跳过安全分区和跳过数据分区刷机!
新增 高通SDM845/855/710/712等芯片支持,支持非授权机型读/擦/写分区等操作!

> 修改:优化高通Sahara协议,解决擦小分区报错的问题
> 修改:优化高通/MTK模块刷机时跳过数据分区功能
> 修改:各模块"屏幕锁"更名为"解锁"页名

> 新增:小米模块通过"标贴型号"检索机型,查看设备信息时显示"标贴型号"信息
> 修改:小米模块刷机页,未选择文件写分区时增加提示信息
> 修改:解决部分机型禁用/启用屏幕锁问题 (红米GO,A1等)

> 新增:OPPO模块(高通)刷机功能,支持跳过安全分区和跳过数据分区刷机
- 跳过安全分区:刷机时跳过NVM等分区,防止误写分区导致串号丢失的问题
- 跳过数据分区:刷机时跳过USERDATA等分区,防止误写分区导致用户数据丢失的问题

> 新增:OPPO模块通过"标贴型号"检索机型,查看设备信息时显示"标贴型号"信息
> 修改:OPPO模块刷机页,未选择文件写分区时增加提示信息

> 新增:VIVO模块(高通)刷机功能,支持跳过安全分区和跳过数据分区刷机
- 跳过安全分区:刷机时跳过NVM等分区,防止误写分区导致串号丢失的问题
- 跳过数据分区:刷机时跳过USERDATA等分区,防止误写分区导致用户数据丢失的问题

> 新增:高通模块恢复出厂
> 新增:高通模块移除FRP锁


新增 小米模块(高通系列)授权服务功能,支持授权机型刷机/解锁/保资料等!

* 小米授权功能目前未默认开启,需要授权服务的请联系技术人员


新增 小米模块(Firehose协议)刷机功能,支持跳过安全分区和跳过数据分区刷机!

> 修改:各模块"刷机"页移到"服务"页后面
> 修改:各模块"刷机"页面排版和显示优化

> 新增:小米模块(Firehose协议)刷机功能,支持跳过安全分区和跳过数据分区刷机
- 跳过安全分区:刷机时跳过NVM等分区,防止误写分区导致串号丢失的问题
- 跳过数据分区:刷机时跳过USERDATA等分区,防止误写分区导致用户数据丢失的问题

> 修改:优化小米禁用/启用屏幕锁功能


!!! 警告:请勿使用第三方软件调试本软件,将会导致您账号永久封号 !!!

新增 高通模块(Firehose协议)刷机功能,支持跳过安全分区和跳过数据分区刷机!
优化 各模块高通Firehose协议,解决部分机型无法识别字库类型导致失败的问题!

> 新增:首页/账户页广告位,用于推送软件相关教程/实例/通知等信息
> 修复:各模块高通Firehose协议,解决部分机型无法识别字库类型导致失败的问题
> 修复:各模块"分区镜像"更名为"刷机"页名,原有功能读/擦/写分区操作方法不变

> 修复:VIVO模块(高通/MTK协议)移除FRP锁功能,解决移除FRP锁报错问题

> 新增:高通模块(Firehose协议)刷机功能,支持跳过安全分区和跳过数据分区刷机
- 跳过安全分区:刷机时跳过NVM等分区,防止误写分区导致串号丢失的问题
- 跳过数据分区:刷机时跳过USERDATA等分区,防止误写分区导致用户数据丢失的问题

> 新增:指定字库类型(eMMC/UFS)通讯,解决部分机型无法识别字库类型导致失败的问题
- 字库类型默认为"自动"可以兼容绝大部分机型,仅当无法通讯时再手动指定字库类型后再通讯


新增小米/OPPO/VIVO模块(高通/MTK协议)恢复出厂,不丢系统APK/无须双清!
优化小米禁用/启用屏幕锁功能,支持小米MIUI11.0.x保资料解屏幕锁!

> 新增 小米模块(高通/MTK协议)恢复出厂功能
> 新增 小米恢复出厂(Sideload)操作后自动重启功能
> 新增 小米机型识别(Sideload)操作后自动重启功能

> 增加 用户数据浏览器窗口语言包
> 优化 安卓模块将"读信息"和"读信息(Fastboot)"功能移到服务页
> 修复 部分文件无法在线升级的问题

* 新增的恢复出厂功能,恢复出厂后手机不会丢失系统自带的APK,无须双清解决开机定屏问题!


> 优化 软件账号登录接口
> 修复 分区文件管理语言包问题


新增分区文件管理(PFM)功能,支持EXT4分区联机导出、重命名、擦除、替换、删除文件等功能,主要用于保资料解屏幕锁、账户锁、隐私锁、应用锁、以及浏览/备份用户数据等!

> 新增 小米模块(高通/MTK协议)分区文件管理功能
> 新增 小米模块拆机短接图

> 新增 高通模块分区文件管理功能

> 优化 小米模块将读信息、查看设备信息、恢复出厂(Sideload)功能移到服务页
> 优化 OPPO模块将读信息、查看设备信息功能移到服务页
> 优化 VIVO模块将读信息、查看设备信息功能移到服务页
> 优化 高通模块将读信息功能移到服务页
> 优化 MTK模块将读信息功能移到服务页

* 新增的VIVO待测试机型,请联系我们技术人员进行测试


> 修复 软件及在线升级工具乱码问题
> 修复 部分文件无法在线升级的问题

* 由于更新了在线升级工具(AutoUpdate.exe),请执行两次"检查更新"完成升级!


> 优化 MTK协议大分区擦分区功能


> 修复 高通模块(9008)移除/备份屏幕锁问题
> 优化 高通/MTK模块禁用/启用屏幕锁功能
> 优化 MTK模块读取用户数据功能进度条显示问题


> 优化 读取用户数据功能(高通/MTK接口)

我要回帖

更多关于 vivoy31s应用加密密码忘了怎么办 的文章

 

随机推荐