【Android 安全】DEX 加密 ( 不同 Android 版本的 DEX 加载 | Android 8.0 版本 DEX 加载分析 | Android 5.0 版本 DEX 加载分析 )

简介: 【Android 安全】DEX 加密 ( 不同 Android 版本的 DEX 加载 | Android 8.0 版本 DEX 加载分析 | Android 5.0 版本 DEX 加载分析 )

文章目录

一、不同版本的 DEX 加载

1、Android 8.0 版本 DEX 加载分析

2、Android 6.0 版本 DEX 加载分析

3、Android 5.0 版本 DEX 加载分析





一、不同版本的 DEX 加载


不同 Android 版本 DexPathList 中的 Element[] dexElements 成员如何创建 ;




1、Android 8.0 版本 DEX 加载分析


Android 8.0 8.08.0 版本 DEX 加载分析 :


在 DexPathList 中 , Element[] dexElements 成员创建是调用 makePathElements 方法 生成上述 DEX 数组 ; makeDexElements 方法有 4 44 个参数 ;


8.0 8.08.0 系统 Element[] dexElements 生成 代码示例如下 : ( 只展示相关源码 )


/*package*/ final class DexPathList {
    /**
     * dex/resource (class path) 元素集合.
     * 应该调用 pathElements , 但是 Facebook 应用通过反射修改 dexElements .
     */
    private final Element[] dexElements;
    public DexPathList(ClassLoader definingContext, String dexPath,
            String libraryPath, File optimizedDirectory) {
        // save dexPath for BaseDexClassLoader
        this.dexElements = makeDexElements(splitDexPath(dexPath), optimizedDirectory,
                                           suppressedExceptions, definingContext);
  }
}


参考源码地址 : 8.0.0_r4/xref/libcore/dalvik/src/main/java/dalvik/system/DexPathList.java




2、Android 6.0 版本 DEX 加载分析


Android 6.0 6.06.0 版本 DEX 加载分析 :


在 DexPathList 中 , Element[] dexElements 成员创建是调用 makePathElements 方法 生成上述 DEX 数组 ;


6.0 6.06.0 系统 Element[] dexElements 生成 代码示例如下 : ( 只展示相关源码 )


/*package*/ final class DexPathList {
    /**
     * dex/resource (class path) 元素集合.
     * 应该调用 pathElements , 但是 Facebook 应用通过反射修改 dexElements .
     */
    private final Element[] dexElements;
    public DexPathList(ClassLoader definingContext, String dexPath,
            String libraryPath, File optimizedDirectory) {
        // save dexPath for BaseDexClassLoader
        this.dexElements = makePathElements(splitDexPath(dexPath), optimizedDirectory,
                                            suppressedExceptions);
  }
}


参考源码地址 : 6.0.1_r16/xref/libcore/dalvik/src/main/java/dalvik/system/DexPathList.java




3、Android 5.0 版本 DEX 加载分析


Android 5.0 5.05.0 版本 DEX 加载分析 :


在 DexPathList 中 , Element[] dexElements 成员创建是调用 makeDexElements 方法 生成上述 DEX 数组 ; makeDexElements 方法有 3 33 个参数 ;


5.0 5.05.0 系统 Element[] dexElements 生成 代码示例如下 : ( 只展示相关源码 )


/*package*/ final class DexPathList {
    /**
     * dex/resource (class path) 元素集合.
     * 应该调用 pathElements , 但是 Facebook 应用通过反射修改 dexElements .
     */
    private final Element[] dexElements;
    public DexPathList(ClassLoader definingContext, String dexPath,
            String libraryPath, File optimizedDirectory) {
        this.dexElements = makeDexElements(splitDexPath(dexPath), optimizedDirectory,
                                           suppressedExceptions);
  }
}


参考源代码 : 5.1.0_r3/xref/libcore/dalvik/src/main/java/dalvik/system/DexPathList.java




分析上面 3 33 个版本的 DEX 加载源码 , 发现每个版本加载方法不同 , 这样在开发多 DEX 加载时 , 就需要做相应的兼容 ;


目录
相关文章
|
3天前
|
算法 安全 Shell
SSH:加密安全访问网络的革命性协议
SSH:加密安全访问网络的革命性协议
33 9
|
4天前
|
Shell 开发工具 Android开发
android 修改kernel编译版本信息
android 修改kernel编译版本信息
13 0
|
4天前
|
存储 Android开发
Android 高版本 packageManager.getPackageArchiveInfo 总是返回null
Android 高版本 packageManager.getPackageArchiveInfo 总是返回null
11 1
|
11天前
|
NoSQL 安全 MongoDB
MongoDB安全机制:认证、授权与加密
【4月更文挑战第30天】MongoDB提供全面的安全机制,包括认证(用户名/密码、LDAP、Kerberos、x.509证书)、授权(基于角色的访问控制,RBAC)和加密(TLS/SSL、透明数据加密TDE、字段级加密FLE),确保数据保密性、完整性和可用性。通过合理配置这些机制,企业可保障数据安全,应对不断变化的安全威胁。
|
11天前
|
安全 Java Go
【Go语言专栏】Go语言中的加密与安全通信
【4月更文挑战第30天】本文介绍了Go语言中的加密与安全通信。通过使用golang.org/x/crypto/ssh/terminal库实现终端加密,以及golang.org/x/net/websocket库实现WebSocket安全通信。文章展示了安装库的命令、加密操作及WebSocket通信的示例代码。此外,还列举了安全通信在数据传输加密、用户认证、密码保护和文件加密等场景的应用。掌握这些知识对开发安全的Web应用至关重要。
|
14天前
|
存储 安全 算法
【专栏】保护数据安全的重要性以及安全加密算法在数据保护中的应用
【4月更文挑战第27天】在数字化时代,数据安全至关重要,关系到个人隐私、企业商业机密、国家安全及经济发展。安全加密算法(如对称加密、非对称加密和哈希算法)在保护数据方面发挥关键作用。它们应用于电子商务、金融、物联网、云存储和数字签名等领域,确保信息传输和存储的安全。面对日益复杂的挑战,我们需要持续研究和应用加密技术,提高数据安全意识,共同维护数字世界的繁荣与安全。
|
Java 数据安全/隐私保护
Java实现最电话号码的简单加密源码
Java实现最电话号码的简单加密源码
20 0
|
3月前
|
存储 安全 算法
【接口加密】Java中的接口加密实践
【接口加密】Java中的接口加密实践
|
3月前
|
算法 安全 Java
Java 实现 RSA 非对称加密算法-加解密和签名验签
Java 实现 RSA 非对称加密算法-加解密和签名验签
100 0
|
Java 数据安全/隐私保护
java实现加密电话号码,有具体的加密流程注释
java实现加密电话号码,有具体的加密流程注释
31 0