V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
TakanashiAzusa
V2EX  ›  Android

想问下安卓 apk 的版本号到底该怎么改呢

  •  
  •   TakanashiAzusa · 2019-05-11 03:15:03 +08:00 · 13149 次点击
    这是一个创建于 2024 天前的主题,其中的信息可能已经有所发展或是发生改变。

    对象是某个海外联网手游,需要用到他们的旧版本。但是现在一打开就提示我要更新版本不然不给进。

    搜了下网络上的方法,按照教程改掉了 apktool.yml 和"original/AndroidManifest.xml"下的 versionCode 和 versionName,重新打包回去安装后系统自带的应用信息里确实显示是我要改的版本,但是打开软件后发现里面显示的还是旧版本号而不是新版本。

    所以安卓 U3D 类的应用是除了这两个地方外还有其他能硬编码版本号的地方吗? 想问下各位像这种情况有什么解决办法吗?

    第 1 条附言  ·  2019-05-11 04:18:40 +08:00

    行吧,事实证明他们就是这么无聊。 在“Assembly-CSharp.dll”里有个方法把每次的版本号都硬编码了。具体改的方法可以参考这个 https://zhuanlan.zhihu.com/p/32468958

    第 2 条附言  ·  2019-05-11 04:21:26 +08:00

    ([https://zhuanlan.zhihu.com/p/3246895 "安卓U3D逆向从Assembly-CSharp到il2cpp") 太长时间没用MD手生了。更改下上面那个append的小错误

    第 3 条附言  ·  2019-05-11 04:26:55 +08:00

    安卓U3D逆向从Assembly-CSharp到il2cpp append内容预览不了又不能修改。头疼。

    12 条回复    2019-05-11 15:00:29 +08:00
    donething
        1
    donething  
       2019-05-11 03:26:34 +08:00   ❤️ 2
    全局搜索你当前的版本号,试试
    TakanashiAzusa
        2
    TakanashiAzusa  
    OP
       2019-05-11 03:47:15 +08:00
    @donething 谢谢,不过 apktool 反编译的文件夹里搜索版本号的结果太多了。。我其实是有点怀疑会不会是他们给写到 dll 文件里去了,不过这方面实在也没什么经验,所以。。
    hugebug
        3
    hugebug  
       2019-05-11 04:17:22 +08:00 via Android   ❤️ 1
    开发的时候是在 app 下的 build.gradle 下改版本号
    TakanashiAzusa
        4
    TakanashiAzusa  
    OP
       2019-05-11 04:22:22 +08:00
    @hugebug
    @donething
    谢谢两位,自己搞定了。
    zhilincom
        5
    zhilincom  
       2019-05-11 08:33:27 +08:00 via Android
    dll ??什么时候安卓可以执行 windows 的动态链接库了?
    nicevar
        6
    nicevar  
       2019-05-11 09:03:02 +08:00
    @zhilincom 没什么奇怪的,unity3d 开发的游戏 apk 里面一大堆 dll,动态库加载这种可以自己实现的
    qianji201712
        7
    qianji201712  
       2019-05-11 09:31:03 +08:00 via Android
    其实有一个楼主不知道的事实就是,很多 Android app 不用 AndroidManefest.xml 里面的版本号,为什么呢?因为常见的各种应用市场抓包问题,会导致一个渠道的 Apk,被其他几个渠道抓过去使用。
    版本号其实就是一个数字,自己在 Apk 里面定义一个变量就好,每次发版看情况更改这个变量就好,当然 AndroidManefest 里面的版本号,也是在维护的,等于有对内、对外两个版本号
    kevinlm
        8
    kevinlm  
       2019-05-11 09:33:54 +08:00 via iPhone
    应该是硬编码写死一个数字的。极少数用项目本身的版本号
    TakanashiAzusa
        9
    TakanashiAzusa  
    OP
       2019-05-11 10:19:42 +08:00
    @qianji201712 其实我没懂这个如何应对渠道抓包问题呢?意思是对内对外不一样的版本号吗
    LimeVista
        10
    LimeVista  
       2019-05-11 14:40:59 +08:00 via Android
    一般做 App 会有个动态的数据结构(架构)版本号,用做升级数据,写在配置或数据库里面,至少还有一个或多个写死的当前版本号。并不会直接使用 app 自身的版本号,多渠道分发的时候弊端就出来了。
    mmdsun
        11
    mmdsun  
       2019-05-11 14:45:28 +08:00 via Android
    @zhilincom Xamarin 开发安卓 可以把 jar 包变成 dll
    alfchin
        12
    alfchin  
       2019-05-11 15:00:29 +08:00 via Android
    这种是服务端验证的,本地改了也未必能用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2970 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:47 · PVG 20:47 · LAX 04:47 · JFK 07:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.