2013年9月27日 星期五 晴

我总是被接到一些无头无尾的邮件,没有人告诉我上下文,然后就让我去做什么项目了。

这个D项目也不例外,去和客户谈的时候,我一无所知。见面聊了才知道,先前别的部门做了,我们部门移植了一下,客户是来让我们改bug的。

客户需求:

1. 最根本需求:客户有自己的内部通讯录,员工可以看到通讯录里人的名字,但不能看到电话号码。

2. 围绕着需求1,演变出不想让员工自行安装APK,比如360安全卫士等能截获号码看到。

3. 围绕着需求1,担心log能看到。

之前开发情况:

1. 只是把android Contact的位置偏移了一下,写到数据库里的都是明文的号码。

2. 在通话记录、短信里显示的是一个真实号码,其中中间几位被*来替代,比如138****8888。

有一些bug,比如拨通话记录里的A,不小心就拨成B就出去了。之前的代码,我一行都没看,bug有那么五六个,看起来比较烦。

我也是没事,于是给客户提了两条主要的意见:

1. APK安装,我们也不知道你哪些可以安装,哪些不能安装,所以我可以提供一个白名单接口,动态更新,由他们来决定要更新哪些APK。

我说我能做到这一条,客户已经喜出望外了。

2. 能否做一个网络通讯录?号码都在底层和网络这边加密和解密就好,本地不存储通讯录。

我是这样说服客户的:你看过《暗算》么?就是谍战片,那些通过电报或者电台里传输的,很多都是加密过的。如果你加密方式足够好,那之前的都可以不做了。

客户当然一时时接受不了的,他得想半天。不过他当场表示,我提出的更好,更具安全性。

我也是有私心的,我就是不想改那些bug,客户同意我把自带的Mms和Contact给去掉,那我只要实现了,就没有什么bug了。

从底层来改,修改的地方不多,比较简洁,也符合我的风格。

工作量不大,具体的一些工作如下:

一、分别在底层和网络服务器都加上加解密。

- 在framework比较靠近底层的地方(当然,modem才是通讯更底层的地方),分别修改通话和短消息这几个地方。

事实上,我记得我只修改了5个文件,分别是发短信,收短信、来电、去电、Mms,分别在这些地方调用函数一下就可以了。

以来电为例:

来电--》framework层加密来电号码-》上层处理或者广播时会显示加密的号码--》客户APK截获

去电是一个反向的过程,原理是一样的。

- 加密后的号码,报给客户的APK,客户的APK用约定好的加解密算法来解密即可。

如果担心有人反编译APK,加解密算法可以用C来打包处理,实在不行就上传到他们的后台服务器处理好了。

- 加解密算法:

没有必要采用非对称加密算法,采用简单的对称加密算法就好。

加密的密钥可以由IMEI + IMSI + 独特密钥就好。

服务器上记录了每台手机的IMEI和IMSI号,离职的时候,禁用这个账号,对传上来的IMEI和IMSI不予理睬即可。

如果员工更换手机,那么IMEI就不起作用了,防止员工换手机吧。

如果员工更换了SIM卡,那么IMSI也不起作用了,防止员工换SIM卡去运营商营业厅打通话清单。

二、APK安装动态白名单

- 直接修改PackageInstaller.apk的源码,安装的时候加个条件判断,不符合条件就不能安装就行。这个条件,就是白名单,可以读取比如一个文件或者APK的preferenece等。

- 在framework里封杀adb安装的方式,这应该可以防止豌豆夹和91助手之类的安装吧。

- 客户要求干掉文件管理器。

- 考虑到的问题:其实apk安装的底层函数我没修改,如果有人直接调用函数直接安装的话,可能是可以的。

如果有人能获取root权限的话,可以直接push进去的,除非我连手机自带的adb也改了。

当然,有了上述的加解密算法,APK的动态白名单无足轻重,但我也可以后续在别的项目上使用。

现在我的斯玛特卡只有300多块钱了,有点怀念以往有几千块钱的时候挥金如土的样子,国庆在家写1~2篇专利好了,一篇专利1500元。专利其实很好写,你能写博客,稍微加工一下,主要是加解密的算法和过程写详细一点(审核专利的只看有没有重复的,如果算法重复,那就换另外一种算法就成,反正就强调新颖性、有价值之类的就好),垃圾专利的钱还是很好骗的。

