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

【漏洞修复】为了修复ARM64 Android10系统的第三方库漏洞,将ARM64 Android16的系统库直接拷贝到Android10系统如何?

直接替换系统库的风险分析

将高版本Android(如Android 16)的系统库直接拷贝到低版本系统(如Android 10)可能会导致以下问题:

  1. 符号与依赖不兼容

    • 高版本库可能依赖更高版本的NDK或Bionic libc(Android的C库),而低版本系统缺少这些符号。

    • 例如:Android 16的库可能使用pthread_mutex_clocklock(API 30+),而Android 10(API 29)无此函数,导致崩溃。

  2. 系统服务与框架差异

    • Android 16的库可能依赖新版系统服务(如SurfaceFlingerMediaCodec等),这些服务在Android 10中接口或行为不一致。

    • 例如:图形渲染库可能因HWC(硬件合成器)版本差异导致黑屏或闪退。

  3. ABI与硬件适配问题

    • 不同Android版本对ARM64指令集优化不同,直接替换可能导致性能下降或硬件功能异常。

    • 例如:NEON指令集使用差异引发崩溃。

  4. SELinux安全策略冲突

    • 高版本库可能需要新的SELinux标签或权限,而低版本策略文件未定义,导致权限拒绝(avc: denied)。

  5. 系统稳定性风险

    • 核心库(如libc.solibbinder.so)被替换可能导致系统无法启动或频繁崩溃。


推荐的安全修复方案

方案1:重新编译第三方库适配Android 10
  1. 获取源码与补丁

    • 从官方仓库下载漏洞库的源码(如zlib 1.2.13)及安全补丁。

    • 示例(以zlib为例):

      bash

      复制

      git clone https://github.com/madler/zlib.git
      git apply security_fix.patch
  2. 使用NDK独立工具链编译

    • 生成针对Android 10(API 29)的ARM64编译环境:

      bash

      复制

      $NDK_HOME/build/tools/make_standalone_toolchain.py \--arch arm64 --api 29 --install-dir=./android-29-toolchain
    • 配置并编译:

      bash

      复制

      export PATH=./android-29-toolchain/bin:$PATH
      export CC=aarch64-linux-android29-clang
      ./configure --prefix=/output/path
      make && make install
  3. 替换应用内的库文件

    • 将生成的.so文件放入应用项目的jniLibs/arm64-v8a目录,而非系统分区。

    • build.gradle中限制ABI:

      groovy

      复制

      android {defaultConfig {ndk { abiFilters "arm64-v8a" }}
      }
方案2:动态加载高版本库(需谨慎)
  1. 将高版本库打包到应用

    • 将Android 16的库文件(如libvulnerable.so)放入app/src/main/jniLibs/arm64-v8a

    • 使用dlopen动态加载库,隔离系统依赖:

      c

      复制

      void* handle = dlopen("libvulnerable.so", RTLD_LAZY);
      if (handle) {typedef void (*func_t)();func_t safe_func = (func_t)dlsym(handle, "safe_function");if (safe_func) safe_func();dlclose(handle);
      }
  2. 符号版本控制

    • 使用version_script隐藏不兼容符号:

      ld

      复制

      /* libvulnerable.map */
      LIBVULNERABLE_1.0 { global: safe_function; local: *; 
      };
    • 编译时链接脚本:

      bash

      复制

      aarch64-linux-android-clang -shared -Wl,--version-script=libvulnerable.map -o libvulnerable.so
方案3:系统级热修复(需Root权限)
  1. Magisk模块注入

    • 创建Magisk模块,将修复后的库文件覆盖到/system/lib64

    • 模块结构示例:

      复制

      /magisk_module/├── system/│   └── lib64/│       └── libvulnerable.so└── module.prop
    • 风险:可能导致系统不稳定或OTA更新失败。

  2. 使用LD_PRELOAD劫持函数

    • 编译一个修补库,通过LD_PRELOAD覆盖漏洞函数:

      c

      复制

      // patch.c
      #include <dlfcn.h>// 原始函数指针
      static void (*original_vulnerable_func)();__attribute__((constructor)) void init() {original_vulnerable_func = dlsym(RTLD_NEXT, "vulnerable_func");
      }void vulnerable_func() {// 修补后的逻辑original_vulnerable_func();log("Vulnerability patched!");
      }
    • 编译并注入:

      bash

      复制

      aarch64-linux-android-clang -shared -o libpatch.so patch.c -ldl
      export LD_PRELOAD=/path/to/libpatch.so

