Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >保护程序忽略库的配置文件。

保护程序忽略库的配置文件。
EN

Stack Overflow用户
提问于 2014-11-17 14:33:33
回答 4查看 21.5K关注 0票数 33

我现在正面临一个很奇怪的问题.

我有一个Gradle应用程序,有两个模块,一个主模块和一个库模块。

  • 在这两个模块中,我都声明了一个pro卫士规则,path文件路径是正确的
  • 在两个.gradle文件中,我都有minifyEnabled true

这是第一个问题:即使minifyEnabled在库中为false,它也会被混淆。它根本没有任何影响,似乎依赖于主模块的设置。我从一段时间以来就开始使用护卫了,我从来没有经历过这样的行为。

而且,这个图书馆的守卫规则似乎完全被忽视了。我在那里声明什么并不重要,它没有被使用,结果总是相同的(总是反编译来查看结果)。它与默认设置混淆。

我使用了一个无效的proguard文件名来查看文件是否被触摸,而且确实存在错误名称的错误,并且它还抱怨proguard文件中的语法错误……

我不知道它是否与Android的更新有关,因为它还建议我使用"minifyEnabled“而不是"runProguard”。

我怎样才能管理程序守卫使用程序规则。亲图书馆?

编辑:

我做了一个示例项目来澄清我的问题

我的库的前保护配置

我的图书馆的等级:

最后是我总是得到的结果。不重要的是,我将什么排除/包含在proguard配置中

正如您所看到的,proguard规则在主模块上运行得很好。它做它该做的。但它总是把我的图书馆弄得一团糟.

它还完全删除了图书馆的活动,这是不应该发生的

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-11-20 17:26:06

通常不应在库项目中启用ProGuard。ProGuard在应用程序项目中共同处理应用程序和库,这是最有效的方法。

在库项目中,可以在ProGuard中指定任何特定于库的build.gradle配置,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
defaultConfig {
    consumerProguardFiles 'proguard-rules.txt'
}

然后将该文件打包到库aar中作为proguard.txt,并自动应用于应用程序项目中。

如果确实在库项目中启用了ProGuard (可能是因为要分发库),那么还必须添加处理库的适当配置。Android Gradle构建似乎不会自动完成这一任务。您可以:

  1. android-sdk/tools/proguard/examples/library.pro复制到库项目中的proguard-project.txt
  2. 从文件中删除示例输入/输出行-injars-outjars-libraryjars-printmapping。Gradle构建过程自动提供这些选项。
  3. 引用库项目的build.gradle中的配置。

为库项目和应用程序项目独立启用/禁用ProGuard对我来说很好。

票数 92
EN

Stack Overflow用户

发布于 2016-02-05 16:29:52

令人惊讶的是,埃里克的答案实际上也在为我工作!

当然,Eric知道他在说什么,但我一直在努力寻找一种干净的方法来自动在gradle中完成这个任务,但在我今天刚刚找到这篇文章之前已经一年多没有运气了。

我组合了其他几个SO线程,并提出了工作的w/这个解决方案,这也可以简化。步骤1-4是可选的,但到目前为止似乎还没有受到伤害。

  1. http://sourceforge.net/projects/proguard/files/proguard/5.2/下载ProStere5.2
  2. 解压缩到./android-sdk/tools/proguard5.2
  3. 将./android-sdk/tools/proguard重命名为./android-sdk/tools/proguard4.7
  4. ln -s .../android-sdk/tools/proguard5.2 .../android-sdk/tools/proguard
  5. android-sdk/tools/proguard/examples/library.pro复制到库项目文件夹并重命名为proguard-library.pro
  6. 编辑proguard-library.pro并注释掉-injars-outjars-libraryjars-printmapping行。
  7. 编辑库的build.gradle文件,包括: defaultConfig { minifyEnabled minifyEnabled shrinkResources true proguardFiles‘pro卫士-library. true’consumerProguardFiles‘pro卫士-库-library.true’} 您可以对此进行调整,使其具有不同的发布和调试生成行为。
  8. proguard-library-consumer.pro在此文件中包含任何您希望应用于库的#使用者的规则,当它保护自己时。-dontwarn junit.** -dontwarn org.junit.*使崩溃调用堆栈可调试。-keepnames类** { *;} -keepattributes SourceFile,LineNumberTable
