当前位置: 首页 > news >正文

小米note pro一代(leo)线刷、twrp、magisk、TODO: android源码编译

本文主要说android5

整体思路

android 5.1 + twrp + magisk + Zygisk(Riru) + Dreamland(xposed)

Riru不支持android5.1, 因此只能选择Zygisk : 如果你正在使用 Android 5,你必须使用 Zygisk 因为 Riru 并不支持 Android 5.

基于magisk之上的xposed 其中提到的 作者修改的xposed-framework下载链接XposedInstaller 3.1.5 已经失效了 , 改用独立的xposed, 但是独立的xposed隐藏性差?

寄生于magisk下的xposed: Android Lollipop (5.1, sdk22): original Xposed (ART) (Magisk Systemless-ly) / XposedInstaller_3.1.5下载网页/xposedinstaller_3-1-5-Magisk Systemless-ly.apk

放弃EdXposed 因为: EdXposed只能支持supports Android 8.0 ~ 11 不支持android5.1

android5刷机环境准备

腾讯androidSdk网页/platform-tools_r23-linux.zip

cd /app5/mi_leo/wget https://mirrors.cloud.tencent.com/AndroidSDK/platform-tools_r23-linux.zip
unzip platform-tools_r23-linux.zip -d .
#/app5/mi_leo/platform-tools/fastbootPATH_BASE=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH=/app5/mi_leo/platform-tools:$PATH_BASE
which adb  # == /app5/mi_leo/platform-tools/adb
which fastboot # == /app5/mi_leo/platform-tools/fastboot

线刷

线刷包下载

unbrick_rom_url_slow=http://bigota.d.miui.com/6.1.7/leo_images_6.1.7_20151221.0000.11_5.1_cn_02396b5585.tgz
#下载很慢的url, 才几十KBunbrick_rom_url_fast=${unbrick_rom_url_slow/bigota.d.miui.com/bkt-sgp-miui-ota-update-alisgp.oss-ap-southeast-1.aliyuncs.com}
#unbrick_rom_url_fast==http://bkt-sgp-miui-ota-update-alisgp.oss-ap-southeast-1.aliyuncs.com/6.1.7/leo_images_6.1.7_20151221.0000.11_5.1_cn_02396b5585.tgz
#更换域名后 下载速度正常了axel -n 5 $unbrick_rom_url_fast

刷机步骤

  1. 解压线刷包: tar -xf leo_images_6.1.7_20151221.0000.11_5.1_cn_02396b5585.tgz

  2. 手机进入fastboot模式: adb reboot bootloader 或者 手机彻底关机情况下, 先按住音量下不放手 、 再按开机键

  3. 运行刷机脚本: cd leo_images_6.1.7_20151221.0000.11_5.1_cn/ && bash -x flash_all.sh

  4. 刷完后, 自动重启,进入android首次运行设置

观看:版本

观: 版本

进入android ,设置中看到 版本为

  • 型号: MI NOTE PRO
  • Android版本 : 5.1.1 LMY47V
  • Android安全补丁程序级别 : 2016-01-01
  • MIUI版本:MIUI 7 6.1.7 | 开发版
  • 基带版本:BO.2.6.c1.2-0106_2249_5b57 e09
  • 内核版本:3.10.49-g17e0411
  • 谷歌版本号:LMY47V

猜测: LMY47V表示git分支android 5.1.1下的某个git提交

google rom 网页 中 看到 有7个设备支持Android版本5.1.1 (LMY47V), 且Android5.1.1共有3个:

  • 5.1.1 (LMY47V)
  • 5.1.1 (LMY48J)
  • 5.1.1 (LMY48N)

这说明 LMY47V表示git分支android 5.1.1下的某个git提交

twrp2.8正常启动

twrp2.8-小米leo下载: 网页leo-miui-customization…/twrp-2.8.6.0-leo-ganfan-20150613-en-custom-materialised-play-light_lightblue-theme-v287x.zip, 已上传在此

