安卓应用程序加密,签名和发布
1.加密,也就是代码混淆,目的呢,就是防止别人使用反编译工作破解。什么是反编译呢,对于安卓来说,就是你把源代码编译成APK,这APK别人能使用,但就是不明白你怎么做出来的,这时他使用反编译,把APK变成源代码,他一读源代码,就可以做出来一个和你一模一样的程序,从而抢了你风头。如果你研究了什么比较牛B的数学算法,开发了什么人人称好的游戏,只希望这份荣耀自己一直占有用,不希望这么快就和别人分享,你希望这个秘密能够保存的更持久一些,或者一些其他的原因,反正就是不希望别人快速山寨出你的软件,这时你就可以使用加密。但加密和反编译是相对的,加密只能减慢别人山寨的速度,但对于我们聪明的中国人来说,只要有时间,山寨出来是迟早的事,所以呢,不要太迷信加密,加密只能使你的产品保持新鲜那么一小会儿。如果真有什么厉害的创意需要保密,那就申请专利吧。
安卓对于APK软件的加密,在2.3版的时候引入了proguard,如果你的工程是2.3,可以在你的工程目录下找到一个名为proguard目录。这目录会对你的代码做一定程度的混淆,要使用proguard混淆代码,只需要在项目根目录下的文件default.properties 里添加一行代码:
proguard.config=proguard.cfg
如下,就是一个完整的default.properties内容
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "ant.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-10
proguard.config=proguard.cfg
但安卓默认不混淆 Activity 、Service ... 类的 子类,核心代码不要写在这些类里。如果你希望更深一层加密,那就把核心代码使用C,C++来写的,使用jni技术,因为用C或C++编写的代码相对于Java来说很难被反编译。
2。签名:
要发布应用程序,从安全角度来说,签名是必不可少的,防伪,防替。特别在当前中国手机软件业乱象纷呈,吸流量吸费软件横行的年代,如果你开发一个牛B软件,别人做一个相同名字相同功能的山寨吸费吸流量软件,你可就惨了。恶名远播不说,说不定还要吃官司。有了签名,就能帮你洗清冤曲,还以清白。安卓没有第三方答名授权中心,只在发生纠纷时,可以通过第三方机构仲裁。
创建key,需要用到keytool (位于jdk1.6.0_24\jre\bin目录下),使用产生的key对apk签名用到的是jarsigner (位于jdk1.6.0_24\bin目录下),安装了JDK后,如果设置了路径,打开cmd或者终端,输入keytool,就能看到他的帮助信息,在ubuntu下和win下一样。
a,生成签名: keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore /*说明:-genkey 产生密钥-alias demo.keystore 别名 demo.keystore-keyalg RSA 使用RSA算法对签名加密-validity 40000 有效期限4000天-keystore demo.keystore */ b,签名: jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore /*说明:-verbose 输出签名的详细信息-keystore demo.keystore 密钥库位置-signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/
c.查看签名:
jarsigner -verify -verbose -certs demo_signed.apk
安卓调试的软件,都有测试的自签名,不能再签名,可以右健点击选择export导出应用程序签名,别人的博客有介绍,感兴趣的可以去看看,
http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html,
d.签名之后,签名之后,用zipalign(压缩对齐)优化你的APK文件。
zipalign -v 4 demo_signed.apk final.apk 3。发布,找一个用户多的应用程序的网站,注册帐号,上传你的程序,现在国内很多网站都可以免费发布,如安智市场,注册也很快,一会儿就注册完成了。也可以注册Android Market吧,听说需要几十美金就可以注册一个开发者帐号,上传应用程序,以前听说我们大陆不支持收费软件,不知道现在开通了没有。这个市场是相对全球的,最好开发的软件支持英语。我注册了一个安智市场的开发者帐号,也就几分钟就完成了,android marker可能会需要更多的时间,呵呵。公布下国内目前的安卓发布网站。 1.Google Market 谷歌官方市场,你可以注册成为开发者,来上传自己的应用;但目前谷歌官方市场的英文用户大于中文用户,如果你可以同时上传中文和英文,应该更加符合用户需求;开发者账号审核周期大约1-2天,你上传的应用只要符合要求可以立即被发布。 2.运营商移动应用商店(排名不分先后) : 中国移动MM:http://mm.10086.cn/ 中国联通WoStore:http://store.wo.com.cn/ 中国电信189Store:http://www.189store.com/ 3.独立电子市场(排名不分先后): 亿优市场: http://www.eoemarket.com/ 木蚂蚁:http://www.mumayi.com/ N多网: http://www.nduoa.com/ 魅族市场:http://app.meizu.com 机锋市场: http://apk.gfan.com/Index/Index.html 安卓市场: http://sc.hiapk.com/himarket 安卓星空: http://www.starandroid.com/apkclient 应用汇: http://www.appchina.com/ 安智市场: http://market.goapk.com/(不支持软件墙) XDA软件市场: http://android.xda.cn/ 历趣市场: http://an.liqucn.com/ 网易市场:http://m.163.com/android/ 爱米软件商店: http://www.aimi8.com/ 开齐应用商店: http://market.kaiqi.com/ 安丰网: http://www.anfone.com/(不支持软件墙) 喜游游: http://www.seyoyo.com/ 优优网:http://www.uooyoo.com/soft/9716.shtml 酷派:http://www.coolmart.net.cn/developer/coolmart/index.jsp TOMPDA市场:http://www.tompda.com 飞鹏:http://www.fpwap.com 非凡软件站:http://www.crsky.com/default.html ZOL:http://xiazai.zol.com.cn/downloa ... android_page_1.html 安卓星空:http://www.starandroid.com/dev/index APK小游戏:http://www.apkxyx.com 方式二、Android手机论坛的合作 类型:极少费用 按照第一种方式仅仅是提交到下载平台是远远不够的,基本上中国Android手机用户都会泡论坛;因为有太多需要沟通和交流的,而论坛也是一些国外最新应用首先发布的集散地。 和论坛的合作方式有两种:1,建立官方账号,有新版或升级,或意见反馈可以直接于用户接触; 2,于论坛官方合作活动,活动是带动安装量,以及收集用户反馈的最好方式,一般一次好的活动策划,可以为一个应用带来几千至上万的安装;成本仅仅是活动奖 品的赞助,大约每次活动几千元。(当然目前一些相对商业化的论坛已经开始针对活动收取广告费,那就另当别论了)。 目前国内比较火排名前7位的Android手机论坛的推荐: 安致论坛 AVAV安卓论坛 木蚂蚁手机乐园 安智论坛 摩托罗拉手机论坛 风暴数码 安卓论坛 ZOL应用下载 小评:论坛的用户忠诚度高,如果活动成功会行成较好的口碑传播。 方式三、寻找第三方ROM(定制操作系统)合作内置 类型:免费 目前国内的用户在拿到手机,除了到论坛去交流问题,寻找资源,也会寻找更加符合国人使用习惯的第三方ROM进行刷机;目前人气比较高的几款第三方ROM都是以论坛进行发源地。 MIUI ROM 由小米出品的MIUI ROM,因为其美化的效果在初期吸引了众多追随者,但随之也暴露了一些例如太过于耗电、更新频繁等弊端;但仍然不影响初级用户对它的喜爱。 因为小米除了MIUI ROM做了众多周边应用,据了解至少有上百款应用,因此想植入的最基本前提是你的应用是否和他目前已开发的上百款应用没有竞争关系。 点心OS 由创新工场的点心团队推出的点心OS,目前不对用户开放;为一些国产手机厂商例如,夏普,提供手机系统方案。优势在于如果能够被点心内置,就有机会直接 在这些国产手机中出现,预计使用点心OS的手机在2011年下旬应该会面世;但和点心的合作,需要有对时间周期有较强的心里准备,因为从一款手机的操作系 统定制到手机面世大概也需要一年多的时间。 木蚂蚁ROM 木蚂蚁的ROM目前还未行成品牌系统化,但木蚂蚁联合民间高手推出的木蚂蚁ROM,在众多Android的用户中获得一致口碑,尤其是木蚂蚁HTC DHD ROM,被成为目前国内DHD ROM中性能最强的一款,因此获得了众多追随者;并且其推出的一些列一键ROOT等工具也帮它吸引了一批ROM爱好者。并且相对来说,木蚂蚁目前更关注在 Market和论坛而没有开发过多应用,相对与合作伙伴会发生的竞争关系及冲突较少。其王牌主打功能以 省电、透明、高效为主。 参考文章: http://erbo2008.iteye.com/blog/1326786 http://ictch.iteye.com/blog/1045194 http://hi.baidu.com/lvqiyong/blog/item/ef8a8657da8491deb645ae12.html http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html http://www.eoeandroid.com/forum.php?mod=viewthread&tid=154655
安卓应用程序加密,签名和发布相关推荐
- 网易云加密--Android安卓移动应用程序加密加壳保护方案防破解防逆向分析防游戏外挂
网易云加密--Android安卓移动应用程序加密加壳保护方案防破解防逆向分析防游戏外挂 一.服务简介 网易云加密为网易公司旗下产品,致力于为移动应用程序提供专业保护方案,让加固变得更简单,一键搞定.目 ...
- 安卓APP_ 其他(1) —— 程序的签名打包并在手机上运行
摘自:安卓APP_ 其他(1) -- 程序的签名打包并在手机上运行 作者:丶PURSUING 发布时间: 2021-03-29 20:58:26 网址:https://blog.csdn.net/we ...
- ionic2 mac android,Ionic制作Hybrid App系列二:Mac环境下Ionic release版本APK的签名与发布...
Android应用程序签名 在前一章节里面,通过ionic run使app成功在手机上面跑起来,并且将android-debug.apk放到手机上后发现也能正常的安装,debug版本和release版 ...
- 我的第一个安卓应用程序_今天,我启动了我的第一个移动应用程序。 这是我学到的...
我的第一个安卓应用程序 by Harshita Arora 通过Harshita Arora 今天,我启动了我的第一个移动应用程序. 这是我学到的 (Today I launched my first ...
- 【阿里聚安全·安全周刊】阿里安全潘多拉实验室完美越狱iOS11.2.1|Janus漏洞修改安卓app而不影响签名
原文链接:点击打开链接 摘要: 关键词:阿里安全潘多拉实验室丨Janus漏洞丨御城河丨编程语言出现漏洞丨APP追踪定位丨银行APP存在漏洞丨安卓统一推送联盟|AhMyth RAT|HP笔记本 关键词: ...
- 【阿里聚安全·安全周刊】阿里安全潘多拉实验室完美越狱iOS11.2.1|Janus漏洞修改安卓app而不影响签名...
关键词:阿里安全潘多拉实验室丨Janus漏洞丨御城河丨编程语言出现漏洞丨APP追踪定位丨银行APP存在漏洞丨安卓统一推送联盟|AhMyth RAT|HP笔记本 本周资讯top3 [越狱苹果]独家探寻阿 ...
- 记一次安卓小程序sign的逆向
记一次安卓小程序sign的逆向 最近因为疫情原因居家办公了,而且任务量比较大,其余的时间也都在学习,这次记录一个前几天遇到的一个特殊的sign值的逆向,之前写的安卓测试技巧阅读量还可以,可以看出大 ...
- django 1.8 官方文档翻译:8-5 加密签名
加密签名 web应用安全的黄金法则是,永远不要相信来自不可信来源的数据.有时通过不可信的媒介来传递数据会非常方便.密码签名后的值可以通过不受信任的途径传递,这样是安全的,因为任何篡改都会检测的到. D ...
- Android APK程序加密,防止被别人反编译
作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来. Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-s ...
最新文章
- 四月青少年编程组队学习(图形化四级)Task01
- html三个div相同高度,如何使用jquery保持多个div的高度相同?
- mysql 和 mongo db 语法对比
- 张亚勤:未来10年AI+生物制药大有可为,我们正开展破壁计划 | MEET2022
- 请用JavaScript实现一个函数,接受一-个IP白名单列表whitelist以及列表ipList
- Swift中文教程(十八) 类型检查
- Memcached:高性能的分布式内存缓存服务器
- C#——WebApi 接口参数传参详解
- CTF-bacon(培根密码)
- NeRF神经辐射场代码流程图
- 动态代理实例——增强Waiter接口
- 奋斗的小孩系列 FPGA学习altera系列: 第一篇 软件的安装与破解
- ORAN C平面 Section Type 3
- 深度学习LSTM框架图PPT高清
- 深入理解Android相机体系结构之二
- linux查看pcie网卡命令,kudzu命令查看及设置网卡等硬件信息
- SIFT经典论文翻译版
- Repeater嵌套总结
- Android引用ttf图标字体库
- 路由器修改dhcp服务器地址,修改路由器dhcp服务器地址