android技术篇(三)解密data区

android技术篇(二)解密data区
其实data加密和system上锁是相同的性质,不过data加密了部分文件还是可以拷贝进去的,不过里面的数据加密了的是不可修改的,甚至有些连查看都不允许!

解密data区:

解密data分区,我知道的目前有2中方法

一.刷入破解版boot
1.下载工具
链接: http://pan.baidu.com/s/1jHbUa4A 密码: c8k6 然后解压两个工具。
2.将工具里的破解版boot.img解压出来
把boot.img拖到unpackimg.bat图标上就行(fastboot那个压缩包解压了先别动一会才能用到),解压完成之后,会多出两个文件夹,ramdisk和split_img



注意:电脑需要安装上对应的ADB驱动
或者用第三方recovery刷入破解版boot包也行、





最后把这个新的image-new.img文件复制到刚才解压另一个工具得到的fastboot目录,然后手机进入fastboot模式链接电脑后执行刷入破解后的boot.bat

二,直接刷入带破解boot的recovery

带破解版boot的recovery链接: http://pan.baidu.com/s/1skYNTJR 密码: ai4h
将下载下来的recovery替换掉官方的recovery,然后刷入一个root包(刷root包的过程中会解密data分区)

下面是这recovery的介绍:
特点
自动关闭boot校验
miui多余应用精简
ota增量包更新支持
添加ad-hosts支持
避免在rec卡屏的问题
集成SuperSu Pro v2.76
全新的主题界面
自动识别中英文
恢复MIUI官方REC
更多自行体验


简要说明:
1. 增加data分区解密,无需格式化data分区。若解密失效,请取消输入密码并在主界面-清除中选择格式化data分区。(格式化前自行备份资料文件等,如果格式化失败,请检查是否启用rm命令代替格式化)
2. OTA增量更新支持,本质是备份还原过程,因此有条件限制。使用:在设置-打开支持ota。刷入当前官方系统ROM完整包。本TWRP安装在过程会自动判断并备份。此后在系统正常升级ota增量 无需再次刷入。system分区临时文件的关系,需要额外占用内置储存5.2G以上。非特殊,能不用就别用吧 
3. 内置Supersu 因签名问题。安装前,请卸载非内置安装SuperSu。或者修改/删除/data/system/packages.xml签名内容。
4. MIUI多余应用和ad-hosts功能 请参考   小米 4C ZCX-TWRP 
5. 对于可能极少数rec卡屏无响应 ,请强制重启进入系统。再次进入recovery。通常在首次刷入时候发生。

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Android中加密和解密文件,可以使用Java Cryptography Extension (JCE)提供的API进行实现。以下是一个简单的加密和解密图片资源的示例代码: 加密图片资源: ```java public static void encryptImage(Context context, int resourceId, String key) throws Exception { // 加载图片资源 InputStream inputStream = context.getResources().openRawResource(resourceId); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len; while ((len = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, len); } byte[] data = outputStream.toByteArray(); inputStream.close(); outputStream.close(); // 使用AES算法加密数据 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), "AES"); IvParameterSpec ivParameterSpec = new IvParameterSpec(key.getBytes()); cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec); byte[] encryptedData = cipher.doFinal(data); // 将加密后的数据写入文件 FileOutputStream outputStream1 = context.openFileOutput("encrypted_image", Context.MODE_PRIVATE); outputStream1.write(encryptedData); outputStream1.close(); } ``` 解密图片资源: ```java public static void decryptImage(Context context, String key) throws Exception { // 读取加密后的数据 FileInputStream inputStream = context.openFileInput("encrypted_image"); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len; while ((len = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, len); } byte[] encryptedData = outputStream.toByteArray(); inputStream.close(); outputStream.close(); // 使用AES算法解密数据 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), "AES"); IvParameterSpec ivParameterSpec = new IvParameterSpec(key.getBytes()); cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec); byte[] data = cipher.doFinal(encryptedData); // 将解密后的数据转换成Bitmap对象 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); // 显示解密后的图片 ImageView imageView = findViewById(R.id.imageView); imageView.setImageBitmap(bitmap); } ``` 需要注意的是,加密和解密时使用的密钥应该保持一致,否则解密会失败。另外,该示例中使用的是对称加密算法AES,也可以使用其他加密算法,如RSA等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值