apk反编译修改教程系列-----任意修改apk版本号 版本名 防止自动更新【二】

往期教程

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文件接点说明与意义

扫描二维码关注公众号,回复: 17282413 查看本文章

  • 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过程的友友少走点弯路。引起学习兴趣。

猜你喜欢

转载自blog.csdn.net/u011283906/article/details/134019242