第四章 常见的 Android 文件格式(三)(AndroidManifest.xml)

本文详细介绍了AndroidManifest.xml文件的格式和作用,包括应用配置、组件声明、安全设置等内容。同时,深入探讨了AXML文件的二进制格式,解释了其结构、数据块和解析过程,强调了其在性能优化中的角色。此外,还提到了AXML的修改和加固方法,如使用010 Editor和特定工具进行分析和修复。
摘要由CSDN通过智能技术生成

AndroidManifest.xml

  • 其中存放了 APK 的大量配置信息:软件名称、图标、主题、包名、组件配置等
  • 合理、安全地配置组件是安全开发中最重要的一课

AndroidManifest.xml 文件的格式

  • 采用 XML 文本格式,在开发阶段,所有的配置信息都可直接以可视化的方式编辑。Crackme0201 的内容:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.droider.crackme0201">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
android:allowBackup="true"
  • android:allowBackup 允许系统在进行备份操作时备份程序的应用数据,典型的操作是在终端执行 adb backup 命令,或点击手机设置界面上的“备份操作”按钮。对数据安全比较敏感的话,可设置为“false”
android:supportsRtl="true"
  • 这个标签的作用:让 APK 支持 RTL(Right-to-Left)视图。将此值设为“true”,并将 targetSdkVersion 的值设为 17 及以上,即可开启 RTL 视图支持

AXML 文件格式

  • AS 在编译 APK 时,会将 AndroidManifest.xml 处理后打包进去。打包进去的 AndroidManifest.xml 被编译成二进制格式的文件。解压 APK 后,用文本编辑器打开它,会发现内容是乱码。这个打包后的 AndroidManifest.xml 称“AXML”,其格式称“AXML 文件格式”
  • APK 用 AXML 而非纯文本格式 XML 存放数据,主要目的应是解决 APK 加载时的性能问题。在 Android 设备内存资源与能耗极其有限的情况下,二进制的 AXML 在分析处理速度和内存占用方面都比纯文本的 XML 有明显优势。但 AXML 的内容不能直接显示,因此,逆向分析 APK 时,对其格式有所了解,才能知道它原来的内容
  • Android 官方没明确给出 AXML 的二进制布局规范,可通过阅读 APK 打包流程和系统加载 APK 的代码掌握它的文件格式。在 Android 系统源码文件 frameworks/base/include
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值