关键注意事项

  1. 兼容性测试

    • 使用ndk-stackaddr2line分析崩溃日志:

      bash

      复制

      adb logcat | ndk-stack -sym ./obj/local/arm64-v8a/
    • 验证库依赖:

      bash

      复制

      readelf -d libpatched.so | grep NEEDED
  2. 版本控制

    • 在库文件名中嵌入版本号(如libz_patched_1.2.13.so),避免与系统库冲突。

  3. 回滚计划

    • 保留原始库备份,通过脚本或Recovery快速恢复。


总结

方法适用场景风险等级所需权限
重新编译适配长期维护,需源码支持无特殊权限
动态加载隔离临时修复,无源码
Magisk模块替换系统级修复,需RootRoot权限
LD_PRELOAD劫持快速热修复,函数级替换应用或Root权限

建议优先级:重新编译适配 > 动态加载隔离 > LD_PRELOAD劫持 > Magisk替换。
除非万不得已,避免直接替换系统库,优先通过应用层隔离或官方补丁修复。

相关文章:

【漏洞修复】为了修复ARM64 Android10系统的第三方库漏洞,将ARM64 Android16的系统库直接拷贝到Android10系统如何?

直接替换系统库的风险分析 将高版本Android&#xff08;如Android 16&#xff09;的系统库直接拷贝到低版本系统&#xff08;如Android 10&#xff09;可能会导致以下问题&#xff1a; 符号与依赖不兼容 高版本库可能依赖更高版本的NDK或Bionic libc&#xff08;Android的C库&…...

【深度学习与实战】2.1、线性回归模型与梯度下降法先导

import numpy as np# 数据准备 X np.array([1, 2, 3]) y np.array([3, 5, 7])# 参数初始化 w0, w1 0, 0 alpha 0.1 n len(X)# 迭代10次 for epoch in range(10):# 计算预测值y_pred w1 * X w0# 计算梯度grad_w0 (1/n) * np.sum(y_pred - y)grad_w1 (1/n) * np.sum((y_…...

SQL Server 2008安装教程

目录 一.安装SQL Server 二.安装SQL Server Management Studio 三.使用SQL Server Management Studio 一.安装SQL Server 官网下载:SQL Server 下载 | Microsoft 1.选择安装中的全新安装如下图 2.功能选择 3.实例配置 4.后面一直下一步到数据库引擎配置 密码自己设置 系统…...

协作机械臂需要加安全墙吗? 安全墙 光栅 干涉区

安全墙是什么 文章目录 安全墙是什么简介1. 物理安全墙1.1 定义&#xff1a;1.2 作用机制&#xff1a;1.3 应用场景&#xff1a; 2. 虚拟安全墙2.2 定义&#xff1a;2.3 作用机制&#xff1a;2.3 应用场景&#xff1a; 3. 安全毛毯3.1 工作原理&#xff1a;3.2 特点3.3 应用场景…...

Android第六次面试总结(自定义 View与事件分发)

在 Android 中实现自定义 View 处理 1 万条数据的流畅滑动&#xff0c;需结合视图复用、按需绘制、硬件加速等核心技术。以下是具体实现方案&#xff1a; 一、核心优化策略 1. 视图复用机制&#xff08;类似 RecyclerView&#xff09; ViewHolder 模式&#xff1a;将每个数据…...

深度解读 AWS IAM:身份访问管理与安全的核心纽带

导语 在 AWS&#xff08;亚马逊云服务&#xff09;的生态体系中&#xff0c;AWS IAM&#xff08;Identity and Access Management&#xff09;犹如坚固的堡垒&#xff0c;守护着用户在云端的各类资源。它不仅是管理用户身份与访问权限的关键工具&#xff0c;更是维系 AWS 安全…...

Oracle相关的面试题

以下是150道Oracle相关的面试题&#xff0c;涵盖了Oracle的基础概念、架构、SQL与PL/SQL、性能调优、高可用性、备份与恢复、安全、分区与索引、存储与内存管理、网络与连接、版本与升级等方面&#xff0c;希望对你有所帮助。 Oracle基础概念 1. 什么是Oracle数据库&#xff1…...