票数 9
EN

Stack Overflow用户

发布于 2016-12-05 23:14:20

唯一对我有用的是在我的库中定义这两个选项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
release {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
consumerProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26983248

复制
相关文章
git,程序配置文件管理,忽略本地更改
所以我们应该这样子做:git仓库提供一份配置文件的基础模板,每个人都拉取到本地修改但是要忽略本地更改监听。
宣言言言
2019/12/15
1.1K0
Eclipse中Maven项目交付SVN忽略配置文件
eclipse与maven插件的结合为我们快速搭建开发环境提供了便捷条件,然而maven编译出来的class文件、配置文件和打包文件实际上都不需要进行版本控制,团队中每个人的开发环境可能不太一样,将.settings目录和.project等文件同步到svn甚至还会引起冲突和不便,因此最好将它们忽略,保持一个干净的svn环境。
星哥玩云
2022/07/03
9320
Eclipse中Maven项目交付SVN忽略配置文件
如何保护 SpringBoot 配置文件中的敏感信息
使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些。
好好学java
2021/10/11
7100
如何保护 SpringBoot 配置文件中的敏感信息
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/03/04
6260
如何保护 SpringBoot 配置文件中的敏感信息
使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些。
逆锋起笔
2021/11/15
8890
产品经理常忽略的小程序场景
小程序官方文档有些场景写的不是很全面,有些api也不好找,在对小程序进行产品功能设计时,很容易会出现产品需求填写不完整、需求逻辑不清晰、需求没法实现的情况,下面列出产品经理容易忽略的一些业务场景。
产品的技术小课
2021/11/02
8280
产品经理常忽略的小程序场景
Media RSS的屏幕保护程序
如果你使用苹果电脑,你可能知道,Mac操作系统有一个很酷的功能----RSS Screensaver。
ruanyf
2018/09/21
8410
Media RSS的屏幕保护程序
如何保护 Spring Boot 配置文件中的敏感信息
使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些。
搜云库技术团队
2022/02/17
1.2K0
windows屏幕保护程序
攻击者可以通过执行由用户不活动触发的恶意内容来建立持久性。屏幕保护程序是在用户不活动时间的可配置时间后执行的程序,由文件扩展名为 .scr 的可移植可执行 (PE) 文件组成。Windows屏幕保护程序应用程序scrnsave.scr位于64位Windows系统中,以及基本Windows安装中包含的屏幕保护程序。C:\Windows\System32\C:\Windows\sysWOW64\以下屏幕保护程序设置存储在注册表 () 中,可以对其进行操作以实现持久性:HKCU\Control Panel\Des
浪子云
2022/11/10
1.9K0
PHP程序员容易忽略的几点精华
1、变量、数组的应用技巧   (1)很多人用得不多的数组函数。foreach、list、each。分别举几个例子,应该就能知道了。例:   $data = array('a' => 'data1', 'b' => 'data2', 'c' => 'data3');   while(list($subscript, $value) = each($data))   {   echo "$subscript => $value :: ";   echo "$subscript =>
wangxl
2018/03/08
8500
LyScript 验证PE程序开启的保护
有些漏洞利用代码需要在某个保护模式被关闭的情况下才可以利用成功,在此之前需要得到程序开启了何种保护方式。验证其实有很多方法,其原理是读入PE文件头部结构,找到OPTIONAL_HEADER.DllCharacteristics结构,通过与不同的操作数与运算得到,LyScript插件完全可以实现这个验证功能,实现起来也是很简单的。
微软技术分享
2022/12/22
3100
LyScript 验证PE程序开启的保护
LyScript 验证PE程序开启的保护
有些漏洞利用代码需要在某个保护模式被关闭的情况下才可以利用成功,在此之前需要得到程序开启了何种保护方式。验证其实有很多方法,其原理是读入PE文件头部结构,找到OPTIONAL_HEADER.DllCharacteristics结构,通过与不同的操作数与运算得到,LyScript插件完全可以实现这个验证功能,实现起来也是很简单的。
微软技术分享
2022/12/28
3530
LyScript 验证PE程序开启的保护
数据库的使用你可能忽略了这些
很明显,不同的类型存储的长度有很大区别的,对查询的效率有影响,字段长度对索引的影响是很大的。
itmifen
2018/04/16
2.1K7
数据库的使用你可能忽略了这些
数据库的管理是一个非常专业的事情,对数据库的调优、监控一般是由数据库工程师完成,但是开发人员也经常与数据库打交道,即使是简单的增删改查也是有很多窍门,这里,一起来聊聊数据库中很容易忽略的问题。 字段长度省着点用 先说说我们常用的类型的存储长度: 列类型存储长度tinyint1字节smallint2字节int4字节bigint8字节float4字节decimal(m,d)0-4字节datetime8字节timestamp4字节char(m)m个字节varchar(m)可变长度text可变长度 很明显,不同的类
itmifen
2018/04/16
1K0
DotNet程序配置文件
    在实际的项目开发中,对于项目的相关信息的配置较多,在.NET项目中,我们较多的将程序的相关配置直接存储的.config文件中,例如web.config和app.config。   
彭泽0902
2018/01/04
9820
cocoapods 面试题:只安装新添加的库,已更新的库忽略
在 Bundler 和 RubyGems 的启发下,CocoaPods 被设计成即能处理库之间的依赖关系,又能自动下载并且配置好所需要的库。
公众号iOS逆向
2023/09/11
7510
cocoapods 面试题:只安装新添加的库,已更新的库忽略
数据库的使用你可能忽略了这些 (续)
之前写过一篇文章《数据库的使用你可能忽略了这些》,主要是从一些大家使用使用时容易忽略的地方,如:字段长度、表设计等来说明,这篇文章同样也是这样的主题,只是从另外的几个方面来说说数据库使用中,容易忽略,导致入坑的地方。
itmifen
2018/10/08
5140
如何保护云数据库,云数据库的优势
有很多朋友在使用数据库的时候,都会选择使用云数据库,相对于传统的数据库来说,现在的云数据库已经能够为大家提供更好的选择了。而他主要表现在以下的几点?一点就是云数据库,它能够无限地拓展自己数据需求,能够满足许多朋友的大量数据储存的要求,并且云数据库的安全性相较于传统的数据库来说,也会有一个较大的提升。但是如何保护云数据库,也成为了接踵而至的问题。
用户8715145
2021/09/30
2.7K0
使用Netflix Hystrix保护您的应用程序
借助微服务架构,我们可以构建灵活且可独立部署的软件模块或系统,这些模块或系统通过HTTP资源API等轻量机制相互通信并提供结果。与单一应用程序相比,它具有许多优势,因为许多应用程序正在转向云。马丁和詹姆斯在其网站上写了一篇很好的文章,“ 微服务“,我想你们会喜欢阅读。
February
2018/11/22
6920
保护源码!加密你的 Python 程序代码!
如果我们写的是图形界面程序,可能会打包成相应操作系统平台的二进制运行文件(当然也可能直接发 Python 代码给别人运行)。
州的先生
2021/07/20
7.3K0
保护源码!加密你的 Python 程序代码!

相似问题

程序保护:忽略库程序保护错误

13

Android库的多个程序保护配置文件

15

忽略带有Android程序保护的外部库

35

忽略外部库的前保护配置

38

程序保护:忽略包不会阻止警告。

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文