往期教程
apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】
上期演示了下如何修改apk的名称。相信只要用心的友友都会操作了。这次讲解下如何修改软件的版本号与版本名字的操作
名词浅释:
在apk反编译中的VersionCode---是版本号的意思.是一个Integer类型的数值.通常情况下,发布自己第一个应用时设置版本号为1,这是最普遍的做法。是对用户不可见的版本号.代表app更新过多少次
VersionName---是版本名的意思。是一个版本的描述,是给用户看的,也就是用户放在各个第三方平台上提供给使用者看的一个版本名.代表应用程序的版本信息
先来看看常用软件微信的版本信息:
那么他在反编译apk后是这样表现的
基本已经很清除的明白具体的分别了。而我们一般只需要修改VersionName即可。
步骤如下
反编译软件继续使用mt或者其他反编译软件。也可以电脑端使用反编译打开微信apk。mt必须是会员才可以反编译,在所有的apk中.AndroidManifest.xml文件是每个Android程序apk中必须的文件,它是整个Android程序的全局描述文件,除了能声明程序中的Activities,Content Providers,Services,和Intent Receivers,还能指定应用的名称、使用的图标、包含的组件以及permissions和instrumentation(安全控制和测试)。那么在操作前我们有必要先了解下AndroidManifest.xml文件接点说明与意义
- xmlns:android:定义android命名空间,这样使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。
- package:指定本应用内java主程序包的包名,它也是一个应用进程的默认名称。
- application:一个AndroidManifest.xml中必须含有一个Application标签,这个标签声明了每一个应用程序的组件及其属性(如icon、label、permission等)。
- allowBackup:当allowBackup标志为true时,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复,这可能会带来一定的安全风险。
- icon:这个很简单,就是声明整个APP的图标,图片一般都放在drawable文件夹下。
- label:声明整个APP的名字,字符串常量一般都放在values文件夹下的strings.xml里。
- supportsRtl:支持从右往左显示的布局(正常布局在镜子里面看到的左右对调过的样子)。
- theme:是一个资源的风格,它定义了一个默认的主题风格给所有的activity,当然也可以在自己的theme里面去设置它,有点类似style。
- activity:定义APP中的一个组件Activity。
- name:该Activity的名字。
- intent-filter:广播过滤器,后续会讲到。
- <action android:name:指定程序入口Activity,在这里是MainActivity。
- <category android:name:指定当前动作(Action)被执行的环境。这里的CATEGORY_LAUNCHER决定应用程序是否显示在程序列表里。
- 其余的:对应于各个开始节点的结束节点。
在刚才的图片界面点击查看。然后找到AndroidManifest.xml文件。点击选择反编译
在出来的界面中修改版本号即可。例如修改后
效果
其中androldmanifest.xml代码类似以下。其他修改方法也如此。原则上修改可以防止自动更新。当然还是那句话。有的工具支持一键修改,为了方便后续的教程步骤。建议实际操作了解apk反编译全过程.类似的教程在csdn中有很多。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="2460"
android:versionName="8.0.42"
.="auto"
.="32"
android:compileSdkVersionCodename="12"
package="com.tencent.mm"
platformBuildVersionCode="32"
platformBuildVersionName="12">
<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="29"/>
<queries>
<package
android:name="com.tencent.mm.coolassist"/>
<intent>
<action
android:name="android.intent.action.VIEW"/>
</intent>
<intent>
<action
android:name="com.tencent.wmpf.action.WMPF_SCAN_CODE"/>
</intent>
<intent>
<action
android:name="com.tencent.QQBrowser.action.VIEW"/>
</intent>
<intent>
<action
android:name="android.intent.action.SEND"/>
</intent>
<intent>
<action
android:name="android.intent.action.PICK"/>
</intent>
<intent>
<data
android:scheme="qqmail"/>
</intent>
<intent>
<action
android:name="android.intent.action.MAIN"/>
<category
android:name="android.intent.category.LAUNCHER"/>
</intent>
<intent>
<action
android:name="android.intent.action.INSERT"/>
<data
android:mimeType="vnd.android.cursor.dir/contact"/>
</intent>
<intent>
<action
android:name="android.intent.action.INSERT_OR_EDIT"/>
<data
android:mimeType="vnd.android.cursor.item/person"/>
</intent>
<intent>
<action
android:name="android.media.action.IMAGE_CAPTURE"/>
</intent>
<package
android:name="com.tencent.mtt"/>
<package
android:name="com.tencent.androidqqmail"/>
<package
android:name="com.tencent.weishi"/>
<package
android:name="com.google.android.apps.maps"/>
<package
android:name="com.baidu.BaiduMap"/>
<package
android:name="com.autonavi.minimap"/>
<package
android:name="com.sogou.map.android.maps"/>
<package
android:name="com.tencent.map"/>
<package
android:name="com.tencent.weread"/>
<package
android:name="com.tencent.mobileqq"/>
<package
android:name="com.miui.securitycenter"/>
<package
android:name="com.oppo.launcher"/>
<package
android:name="com.bbk.launcher2"/>
<package
android:name="com.tencent.wework"/>
<package
android:name="com.tencent.android.qqdownloader"/>
<package
android:name="com.tencent.qqpimsecure"/>
<package
android:name="com.tencent.qqpim"/>
<package
android:name="com.android.vending"/>
<package
android:name="com.google.android.wearable.app.cn"/>
<package
android:name="com.google.android.wearable.app"/>
<package
android:name="com.unionpay"/>
<package
android:name="com.tencent.news"/>
<package
android:name="com.xunmeng.pinduoduo"/>
<package
android:name="com.smile.gifmaker"/>
<package
android:name="com.kuaishou.nebula"/>
<package
android:name="com.tencent.wemeet.app"/>
<package
android:name="com.wuba.town.client"/>
<package
android:name="com.tencent.qqlive"/>
<package
android:name="com.tencent.karaoke"/>
<package
android:name="com.tencent.tmgp.sgame"/>
<package
android:name="com.jingdong.app.mall"/>
<package
android:name="com.MobileTicket"/>
<package
android:name="tv.danmaku.bili"/>
<package
android:name="com.webank.wemoney"/>
<package
android:name="com.tencent.mp"/>
<package
android:name="com.tencent.qqsports"/>
<package
android:name="com.tencent.docs"/>
<package
android:name="com.sankuai.meituan"/>
<package
android:name="com.baidu.searchbox"/>
<package
android:name="com.hicorenational.antifraud"/>
<package
android:name="com.xingin.xhs"/>
<package
android:name="com.ss.android.ugc.aweme"/>
<package
android:name="com.dragon.read"/>
<package
android:name="com.tencent.qqgame.xq"/>
<package
android:name="com.tencent.gamehelper.smoba"/>
<package
android:name="com.tencent.tmgp.cod"/>
<package
android:name="com.xunmeng.merchant"/>
<package
android:name="com.cctv.yangshipin.app.androidp"/>
<package
android:name="com.tencent.tmgp.pubgmhd"/>
<package
android:name="com.kugou.android"/>
<package
android:name="com.tencent.tmgp.speedmobile"/>
<package
android:name="cmb.pb"/>
<package
android:name="cn.gov.pbc.dcep"/>
<package
android:name="com.tencent.wetype"/>
<package
android:name="com.tencent.soter.soterserver"/>
<package
android:name="com.tencent.mm"/>
<intent>
<action
android:name="androidx.camera.extensions.action.VENDOR_ACTION"/>
</intent>
</queries>
<permission
android:name="com.tencent.mm.plugin.permission.WRITE"
android:protectionLevel="signature"/>
<permission
android:name="com.tencent.mm.plugin.permission.READ"
android:protectionLevel="signature"/>
<permission
android:name="com.tencent.mm.permission.MM_MESSAGE"
android:protectionLevel="signature"/>
<permission
android:name="com.tencent.mm.permission.MOVE_XLOG"
android:protectionLevel="signatureOrSystem"/>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="2460"
android:versionName="8.0.42"
.="auto"
.="32"
android:compileSdkVersionCodename="12"
package="com.tencent.mm"
platformBuildVersionCode="32"
platformBuildVersionName="12">
<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="29"/>
<queries>
<package
android:name="com.tencent.mm.coolassist"/>
<intent>
<action
android:name="android.intent.action.VIEW"/>
</intent>
<intent>
<action
android:name="com.tencent.wmpf.action.WMPF_SCAN_CODE"/>
</intent>
<intent>
<action
android:name="com.tencent.QQBrowser.action.VIEW"/>
这些前期的教程其实没有多大的技术含量。只是通过详细的步骤来让初期接触反编译apk过程的友友少走点弯路。引起学习兴趣。