三星s10刷android原生,【极光ROM】-【三星S10E/S10/S10+ G97XX-9820】-【V12.0 Android-Q-TD1】...

● 支持机型:

● S10E(G970F/G970FD/G970N)

● S10(G973F/G973FD/G973N)

● S10+(G975F/G975FD/G975N)

主要更新内容:

1、基于G975F官方最新安卓Q底包G975FXXS5CTD1制作。

2、所有APP升级至官方最新版本。

3、修正单击HOME稍有延迟问题(如果在开启自定义双击HOME键功能后将会产生延迟)。

4、主题商店壁纸可截图。

5、更换Magisk Manager为Canary版本,更加美观。

6、Magisk模块新增重置Magisk环境功能,如果手工双清或无环境情况下可以使用本功能。

7、修复三星账户备份恢复无法处理通话记录问题。

8、修复黑名单短信无法拦截问题。

9、新增GMS断流开关,打开GMS后默认开启,避免断流。

刷机前注意事项

1、先安装手机驱动,请在论坛或百度上先正常安装驱动后才可以继续下面的步骤。

2、请先开启开发者选项中的OEM解锁选项(如果有)。

3、请确认您的手机没有RMM或是KG锁,有的话是无法刷机的。

4、请先退出手机上的三星帐户,GOOGLE帐户。

刷机工具

百度网盘:

pan.baidu.com/s/12juQbHeWSBXz6tu27gwMWw 提取码:048g。

刷机工具中包括以下文件:

三星驱动:SAMSUNG_USB_Driver_for_Mobile_Phones_1.7.23.exe。

文件MD5校验工具:文件校验工具.exe。

最新ODIN:Odin3-v3.14.1.zip。。

S10E TWRP:AuroraROM_TWRP_3.3.19_G970X_Stable.tar。

S10 TWRP:AuroraROM_TWRP_3.3.19_G973X_Stable.tar。

S10+ TWRP:AuroraROM_TWRP_3.3.19_G975X_Stable.tar。

[关于TWRP REC]

如果当前为官方ROM请在刷完TWRP后重启瞬间马上的按住BIX键+电源+音量上直接进入。

[关于DATA分区解密]

DATA分区解密后所有手机内置存储上所有数据和文件都会丢失,请先备份重要数据至电脑或外置卡上。

[开启GOOGLE框架并重启后不停GOOGLE报错]

请在智能管理器应用程序权限管理中位置信息(显示系统应用)中授权GOOGLE组件访问权限。

[相机原始设置中的快速启用(双击)相机不见了]

请在极光设置增强设置的自定义按键功能中重新定义双击电源键功能即可。

首次刷机流程:

1、数据线连接电脑后,重启开机长按BIXBY+电源+音量下键进入ODIN模式,使用ODIN刷入TWRP_Recovery,刷完重启时请马上按住BIXBY+电源+音量上键,手不要松开,直到完全进入TWRP_Recovery。

2、进入REC后系统会提示DATA分区加密,直接滑动滑块。

3、解密DATA分区(此操作会让手机内置存储上的数据全部丢失!):点清除->格式化Data分区->输入"yes"确定。

4、通过以下方式:1、将ZIP包复制到U盘,然后OTG接入手机(如果可以的话)2、电脑上通过ADB命令将刷机文件推送至手机内置存储(与复制效果相同),命令行为:adb push xxxxx.zip/sdcard。

5、点安装,接下来选择好之前下载好的ROMZIP文件(如果是SD卡或OTG的U盘请先手动选择存储位置),再向右滑动滑块开始刷机流程。

6、刷机完成后会手机自动重启。

常规刷机流程:

1、请确认机器上已经刷入TWRP或其它第三方RECOVERY。

2、将ROM及需要的补丁文件下载之后放入内置卡或SD卡上。

3、开机时同时按住电源+BixBy+音量上键,不要松开,直到进入Recovery。

4、确认一下recovery是不是(TeamWinRecoveryProject)或是其它非官方Recovery,下面的步骤以TWRP为例。

5、点Wipe按钮,再点AdvancedWipe按钮,选中DalvikCache、System、Data和Cache,注意,这里不能选InternalStorage(内置SD卡)和SDCard(外置SD卡),当然,除非你不想要这些数据可以一并选上。最后滑动下方的滑块来清空数据。

6、按两次返回键返回主界面,点Install按钮。点击上方的Storage来选择你将ROM的保存位置,如果是外置卡请选择MicroSDCard(xxxMB),点OK,接下来,选择Aurora_**.zip,接下来滑动下方滑块刷入,完成后如果有需要补丁的机油可以在这里直接按返回键再次刷入需要的补丁文件。

7、重启机器。

极光ROM是免费且没有任何功能限制的,如果您支持我们,请在文末随意打赏或在极光设置直接进行支付宝帐号捐赠即可,捐助是对我们莫大的肯定,同时也将鼓励我们制作出更好的ROM。

下载地址:

百度网盘:pan.baidu.com/s/1rGWnJtC9NuitRagKzUY51g 提取码:ctk9

腾讯微云:share.weiyun.com/sBoTieEk

刷机文件信息:

文件名:Aurora_G97XX_9820_10.0_TD1_V12.0.zip

文件尺寸:3846449606字节(3.58G)