DQL语句-distinct去重

MySQL | DQL语句-distinct去重 &#x1fa84;个人博客&#xff1a;https://vite.xingji.fun 查询工作岗位 select job from emp;mysql> select job from emp;----------- | job | ----------- | CLERK | | SALESMAN | | SALESMAN | | MANAGER | | SALESMAN …...

GroupDocs.Total for Java 摸索学习

继Aspose.Total for Java 全套组件的学习之后&#xff0c;发现了GroupDocs.Total系列产品的13款&#xff0c;也是花了许久的事件&#xff0c;逐个的学习摸索、深度分析、总结实践&#xff0c;掌握了它们的科学使用。 商业技术软件&#xff0c;作为技术广度学习探索使用&#x…...

⑦(ACG-网络配置)

网络配置是指对计算机网络的各种参数进行设置和调整&#xff0c;以实现网络正常运行和高效通信。网络配置包括多方面的内容&#xff0c;常见的配置包括&#xff1a; 1. IP地址设置&#xff1a;IP地址是设备在网络中的身份标识&#xff0c;设置IP地址是网络配置的基础&#xff…...

智能汽车图像及视频处理方案,支持视频智能包装能力

美摄科技的智能汽车图像及视频处理方案&#xff0c;通过深度学习算法与先进的色彩管理技术&#xff0c;能够自动调整图像中的亮度、对比度、饱和度等关键参数&#xff0c;确保在各种光线条件下&#xff0c;图像都能呈现出最接近人眼的自然色彩与细节层次。这不仅提升了驾驶者的…...

【电子通识】铅笔硬度简史:从石墨到工业标准

在工作中我们会发现有时要使用铅笔硬度计来测试材料的硬度。 比如说手机的液晶屏&#xff0c;我们可能要求要通过3H、4H等等。那么为什么会用铅笔来做硬度测试呢&#xff1f;这就要知道相关的历史了。 铅笔硬度简史&#xff1a;从石墨到工业标准 “一支铅笔&#xff0c;如何成…...

前端自动化测试(一):揭秘自动化测试秘诀

目录 [TOC](目录)前言自动化测试 VS 手动测试测试分类何为单元测试单元测试的优缺点优点缺点 测试案例测试代码 测试函数的封装实现 expect 方法实现 test 函数结语 正文开始 &#xff0c; 如果觉得文章对您有帮助&#xff0c;请帮我三连订阅&#xff0c;谢谢&#x1f496;&…...

《Python实战进阶》No37: 强化学习入门:Q-Learning 与 DQN-加餐版1 Q-Learning算法可视化

在《Python实战进阶》No37: 强化学习入门&#xff1a;Q-Learning 与 DQN 这篇文章中&#xff0c;我们介绍了Q-Learning算法走出迷宫的代码实践&#xff0c;本文加餐&#xff0c;把Q-Learning算法通过代码可视化呈现。我尝试了使用Matplotlib实现&#xff0c;但局限于Matplotli…...

将ZABBIX结合AI实现自动化运维

1. 执行摘要 评估将ZABBIX监控系统与人工智能&#xff08;AI&#xff09;相结合&#xff0c;以实现自动化IT运维的可行性。这种集成具有显著的潜力&#xff0c;能够提升IT运维的效率、可靠性和主动性。通过利用ZABBIX强大的监控和告警功能&#xff0c;以及AI在异常检测、根因分…...

Go 语言规范学习(2)

文章目录 VariablesTypesBoolean typesNumeric typesString typesArray typesSlice typesStruct typesPointer typesFunction typesInterface typesBasic interfacesEmbedded interfacesGeneral interfaces【泛型接口】Implementing an interface【实现一个接口】 Map typesCha…...

XCode中使用MonkeyDev开发iOS版的Comand-line Tool的daemon程序

前提条件&#xff1a;iphone手机越狱ios15&#xff0c;cydia/Sileo中安装好ssh&#xff0c;ldid等相关的常用插件 备注&#xff1a;如何iphone是ios15以下的越狱机&#xff0c;可直接看11步 1. 安装MonkeyDev sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercon…...

Nodejs上传文件的问题

操作系统&#xff1a;window和linux都会遇到 软件环境&#xff1a;v20.10.0的Nodejs 1、前端代码如下&#xff1a; 2、后端Nodejs 2.1、注册接口 2.2、上传接口 其中memoryUpload方法代码如下&#xff1a; 3、用页面上传文件 查看具体报错原因&#xff1a; TypeError: sourc…...