adb reboot bootloader

cd /app5/mi_leo/unzip twrp-2.8.6.0-leo-ganfan-20150613-en-custom-materialised-play-light_lightblue-theme-v287x.zip
#file twrp-2.8.6.0-leo-ganfan-20150613-en-custom-materialised-play-light_lightblue-theme-v287x.imgmd5sum  twrp-2.8.6.0-leo-ganfan-20150613-en-custom-materialised-play-light_lightblue-theme-v287x.img # == adf1cf420e48ae965906ceb8267f26aafastboot boot  twrp-2.8.6.0-leo-ganfan-20150613-en-custom-materialised-play-light_lightblue-theme-v287x.img
#downloading 'boot.img'...
#OKAY [  1.283s]
#booting...
#OKAY [  0.396s]
#finished. total time: 1.679s

警告 android5 不可安装magisk25.2或更高版本

  • android5 安装 Magisk 25.2网页/Magisk-v25.2.apk 会导致 magisk界面的模块是灰色不可用的,

  • 而 android5 安装 Magisk 23.0网页/Magisk-v23.0.apk 的 magisk界面的模块则是正常高亮可用的

此节未验证,是据此文猜测的

安装magisk-v23.0(通过twrp)

参考 lineage16-magisk27-ok.md

magisk版本列表,由此看到,Magisk支持android 5.0的的高版本 Magisk 23.0网页/Magisk-v23.0.apk 离最高版本 Magisk-v25.2.apk很近(上文已说明不用25.2的理由)

md5sum Magisk-v23.0.apk == ea450d98c25b4e09bb353e5bef8ca8a0

1. 重启手机到fastboot : adb reboot bootloader

2. fastboot启动twrp : fastboot boot twrp-2.8.6.0-leo-ganfan-20150613-en-custom-materialised-play-light_lightblue-theme-v287x.img

3. twrp界面: Advance --> 启动ADB Sideload

4. 自动提取并修改boot.imgadb sideload Magisk-v23.0.apk

5. 在twrp下重启进android: adb reboot

6.1. android下卸载上一步安装的 不完整app magisk: adb shell 'pm uninstall com.topjohnwu.magisk'

6.2. android下安装完整 magisk : adb install Magisk-v23.0.apk

Dreamland(TODO)

如果你正在使用 Android 5,你必须使用 Zygisk 因为 Riru 并不支持 Android 5.

寄生于magisk下的xposed

寄生于magisk下的xposed: Android Lollipop (5.1, sdk22): original Xposed (ART) (Magisk Systemless-ly) / XposedInstaller_3.1.5下载网页/xposedinstaller_3-1-5-Magisk Systemless-ly.apk , 已上传在此 XposedInstaller_3.1.5–Magisk_Systemless-ly.apk

独立的xposed(通过twrp)

下载 dl-xda.xposed.info/framework/sdk22/arm64/ / xposed-v89-sdk22_Android5.1_Lollipop-arm64.zip, 已上传在此xposed-v89-sdk22_Android5.1_Lollipop-arm64.zip

下载 xposed-installer-3-1-5.apk网页

1~3 和 安装magisk-v23.0(通过twrp)的 1~3 一样的

0. 在android下安装 xposed-installer-3-1-5.apk : adb install xposed-installer-3-1-5.apk

1. 重启手机到fastboot : adb reboot bootloader

2. fastboot启动twrp : fastboot boot twrp-2.8.6.0-leo-ganfan-20150613-en-custom-materialised-play-light_lightblue-theme-v287x.img

3. twrp界面: Advance --> 启动ADB Sideload

4. adb sideload xposed-v89-sdk22_Android5.1_Lollipop-arm64.zip

5. 在twrp下重启进android: adb reboot

6. 解决问题: 打开 xposed后显示未激活

若 先步骤0 再步骤4,不会出现此问题
若 错误地 先 步骤 4 再 步骤0 , 会出现此问题
在这里插入图片描述

