shwenzhang / AndResGuard

proguard resource for Android by wechat team
Apache License 2.0
8.54k stars 1.54k forks source link

混淆之后,app不能运行 #145

Closed BiteFoo closed 7 years ago

BiteFoo commented 7 years ago

注: 再看了wiki之后,做过一个简单的demo测试,没遇到问题。后续的项目中,接入了其他的umeng sdk,之后混淆之后,都不能运行

由于业务的需求,需要混淆res目录,我在做测试混淆的时候,分别做了3个对比: 1.使用默认的混淆 java -jar andresguard.jar test.apk
安装运行,但是没有反应,想到忘了加白名单,如下 2.加白名单 <?xml version="1.0" encoding="UTF-8"?>

执行命令: java -jar andresgraurd.jar hlct_resign.apk -config config.xml -out out -7zip /usr/bin/7za 再次安装运行apk,还是没反应, 3.白名单全部不混淆

    <path value="com.xx.R.drawable.*"/>
    <path value="com.xx.R.layout.*"/>
    <path value="com.xx.R.anim.*"/>
    <path value="com.xx.R.string.*"/>
    <path value="com.xx.R.dimen.*"/>
    <path value="com.xx.R.style.*"/>
    <path value="com.xx.R.color.*"/> 

执行命令: java -jar andresgraurd.jar hlct_resign.apk -config config.xml -out out -7zip /usr/bin/7za 安装运行,依然还是不能运行,还是没找到是因为什么。

还有其他的配置:

<!--sign, if you want to sign the apk, and if you want to use 7zip, you must fill in the following data-->
<!--isactive, whether to use sign, you can set false to close it simply-->
<!--if you use -signature to set sign property in cammand line, these setting will be overlayed-->
<issue id="sign" isactive="true">
    <!--the signature file path, in window use \, in linux use /, and the default path is the running location-->
    <path value="release.keystore"/>
    <!--storepass-->
    <storepass value="testres"/>
    <!--keypass-->
    <keypass value="testres"/>
    <!--alias-->
    <alias value="testres"/>
</issue>

总之,在加混淆之后,就不能运行。不是很明白是不是哪里没做对,所以来提问了,谢谢

imknown commented 7 years ago

我线上应用接入了 友盟统计, 然后用的 andresguard gradle 打包的. 目前没发现这个问题.

simpleton commented 7 years ago

@BiteFoo 没有反应是指anr? 有具体的出错log么? 友盟的白名单规则好像不止你写,reame里用的是如下配置

        "R.string.umeng*",
        "R.string.UM*",
        "R.string.tb_*",
        "R.layout.umeng*",
        "R.layout.tb_*",
        "R.drawable.umeng*",
        "R.drawable.tb_*",
        "R.anim.umeng*",
        "R.color.umeng*",
        "R.color.tb_*",
        "R.style.*UM*",
        "R.style.umeng*",
        "R.id.umeng*",
BiteFoo commented 7 years ago

@simpleton 没反应,指的是,混淆之后,点击应用图标,不会进入程序,也没找到log日志输出问题,在混淆包的时候,没有出现错误问题。还有,我混淆不是配置gradle,是直接用的tool_output的andresguard.jar 命令去混淆的。我用友盟的匹配规则是:

    <path value="com.xx.R.layout.umeng_*"/>
    <path value="com.xx.R.anim.umeng_*"/>
    <path value="com.xx.R.string.umeng_*"/>
    <path value="com.xx.R.dimen.umeng_*"/>
    <path value="com.xx.R.style.umeng_*"/>
    <path value="com.xx.R.color.umeng_*"/>
    <path value="com.xx.R.id.umeng_*"/> 
    <path value="com.xx.R.raw.*"/>

难道是我白名单匹配错了?可是我把过滤规则全部改成

    <path value="com.xx.R.layout.*"/>
    <path value="com.xx.R.anim.*"/>
    <path value="com.xx.R.string.*"/>
    <path value="com.xx.R.dimen.*"/>
    <path value="com.xx.R.style.*"/>
    <path value="com.xx.R.color.*"/>
    <path value="com.xx.R.id.*"/> 
    <path value="com.xx.R.raw.*"/>

这样就表示,我不会去混淆这些目录下的文件,keeproot=true,compress=false,默认使用tool_output下的签名文件,会使用7zip去压缩重打包,然后用命令去混淆,得到的结果还是一样,不能进入程序。还请大大指点下,谢谢

weinierfei commented 7 years ago

@BiteFoo app图标放入白名单了没?

BiteFoo commented 7 years ago

@weinierfei 嗯嗯,放了 这表示,引用这个目录下的文件,也不会混淆,我首先排除了不是白名单配置错误,就使用了通配符 ''去做了全部的通配。类似上边的那个<path value="com.xx.R.mipmap."/> ,其他的也是,等,我刚刚看了混淆后的包,白名单中的内容不会被混淆掉。可是现在程序安装之后,不能运行起来,让我找不到入手点了。。

simpleton commented 7 years ago

肯定会有logcat,需要你关闭过滤器。或者你直接发apk到我邮箱,我帮你看下。sunsj1231 At gmail.com

On Mar 30, 2017 9:52 AM, "BiteFoo" notifications@github.com wrote:

@weinierfei https://github.com/weinierfei 嗯嗯,放了 这表示,引用这个目录下的文件,也不会混淆,我首先排除了不是白名单配置错误,就使用了通配符 '*'去做了全部的通配。类似上边的那个 ,其他的也是,等,我刚刚看了混淆后的包,白名单中的内容不会被混淆掉。可是现在程序安装之后, 不能运行起来,让我找不到入手点了。。

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/shwenzhang/AndResGuard/issues/145#issuecomment-290278607, or mute the thread https://github.com/notifications/unsubscribe-auth/AAbvYmNzJQFfMseJmd0YQGfyDRpxl9tlks5rqwrdgaJpZM4Ms5fv .

simpleton commented 7 years ago

@BiteFoo 是已经修复了相关问题了么?

simpleton commented 7 years ago

@BiteFoo 这里先关闭了,如果有更多的线索请重新打开这个issue.

BiteFoo commented 7 years ago

@simpleton 不好意思,最近在赶项目,忘了这事了,混淆的没有找到,结果,领导说先赶项目,暂时不放一下 ,我这两天好好找找问题,谢谢你的回答