SpringMVC 拦截器详解与实战

在 SpringMVC 框架中&#xff0c;拦截器&#xff08;Interceptor&#xff09;是一种强大的机制&#xff0c;它允许开发者在控制器方法执行前后进行拦截&#xff0c;从而实现诸如用户权限验证、日志记录、性能监控等各种功能。本文将深入探讨 SpringMVC 拦截器的相关知识&#x…...

5.3 MVVM模型

一、MVVM的基本概念 MVVM的基本概念&#xff1a;Model、View、ViewModel 组件职责示例内容Model封装业务数据User类&#xff0c;包含姓名、年龄属性View负责UI呈现XAML界面&#xff0c;包含数据绑定ViewModel连接View和Model&#xff0c;处理视图逻辑MainViewModel包含命令和…...

6、进程理论和简单进程创建

一、了解进程推荐看这个视频&#xff0c;很详细 1、概念 进程(Process)程序的运行过程&#xff0c;是系统进行资源分配和调度的独立单元程序的运行过程&#xff1a;多个不同程序 并发&#xff0c;同一个程序同时执行多个任务。 就需要很多资源来实现这个过程。 每个进程都有一…...

python面试-基础

Python 面试题&#xff1a;解释 filter 函数的工作原理 难度: ⭐⭐ 特点: filter 函数是 Python 内置的高阶函数&#xff0c;用于过滤序列中的元素。这道题考察面试者对函数式编程概念的理解以及对 filter 函数的实际应用能力。和 map 函数类似, Python 3 中的 filter 返回一…...

全分辨率免ROOT懒人精灵-自动化编程思维-设计思路-实战训练

全分辨率免ROOT懒人精灵-自动化编程思维-设计思路-实战训练 1.2025新版懒人精灵-实战红果搜索关键词刷视频&#xff1a;https://www.bilibili.com/video/BV1eK9kY7EWV 2.懒人精灵-全分辨率节点识别&#xff08;红果看广告领金币小实战&#xff09;&#xff1a;https://www.bili…...

前后端常见模型以及相关环境配置介绍

一、前端常见框架 Vue.js 特点&#xff1a;采用数据驱动的响应式编程&#xff0c;组件化的开发模式使得代码结构清晰&#xff0c;易于维护&#xff0c;且学习成本相对较低&#xff0c;适合初学者和快速迭代的项目。应用场景&#xff1a;广泛应用于各类 Web 应用开发&#xff…...

西电考研目前缺额专业,调剂助力上岸!

注意啦&#xff01;准备调剂的兄弟们看过来&#xff1a;今天带大家梳理【西电调剂】的相关内容。助力大家上岸西安电子科技大学研究生 调剂必须在短时间内迅速做出决策&#xff0c;收集信息、筛选院校、准备复试&#xff0c;每一个环节都容不得丝毫懈怠&#xff01;现在除了关注…...

英语四六级听力考试网络广播系统建设方案:助力大学英语四六级听力考试清晰度与可靠性升级

英语四六级听力考试网络广播系统建设方案&#xff1a;助力大学英语四六级听力考试清晰度与可靠性升级 北京海特伟业科技有限公司任洪卓发布于2025年3月26日 一、建设背景&#xff1a;听力考试的重要性与现有系统的痛点 英语四六级考试听力部分作为学生英语听力能力的直接检验…...

性能比拼: Rust vs C++

本内容是对知名性能评测博主 Anton Putra 1个月前 Rust vs C Performance 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 介绍 在本视频中&#xff0c;将对比 Rust 和 C。 会使用 Axum 框架的一个稍微改进的版本&#xff0c;该框架基于 Hyper 和 Tokio 运行时&am…...

b站视频提取mp4方案

引言 对于b站视频&#xff0c;有些视频是不能提取字幕的&#xff0c;所以我们想把对应的视频下载下来&#xff0c;然后进行对应的本地处理&#xff0c;获得所需的自由处理&#xff0c;吞食视频。 整体思路 下载b站客户端 ----> 把缓存路径修改------> 下载所需视频---…...

PyQt6实例_批量下载pdf工具_exe使用方法