adb shell

/sbin/su
#  readlink -f /sbin/su # == /sbin/magisk64
ls -l /data/user/0/ |grep de.robv.android.xposed.installer
#drwx--x--x u0_a111  u0_a111           2024-11-23 15:19 de.robv.android.xposed.installer
chmod 777  /data/user/0//de.robv.android.xposed.installer
#drwx--x--x u0_a111  u0_a111           2024-11-23 15:19 de.robv.android.xposed.installer
reboot

很奇怪,加权限后 权限没变化, 但是重启后 ,xposed界面的未激活 变成 已激活了

在这里插入图片描述

参考 : Xposed框架90版本已安装,但尚未激活。

7. (报错 )三条线–>模块 报错 未找到Xposed模块

leo android源码 最低分支 android7.1 但又说 支持android 5.0.2 到 7.0

xiaomi-classic-dev组织下 搜索 xiaomi_leo / CyanogenMod 14.1==android7.1 == android_device_xiaomi_leo.git/cm-14.1

小米note pro 第一代 顶配版(leo) 找不到 CyanogenMod 12.1==android5.1

但是 android_device_xiaomi_leo.git/mkq-mr1/README.md却在说 Shipped Android Version : 5.0.2 up to 7.0 ,这意思是说 该仓库支持的版本范围为 android 5.0.2 up to 7.0 ?

寻找xiaomi_leo内核源码仓库、厂商vendor仓库

xiaomi-classic-dev(找到xiaomi_leo)

xiaomi-classic-dev组织下 搜索 xiaomi_leo

  • android_device_xiaomi_leo.git
  • android_kernel_xiaomi_leo.git
  • android_vendor_xiaomi_leo.git
  • android_device_xiaomi_leo_old.git
  • android_kernel_xiaomi_leo_old.git
  • android_vendor_xiaomi_leo_old.git

但是 这些仓库最低android版本为 CyanogenMod 14.1==android7.1 == android_device_xiaomi_leo.git/cm-14.1

CyanogenMod(无xiaomi_leo)

CyanogenMod组织下 搜索leo 只能获得 htc leo 手机: android_device_htc_leo.git, 却没有小米 note pro一代 顶配版 (leo)

CyanogenMod组织下 搜索msm8994支持以下手机, 但唯独没有xiaomi_leo

  • android_kernel_htc_msm8994
  • android_kernel_letv_msm8994
  • android_kernel_zte_msm8994
  • android_kernel_oneplus_msm8994
  • android_kernel_cyanogen_msm8994

备注

brick==砖头,

unbrick非砖头救砖头

edle dlemergency download==紧急 下载

(可选)twrp寻找过程

代号为leo的手机有两个: 小米note pro一代 顶配版htc hd2

twrp/设备们/搜索leo/htc hd2(leo)/twrp leo

google搜索twrp leo 获得的是 htchd2==twrp leo

twrp没有收录 小米note pro一代 顶配版

twrp/小米没有leo

twrp 小米note pro一代 顶配版

xiaomitools/TWRP-20180729-3.2.3.0-leo.zip

twrp3.x报错(因twrp3.1至少需要android7.1)

adb reboot bootloader

cd /app5/mi_leo/unzip TWRP-20180729-3.2.3.0-leo.zip
#file TWRP-20180729-3.2.3.0-leo.imgfastboot boot  TWRP-20180729-3.2.3.0-leo.img
#Sending 'boot.img' (29668 KB)                      OKAY [  0.806s]
#Booting                                            FAILED (remote: 'dtb not found')
#fastboot: error: Command failed

报错FAILED (remote: 'dtb not found')原因是 twrp3.x至少需要android7.0, 而这里是android5.1

报错原因: TWRP版本和Android版本需要一定的对应关系

从此文复制一段话:

