• 玩机搞机-------安卓修改apk apk的组成和编译 一


     

    安卓软件都是apk形式,那么今天聊聊这个apk的相关常识。首先我们找一个apk作为演示。前面的帖子我就说过。apk其实就是一个压缩包。我们使用压缩软件直接可以打开这个apk查看内部相关文件,但不可以直接修改哦

     如果你想要修改这个apk的相关。那么需要对应的工具。这类工具很多。其中手机端使用较多的为MT np管理器  刺客 等等反编译软件。电脑端也有很多。我们使用反编译软件打开这个app后发现有很多文件和文件夹组成。如图

     其中 assets文件夹为总的资源目录。其中包含有文本文件。图片  网页 声音 视频和一些对应的图标软件。如果你要修改软件中的图标等等,就在其中搜索修改即可

    lib为软件运行的库文件 。他有静态库与动态库,其中都为一些so文件。反编译一般不需要修改这.

     META-INF就是此款app的签名文件。有的反编译软件编译中会隐藏该目录。他包含了apk文件的信息和签名,保障文件的完整性和系统的安全。也可以称为密匙。只要重新编译软件此密匙会失效。需要重新签名。

     res目录文件夹为apk资源的总目录。此类修改的较多包含的图片类等等都在这个目录里

     AndroidManifest.xml这个文件较为重要。包含有权限设置 修改 图标 活动 服务 版本等等的配置信息。

    类似代码 

    1. <?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" package="com.huati">
    2. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    3. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    4. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    5. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    6. <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/>
    7. <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/>
    8. <uses-permission android:name="android.permission.INTERNET"/>
    9. <uses-permission android:name="android.permission.GET_TASKS"/>
    10. <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    11. <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
    12. <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
    13. <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    14. <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
    15. <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
    16. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    17. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    18. <uses-permission android:name="android.permission.VIBRATE"/>
    19. <uses-permission android:name="com.huati"/>
    20. <uses-permission android:name="com.huati.permission.ACCESS_DOWNLOAD_MANAGER"/>
    21. <uses-permission android:name="com.huati.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED"/>
    22. <uses-permission android:name="com.huati.permission.SEND_DOWNLOAD_COMPLETED_INTENTS"/>
    23. <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:xlargeScreens="true"/>
    24. <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
    25. <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    26. <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
    27. <uses-permission android:name="android.permission.WAKE_LOCK"/>
    28. <permission android:name="android.permission.DEVICE_POWER"/>
    29. <uses-permission android:name="android.permission.READ_CONTACTS"/>
    30. <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
    31. <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
    32. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    33. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    34. <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
    35. <uses-permission android:name="android.permission.BLUETOOTH"/>
    36. <uses-permission android:name="android.permission.REORDER_TASKS"/>
    37. <permission android:name="com.huati.permission.MIPUSH_RECEIVE" android:protectionLevel="signature"/>
    38. <uses-permission android:name="com.huati.permission.MIPUSH_RECEIVE"/>
    39. <uses-permission android:name="com.android.launcher.permission.READ_PHONE_STATE"/>
    40. <uses-permission android:name="com.android.launcher.permission.GET_TASKS"/>
    41. <uses-permission android:name="com.android.launcher.permission.ACCESS_COARSE_LOCATION"/>
    42. <uses-permission android:name="android.permission.CAMERA"/>
    43. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

    如你要去除软件的广告。有以下几种方法

    1-----去除他的联网功能,这样一般就不会有广告弹出。去翻译修改AndroidManifest.xml文件即可

    2-----删掉软件中的广告控件.。也是在这个AndroidManifest.xml中修改。记住一下控件的位置名称

    gdt_plugin   腾讯广告

    bdxadsdk.jar   百度广告

    ksad_common_encrypt_image.png   快手广告等等

    3---修改classes.dex里面的相关信息

    如你要去除软件中的弹窗  可以参考步骤

    当你打开一款软件。跳处弹窗类的界面。例如“欢迎 *********”我们首先进行反编译打开软件目录,找到resources.arsc文件。然后搜索此关键字符串。定位后进行删除即可

    其实初期有兴趣的友友们可以先找一个体积较小的app进行反编译修改尝试。个人推荐可以手机端操作试练。方便简单。电脑端类的对系统运行环境有点关联。有时候很麻烦。当你去除一个你不需要的功能或者窗口。成就感满满滴。兴趣是最好的老师,什么东西只要入了门。你会发现很多乐趣。

  • 相关阅读:
    对音频切分成小音频(机器学习用)
    【深度装机】深度U盘装机后黑屏闪光标
    Window对象的说明》
    人像分割技术解析与应用
    Netty编程面试题
    HR问:有没有免费的人才测评工具?
    【算法】平衡二叉树
    can网桥 canbridge can中继器、canbridge的优秀emc性能介绍
    CMake教程-第 8 步:添加自定义命令和生成文件
    Hive的概念与基本架构
  • 原文地址:https://blog.csdn.net/u011283906/article/details/127751637