目录 前置&#xff1a; 工具使用方法&#xff1a; step one 获取工具 step two 安装 step three 使用 step four 卸载 链接 前置&#xff1a; 1 批量下载pdf工具是基于博文 python_巨潮年报pdf下载-CSDN博客 &#xff0c;将这个需求创建成界面应用&#xff0c;达到可…...

【java笔记】泛型、包装类、自动装箱拆箱与缓存机制

一、泛型&#xff1a;类型安全的基石 1. 泛型的本质与原理 Java 泛型&#xff08;Generics&#xff09;是 JDK 5 引入的特性&#xff0c;通过类型参数化实现代码的通用性。泛型类、接口和方法允许在定义时声明类型参数&#xff08;如 T、E、K、V&#xff09;&#xff0c;这些…...

计算机网络——传输层(TCP)

传输层 在计算机网络中&#xff0c;传输层是将数据向上向下传输的一个重要的层面&#xff0c;其中传输层中有两个协议&#xff0c;TCP&#xff0c;UDP 这两个协议。 TCP 话不多说&#xff0c;我们直接来看协议报头。 源/目的端口号&#xff1a;表示数据从哪个进程来&#xff0…...

Go 语言规范学习(1)

文章目录 IntroductionNotation示例&#xff08;Go 语言的 if 语句&#xff09;&#xff1a; Source code representationCharacters例子&#xff1a;变量名可以是中文 Letters and digits Lexical elementsCommentsTokensSemicolons例子&#xff1a;查看程序所有的token Ident…...

深入理解椭圆曲线密码学(ECC)与区块链加密

椭圆曲线密码学&#xff08;ECC&#xff09;在现代加密技术中扮演着至关重要的角色&#xff0c;广泛应用于区块链、数字货币、数字签名等领域。由于其在提供高安全性和高效率上的优势&#xff0c;椭圆曲线密码学成为了数字加密的核心技术之一。本文将详细介绍椭圆曲线的基本原理…...

nginx优化(持续更新!!!)

1.调整文件描述符 # 查看当前系统文件描述符限制 ulimit -n# 永久修改文件描述符限制 # 编辑 /etc/security/limits.conf 文件&#xff0c;添加以下内容 * soft nofile 65535 * hard nofile 65535# 编辑 /etc/sysctl.conf 文件&#xff0c;添加以下内容 fs.file-max 655352.调…...

ARCGIS PRO SDK 创建右键菜单

ArcGIS Pro SDK中的弹出式右键菜单常见的在地图视图、布局视图、文件目录等地方&#xff0c;随便右键点击某个文件、要素、要素类&#xff0c;一般都会弹出一个右键菜单。 操作对象右键菜单 refID要素图层esri_mapping_layerContextMenushp图层esri_mapping_unregisteredLaye…...

编译原理——LR分析

文章目录 LR分析概述一、LR分析概述二、LR(0)分析概述&#xff08;一&#xff09;可归前缀和子前缀&#xff08;二&#xff09;识别活前缀的有限自动机&#xff08;三&#xff09;活前缀及可归前缀的一般计算方法&#xff08;四&#xff09;LR(0)项目集规范族的构造 三、SLR(1)…...

css100个问题

一、基础概念 CSS的全称及作用是什么&#xff1f;行内样式、内部样式表、外部样式表的优先级&#xff1f;解释CSS的层叠性&#xff08;Cascading&#xff09;CSS选择器优先级计算规则伪类与伪元素的区别&#xff1f;举例说明!important的作用及使用注意事项如何继承父元素字体…...

js文字两端对齐

目录 一、问题 二、原因及解决方法 三、总结 一、问题 1.text-align: justify; 不就可以了吗&#xff1f;但是实际测试无效 二、原因及解决方法 1.原因&#xff1a;text-align只对非最后一行文字有效。只有一行文字时&#xff0c;text-align无效&#xff0c;要用text-alig…...

Java-面向对象-多态和抽象类

目录 什么是多态&#xff1f; 多态的优点 多态存在的三个必要条件 虚函数 重写 多态的实现方式 什么是抽象类&#xff1f; 继承抽象类 实现抽象方法 抽象类总结 什么是多态&#xff1f; 多态就是一个行为具有多种不同的表现形式。 举例&#xff1a; 我们按下 F1 键…...

前端性能优化:深入解析哈希算法与TypeScript实践