2.TWRP版本和Android版本需要一定的对应关系。比如刷入Android 8.1,必须要TWRP Recovery版本≥3.2,低于3.2版本的TWRP刷入Android 8.1+,会卡在机型验证上报错。有些机型3.2.x版本的TWRP Recovery只可用于刷入Android 8.1+,刷入7.1则需要3.1.x版本的TWRP Recovery。而有些则也可以用3.2.x版本的TWRP Recovery刷入Android 7.1、6.0或更老版本。

(可选)通过高通紧急下载edl串口端口9008刷机

android5刷机环境准备

腾讯androidSdk网页/platform-tools_r23-windows.zip

msys2@win10

#/app5==/g
cd /g/mi_leo/wget https://mirrors.cloud.tencent.com/AndroidSDK/platform-tools_r23-windows.zip
unzip platform-tools_r23-windows.zip -d .
#/g/mi_leo/platform-tools/fastboot
mv platform-tools  platform-tools-windows
#/g/mi_leo/platform-tools-windows/fastbootPATH_BASE=/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem
export PATH=/g/mi_leo/platform-tools-windows:$PATH_BASE
which adb  # == /g/mi_leo/platform-tools-windows/adb
which fastboot # == /g/mi_leo/platform-tools-windows/fastboot

刷机工具MiFlash*.exe下载、安装

404

同样替换域名后的MiFlash20150601_win10.exe下载返回404

unbrick_tool_url_slow=http://bigota.d.miui.com/tools/MiFlash20150601_win10.exe
unbrick_tool_url_fast=${unbrick_tool_url_slow/bigota.d.miui.com/bkt-sgp-miui-ota-update-alisgp.oss-ap-southeast-1.aliyuncs.com}
#unbrick_tool_url_fast==http://bkt-sgp-miui-ota-update-alisgp.oss-ap-southeast-1.aliyuncs.com/tools/MiFlash20150601_win10.exe
#替换后的地址说不存在404了
#axel -n 5 $unbrick_tool_url_fast

正常

MiFlash20150601_win10.exe下载网页

安装

安装MiFlash20150601_win10.exed:\MiFlash20150601_win10

刷机步骤

  1. 手机进入fastboot模式: adb reboot bootloader 或者 手机彻底关机情况下, 先按住音量下不放手 、 再按开机键

  2. 手机进入高通紧急下载模式(串口9008端口): fastboot oem edl

  3. 解压leo_images_6.1.7_20151221.0000.11_5.1_cn_02396b5585.tgz

  4. 运行D:\MiFlash20150601_win10\MiFlash.exe 选择 解压后的目录leo_images_6.1.7_20151221.0000.11_5.1_cn_02396b5585 即开始刷机

在这里插入图片描述

参考

CyanogenMod对照android版本

小米 note pro 顶配版(leo) : 高通 骁龙810 == MSM8994

htc G9 , CyanogenMod/gingerbread(可能是android2.x) 编译

htc G9(Aria) : 高通 MSM7227, 出厂为android2.1

CyanogenMod/android.git

小米4 : 高通骁龙810 == MSM8974AC, 出厂为android4.4, MIUI 6

小米4 ,CyanogenMod/13.0编译


nexus5刷机、解锁bootloader、magisk(root)、解包boot.img(得initrd.img、zImage)、解initrd.img得根文件系统、解zImage得vmliux

线刷包url : 小米Note顶配不解BL锁获取ROOT权限

HyperOS丨MIUI 下载速度慢?解除限速教程

MiFlash 线刷工具旧版本收集。除个别早期版本,其它需要 Windows 64 位系统环境才能使用。

2.TWRP版本和Android版本需要一定的对应关系。

相关文章:

小米note pro一代(leo)线刷、twrp、magisk、TODO: android源码编译

本文主要说android5 整体思路 android 5.1 twrp magisk Zygisk(Riru) Dreamland(xposed) Riru不支持android5.1, 因此只能选择Zygisk : 如果你正在使用 Android 5,你必须使用 Zygisk 因为 Riru 并不支持 Android 5. 基于magisk之上的xposed 其中提到的 作者…...