android通讯录加密,一种手机通讯录加解密方式相关推荐

  1. 学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密(方式一)

    参考地址:https://blog.csdn.net/baidu_38990811/article/details/83540404

  2. android 悬浮按钮 魅族,Android使用RecycleView实现魅族手机通讯录界面

    原标题:Android使用RecycleView实现魅族手机通讯录界面 本文作者 本文由_小马快跑_投稿. _小马快跑_的博客地址: http://www.jianshu.com/u/18502855 ...

  3. android的kotlin通讯录,Android Loader的使用以及手机通讯录的获取方法

    Android的主线程中执行长时间操作,导致界面无响应,会引起ANR.如果需要执行较长时间的操作,一般会在另一个线程处理,然后将数据转交给主线程进行显示,Android本身为我们提供了一些机制处理这种 ...

  4. mac 备份android 手机通讯录,苹果手机怎么备份通讯录到电脑?手机通讯录如何备份...

    苹果手机怎么备份通讯录到电脑?手机通讯录如何备份?自从上次小编将手机的通讯录误删后,就对手机的数据备份恢复有了更多的研究,对于苹果手机如何备份通讯录的问题,小编可以通过使用数据恢复软件来解决,可以备份 ...

  5. 学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密

    学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密 技术标签: RSA  AES  RSA AES  混合加密  整合 前言:    为了提高安全性采用了RSA,但 ...

  6. SpringBoot八种bean的加载方式

    目录 第一种bean的加载方式-配置文件 第二种加载bean方式-注解和扫描 创建第三方的bean对象 第三种加载bean方式-不使用配置文件 扩展-bean的加载方式扩展FactoryBean< ...

  7. 微信公众平台开发(9)--消息加解密方式

    点此查看 微信公众号/微信网页/微信支付/企业微信/小程序开发合集及源代码下载 本文目录 1. 前言 2. 判断加解密方式 3. 测试 4. 小结 1. 前言 登录微信公众平台,点击[设置与开发]-[ ...

  8. Android屏幕导出联系人,安卓手机通讯录导出到电脑(三种方法帮你导通讯录)...

    换手机怎么导通讯录? 手机中有几个东西比较重要,笔者罗列了一下,最重要的东西因人而异,不过基本上就两个:"通讯录"."照片",照片平时可以拷贝出来,通讯录在更换 ...

  9. android电话本导入iphone,怎么把安卓手机通讯录导入iphone?安卓手机通讯录导入苹果手机三大方法分享...

    Android是一种基于Linux的自由及开放源代码的操作系统,也正因此安卓系统迅速扩大市场份额;最近很多人都在问怎么把安卓手机通讯录导入iphone?下面为你带来安卓手机通讯录导入苹果手机三大方法分 ...

  10. Android 代码新增联系人至手机通讯录中

    因项目需求,需要将本产品的客服电话信息,默默写入用户手机通讯录中,作为一个程序员,内心是拒绝的,但仍要实现该功能. 1. 动态申请读写权限 首先,在 Maniifest.xml 文件中添加如下两个权限 ...

最新文章

  1. 程序员的视角:java GC
  2. 1660s功耗多少w_1660显卡要多大电源?GTX1660用多大电源合适
  3. (数据结构)前缀,后缀以及中缀表达式
  4. 【数据结构与算法】红黑树的Java实现
  5. java筛选法求质数_用筛选法找出N内所有素数(质数)
  6. 视频会议受追捧,省钱又节能
  7. 46.Android 自己定义Dialog
  8. 双层pdf解析 java_java转双层pdf
  9. linux下驱动程序数字签名,64位Windows操作系统为驱动程序添加测试数字签名
  10. origin8.1中文乱码设置方法
  11. 进销存软件哪个简单好用?
  12. crt中 新建的连接存储在哪_SecureCRT永久保存配置的方法
  13. 个人博客如何申请ICP备案
  14. C primer plus编程练习答案(上)
  15. Word里输入上下标五种方法
  16. 好方法教你如何让你的博客变更值钱
  17. 26设计模式之建造者模式
  18. 2.3 响应文件(Response File)
  19. Android神奇“控件”-----RemoteViews
  20. vue 快速入门指南(一)

热门文章

  1. SAP HR人力资源管理
  2. flink sql运用入门
  3. 温湿度传感器实验-传感器原理及应用实验
  4. NGUI常见功能解释
  5. Java格式化SQL语句
  6. Visual Studio 2013官方简体中文专业版/旗舰版/高级版下载(含激活序列号)
  7. 推荐linux输入法,linux中文输入法 【搞定技巧】
  8. 2022爱分析· 地产科技厂商全景报告
  9. 袁春风 计算机组成原理 chap4,精品计算机组成原理 [袁春风]chap4homework.pdf
  10. 超全的 Python 可视化教程,收藏