/ 示例&#xff1a;开放寻址哈希表核心实现 class OpenAddressingHashTable<T> {private size: number;private keys: (string | null)[];private values: (T | null)[];private tombstone Symbol(Deleted);constructor(size: number 53) {this.size size;this.keys …...

车架号查询车牌号接口如何用Java对接

一、什么是车架号查询车牌号接口&#xff1f; 车架号查询车牌号接口&#xff0c;即传入车架号&#xff0c;返回车牌号、车型编码、初次登记日期信息。车架号又称车辆VIN码&#xff0c;车辆识别码。 二、如何用Java对接该接口&#xff1f; 下面我们以阿里云接口为例&#xff0…...

linux input子系统深度剖析

input 就是输入的意思&#xff0c;因此 input 子系统就是管理输入的子系统&#xff0c;和 pinctrl 、 gpio 子系统 一样&#xff0c;都是 Linux 内核针对某一类设备而创建的框架。比如按键输入、键盘、鼠标、触摸屏等 等这些都属于输入设备&#xff0c;不同的输入设备…...

香蕉派 BPI-CM6 工业级核心板采用进迭时空K1 8核 RISC-V 芯片开发

BPI-CM6 产品介绍 香蕉派BPI-CM6是一款工业级RISC-V核心板&#xff0c;它采用SpacemiT K1 8核RISC-V芯片设计&#xff0c;CPU集成2.0 TOPs AI计算能力。8/16G DDR和8/16/32/128G eMMC。设计了板对板连接器&#xff0c;以增强稳定性&#xff0c;与树莓派CM4尺寸相同&#xff0c…...

9.4分漏洞!Next.js Middleware鉴权绕过漏洞安全风险通告

今日&#xff0c;亚信安全CERT监控到安全社区研究人员发布安全通告&#xff0c;Next.js 存在一个授权绕过漏洞&#xff0c;编号为 CVE-2025-29927。攻击者可能通过发送精心构造的 x-middleware-subrequest 请求头绕过中间件安全控制&#xff0c;从而在未授权的情况下访问受保护…...

【Unity3D实现UI轮播效果】

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、效果展示👉二、实现步骤👉2-1、搭建UI👉2-2、代码实现👉2-3、代码挂载使用👉三、扩展实现👉壁纸分享👉总结👉前言 功能需求如图所示,点击下一个按钮,所有卡片向右滚动,其中最后一张需要变更…...

谈谈 Webpack 中的 Loader 和 Plugin,它们的区别是什么?

Webpack Loader与Plugin深度解析 作为前端工程化的核心工具&#xff0c;Webpack的Loader和Plugin机制是其强大扩展能力的基石。 理解它们的差异和适用场景&#xff0c;是构建高效打包体系的关键。 我们将从底层原理到实际应用&#xff0c;深入剖析两者的区别。 核心概念对比…...

C#单例模式

单例模式 (Singleton),保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问&#xff0c;但它不能防止你实例化对个对象&#xff0c;一个最好的办法就是&#xff0c;让类自身负责保护它的唯一实例。这个类可以保证没…...

Oracle 数据库通过exp/imp工具迁移指定数据表

项目需求&#xff1a;从prod数据库迁移和复制2个表(BANK_STATE&#xff0c;HBS)的数据到uat数据库环境。 数据库版本&#xff1a;Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 迁移工具&#xff1a;客户端exp/imp工具 -- 执行命令 从Prod数据库导出数据exp us…...

MongoDB 与 Elasticsearch 使用场景区别及示例

一、核心定位差异 ‌MongoDB‌ ‌定位‌&#xff1a;通用型文档数据库&#xff0c;侧重数据的存储、事务管理及结构化查询&#xff0c;支持 ACID 事务‌。‌典型场景‌&#xff1a; 动态数据结构存储&#xff08;如用户信息、商品详情&#xff09;‌。需事务支持的场景&#xf…...

PyTorch生成式人工智能实战:从零打造创意引擎

PyTorch生成式人工智能实战&#xff1a;从零打造创意引擎 0. 前言1. 生成式人工智能1.1 生成式人工智能简介1.2 生成式人工智能技术 2. Python 与 PyTorch2.1 Python 编程语言2.2 PyTorch 深度学习库 3. 生成对抗网络3.1 生成对抗网络概述3.2 生成对抗网络应用 4. Transformer4…...