鸿蒙开发Hvigor插件动态生成代码

Hvigor允许开发者实现自己的插件,开发者可以定义自己的构建逻辑,并与他人共享。Hvigor主要提供了两种方式来实现插件:基于hvigorfile脚本开发插件、基于typescript项目开发。下面以基于hvigorfile脚本开发插件进行介绍。 基于hvigorfile脚本…...

使用ENSP实现静态路由

一、双路由器静态路由 1.项目拓扑 2.项目实现 (1)路由器AR1配置 进入系统试图 sys将路由器命名为R1 sysname R1进入g0/0/0接口 int g0/0/0将g0/0/0接口IP地址配置为1.1.1.1/24 ip address 1.1.1.1 24进入g0/0/1接口 int g0/0/1将g0/0/1接口IP地址配置为192.168.1.1/24 ip ad…...

Java String 字符串常用操作

一、Java String 字符串常用操作 1、替换 Java字符模板替换 public static final String temp"private {0} {1};";public static void main(String[] args) {System.out.println(MessageFormat.format(temp,"String","str"));} replaceAll替换…...

4.4 MySQL 触发器(Trigger)

触发器是一种特殊的数据库对象,在特定事件(如INSERT、UPDATE或DELETE)触发时自动执行定义好的操作。它可以帮助我们实现更高效的数据管理和业务规则的约束。 1. 简介 1.1 什么是触发器 触发器(Trigger)是由用户定义的…...

C语言——break、continue、goto

目录 一、break 二、continue 1、在while循环中 2、在for循环中 三、go to 一、break 作用是终止循环&#xff0c;在循环内遇到break直接就跳出循环。 注&#xff1a; 一个break语句只能跳出一层循环。 代码演示&#xff1a; #include<stdio.h>void test01() {for (…...

oracle数据恢复总结篇

前言:数据恢复的关键 定删除时间点&#xff1a;首先&#xff0c;需要知道是什么时间进行的删除操作。 如果不能确定具体时间点&#xff0c;可以选择尽量准确的删除数据前的时间。 oracle数据库如果使用drop指令误删除了数据应该如何恢复呢&#xff1f; 如果没有进行其他操作&…...

运维面试题.云计算面试题之四.K8S

常见的k8s运维面试题 1、简述ETCD及其特点? etcd是一个用于配置共享和服务发现的键值存储系统,能够为整个分布式集群存储关键数据,协助集群正常运转 服务端将配置信息存储在etcd中,客户端从etcd中得到配置信息,etcd监听配置信息的变化,发现配置变化通知到客户端 特点 - 安…...

el-select 和el-tree二次封装

前言 本文章是本人在开发过程中&#xff0c;遇到使用树形数据&#xff0c;动态单选或多选的需求&#xff0c;element中没有这种组件&#xff0c;故自己封装一个&#xff0c;欢迎多多指教 开发环境&#xff1a;element-UI、vue2 组件效果 单选 多选 组件引用 <treeselec…...

C++11:多线程编程

目录 线程库基本用法创建线程给线程传递参数线程分离 常见数据未定义错误传递指针或引用指向局部变量的问题传递指针或引用指向已释放的内存的问题类成员函数作为入口函数&#xff0c;类对象被提前释放智能指针来解决该问题入口函数为类的私有成员函数 互斥量死锁 lock_guard与…...

【H2O2|全栈】JS进阶知识(八)ES6(4)

目录 前言 开篇语 准备工作 浅拷贝和深拷贝 浅拷贝 概念 常见方法 弊端 案例 深拷贝 概念 常见方法 弊端 逐层拷贝 原型 构造函数 概念 形式 成员 弊端 显式原型和隐式原型 概念 形式 constructor 概念 形式 原型链 概念 形式 结束语 前言 开篇语…...

OmniDiskSweeper :一款专为 macOS 设计的磁盘使用分析工具