MD5:63BD3242EC7F4161EFEC61202F4BE0E9

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个关于语法分析的问题,我会尽力回答。首先,根据文法G[E],我们可以画出它的语法分析树,如下所示: ``` E / / | \ \ E + E * E /|\ /|\ i - E i / i / \ | i i i ``` 接下来,我们可以使用LR分析算法来构建LR分析表。具体步骤如下: 1. 构建LR(0)自动机 ``` + - * / ( ) i E $ 0 S2 S3 S4 S5 S1 S6 S7 1 R3 R3 R3 R3 2 S2 S3 S4 S5 S1 S6 S8 3 S2 S3 S4 S5 S1 S6 S9 4 S2 S3 S4 S5 S1 S6 S10 5 S2 S3 S4 S5 S1 S6 S11 6 S2 S3 S4 S5 S1 S6 S12 7 S2 S3 S4 S5 S1 S6 S13 8 S2 S3 S4 S5 S1 S6 S14 9 R1 R1 S4 R1 R1 R1 10 R2 R2 R2 S7 R2 R2 11 R3 R3 R3 R3 R3 R3 12 R4 R4 R4 R4 R4 R4 13 R5 R5 R5 R5 R5 R5 14 R6 R6 R6 R6 R6 R6 ``` 其中,S表示shift操作,R表示reduce操作,数字表示下一个状态的编号,空表示无效操作。例如,在状态0遇到+,应该将它shift到状态2。 2. 构建LR分析表 ``` + - * / ( ) i E $ 0 S2 S3 S4 S5 S1 S6 S7 1 R3 R3 R3 R3 2 S2 S3 S4 S5 S1 S6 S8 3 S2 S3 S4 S5 S1 S6 S9 4 S2 S3 S4 S5 S1 S6 S10 5 S2 S3 S4 S5 S1 S6 S11 6 S2 S3 S4 S5 S1 S6 S12 7 S2 S3 S4 S5 S1 S6 S13 8 S2 S3 S4 S5 S1 S6 S14 9 R1 R1 S4 R1 R1 R1 10 R2 R2 R2 S7 R2 R2 11 R3 R3 R3 R3 R3 R3 12 R4 R4 R4 R4 R4 R4 13 R5 R5 R5 R5 R5 R5 14 R6 R6 R6 R6 R6 R6 ``` 其中,每个状态对应一行,每个终结符对应一列,每个格子存储一个操作。例如,表格中第2行第1列的S2表示:在状态1遇到+,应该将它shift到状态2。 3. 编写语法分析器 最后,我们可以使用C++来实现LR语法分析器。具体实现方式有很多,这里提供一种基于栈的实现方法: ``` #include <iostream> #include <stack> #include <unordered_map> using namespace std; // LR分析表 const unordered_map<string, unordered_map<string, string>> lr_table = { {"0", {{"+", "S2"}, {"-", "S3"}, {"(", "S1"}, {"i", "S6"}}}, {"1", {{"$", "accept"}}}, {"2", {{"+", "S2"}, {"-", "S3"}, {"*", "S4"}, {"/", "S5"}, {")", "S7"}, {"$", "R3"}}}, {"3", {{"+", "S2"}, {"-", "S3"}, {"*", "S4"}, {"/", "S5"}, {")", "S8"}, {"$", "R3"}}}, {"4", {{"+", "R1"}, {"-", "R1"}, {"*", "S4"}, {"/", "S5"}, {")", "R1"}, {"$", "R1"}}}, {"5", {{"+", "R2"}, {"-", "R2"}, {"*", "R2"}, {"/", "R2"}, {")", "R2"}, {"$", "R2"}}}, {"6", {{"+", "R6"}, {"-", "R6"}, {"*", "R6"}, {"/", "R6"}, {")", "R6"}, {"$", "R6"}}}, {"7", {{"+", "R4"}, {"-", "R4"}, {"*", "R4"}, {"/", "R4"}, {")", "R4"}, {"$", "R4"}}}, {"8", {{"+", "R5"}, {"-", "R5"}, {"*", "R5"}, {"/", "R5"}, {")", "R5"}, {"$", "R5"}}}, }; // LR分析器 bool lr_parser(const string& input) { stack<string> state_stack; stack<string> symbol_stack; state_stack.push("0"); symbol_stack.push("$"); size_t pos = 0; while (!state_stack.empty()) { string state = state_stack.top(); string symbol = input.substr(pos, 1); if (lr_table.count(state) == 0 || lr_table.at(state).count(symbol) == 0) { cout << "Error: invalid input at position " << pos << endl; return false; } string action = lr_table.at(state).at(symbol); if (action == "accept") { cout << "Accept" << endl; return true; } if (action[0] == 'S') { state_stack.push(action.substr(1)); symbol_stack.push(symbol); pos++; } else if (action[0] == 'R') { int rule = stoi(action.substr(1)); int len = (rule == 6) ? 1 : 3; for (int i = 0; i < len; i++) { state_stack.pop(); symbol_stack.pop(); } string new_state = state_stack.top(); string new_symbol = "E"; if (lr_table.count(new_state) == 0 || lr_table.at(new_state).count(new_symbol) == 0) { cout << "Error: invalid grammar" << endl; return false; } state_stack.push(lr_table.at(new_state).at(new_symbol)); symbol_stack.push(new_symbol); } else { cout << "Error: invalid action " << action << endl; return false; } } cout << "Error: invalid input" << endl; return false; } // 测试 int main() { string input; cout << "Input an expression: "; getline(cin, input); input += '$'; lr_parser(input); return 0; } ``` 这个分析器可以接收一个表达式作为输入,并判断它是否符合文法G[E]的规则。你可以将它复制到本地环境中运行,并根据需要进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值