OmniDiskSweeper 是一款专为 macOS 设计的磁盘使用分析工具&#xff0c;由 The Omni Group 开发。它的主要目的是帮助用户可视化磁盘上的文件和文件夹&#xff0c;并找出占用大量空间的文件&#xff0c;从而帮助用户释放磁盘空间。 OmniDiskSweeper 的特点包括&#xff1a; 简…...

【什么是Redis?】

Redis&#xff1a;高性能内存数据库的深度探索 在当今这个数据驱动的世界里&#xff0c;数据库的选择直接关系到应用程序的性能、可扩展性和可靠性。在众多数据库解决方案中&#xff0c;Redis以其卓越的性能、丰富的数据结构和灵活的使用场景脱颖而出&#xff0c;成为众多开发…...

React第十六章(useLayoutEffect)

useLayoutEffect useLayoutEffect 是 React 中的一个 Hook&#xff0c;用于在浏览器重新绘制屏幕之前触发。与 useEffect 类似。 用法 useLayoutEffect(() > {// 副作用代码return () > {// 清理代码}}, [dependencies]);参数 setup&#xff1a;Effect处理函数,可以返回…...

shell 基础知识2 ---条件测试

目录 一、条件测试的基本语法 二、文件测试表达式 三、字符串测试表达式 四、整数测试表达式 五、逻辑操作符 六、实验 为了能够正确处理 Shell 程序运行过程中遇到的各种情况&#xff0c; Linux Shell 提供了一组测试运算符。 通过这些运算符&#xff0c;Shell 程序能够…...

【线程】Java线程操作

【线程】Java线程操作 一、启动线程1.1 run()和start()的区别 二、终止线程三、等待线程四、线程的状态 一、启动线程 Java中通过start()方法来启动一个线程&#xff0c;其次我们要着重理解start()和run()的区别。 1.1 run()和start()的区别 我们通过一份代码来进行观察&…...

Linux内核

Linux内核是Linux操作系统的核心部分&#xff0c;它管理着硬件资源并提供基本的服务给用户程序。以下是Linux内核的几个关键方面&#xff1a; 1. 架构&#xff1a; 单内核设计&#xff1a;Linux采用的是单内核设计&#xff0c;这意味着所有操作系统服务都在一个地址空间内运行…...

Sentinel服务保护

Sentinel是阿里巴巴开源的一款服务保护框架&#xff0c;目前已经加入SpringCloudAlibaba中。官方网站&#xff1a; home | Sentinel Sentinel 的使用可以分为两个部分: 核心库&#xff08;Jar包&#xff09;&#xff1a;不依赖任何框架/库&#xff0c;能够运行于 Java 8 及以…...

python代码制作数据集的测试和数据质量检测思路

前言 本文指的数据集为通用数据集&#xff0c;并不单是给机器学习领域使用。包含科研和工业领域需要自己制作数据集的。 首先&#xff0c;在制作大型数据集时&#xff0c;代码错误和数据问题可能会非常复杂。 前期逻辑总是简单的&#xff0c;库库一顿写&#xff0c;等排查的时…...

笔记记录 k8s-install

master节点安装: yum upgrade -y 更新系统 yum update -y 升级内核 ifconfig ens33 关闭swap swapoff -a (临时) vim /etc/fstab (永久) #/dev/mapper/cl-swap swap swap defaults 0 0 vim /etc/sysctl.conf vm.swappin…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建

【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型&#xff08;算法、数据分析、机器学习等&#xff09;不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...

云安全与网络安全:核心区别与协同作用解析

在数字化转型的浪潮中&#xff0c;云安全与网络安全作为信息安全的两大支柱&#xff0c;常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异&#xff0c;并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全&#xff1a;聚焦于保…...

Python常用模块:time、os、shutil与flask初探

一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)

旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据&#xff01;该数据集源自2025年4月发表于《地理学报》的论文成果…...