Android 手机克隆/一键换机原理初探

前言

  最近换了一个表,错了换了一个手机。大家都知道换手机是一个很开心的事情,但是在换手机过程中原来手机App信息,多媒体信息等切换时一件很麻烦和耗时的事情。偶然发现手机自带了手机克隆功能,这个非常方便的解决了我们上述的痛点今天我们初步研究一下怎么实现上述的功能。

一. 具体实现

我们知道手机需要迁移的数据一般是多媒体和App数据,那么我们就分别从这两个方面入手。至于两个手机怎么建立WIFI连接和蓝牙连接这个不在本篇的考虑范围之内。

1.1 原理

手机克隆和一键换机的原理大概如下:

上面这两种方案都大同小异,主要都是将数据从旧的终端迁移到新的终端上面去。只是传输中介有点不一样。

1.2 迁移音视频数据

下面我们以第二种方案来说民给,这个比较简单,我们可以在旧手机端遍历多媒体数据库,然后建立网络连接将数据拷贝到新手机端,这样就完成了多媒体数据的迁移。

1.3 App及App数据的迁移

多媒体的迁移是比较简单的,有难度的是App以及App数据的迁移。下面我们以一个简单的例子来说明。就是我们久手机里面有一个应用叫做ServiceHost.ServiceHost的应用,需要将其迁移到另外一台手机。

前期准备:两台Android终端

1.3.1 旧的Android终端

需要将数据拷贝出来,可以执行如下脚本,当然这些脚本的功能,手机厂家一般会预置一个App和相关服务来执行实施。这段脚本的作用主要是将App和App的数据拷贝出来,大家只要理解了这个原理,就可以在App里面通过代码执行类似操作

adb root
adb remount
adb shell setenforce 0
:: 拷贝App
adb shell "tar cf /data/app/ServiceHost.ServiceHost-ZDfEk43pd0Efyd-118aF4A==.zip /data/app/ServiceHost.ServiceHost-ZDfEk43pd0Efyd-118aF4A=="
adb pull /data/app/ServiceHost.ServiceHost-ZDfEk43pd0Efyd-118aF4A==.zip:: 拷贝App数据
adb shell "tar cf /data/data/ServiceHost.ServiceHost.zip /data/data/ServiceHost.ServiceHost"
adb pull /data/data/ServiceHost.ServiceHost.zip
pause

运行脚本

C:\Users\XXX\>adb root
adbd is already running as rootC:\Users\XXX\>adb remount
remount succeededC:\Users\XXX\>adb shell setenforce 0C:\Users\XXX\>adb shell "tar cf /data/app/ServiceHost.ServiceHost-ZDfEk43pd0Efyd-118aF4A==.zip /data/app/ServiceHost.ServiceHost-ZDfEk43pd0Efyd-118aF4A=="
removing leading '/' from member namesC:\Users\XXX\>adb pull /data/app/ServiceHost.ServiceHost-ZDfEk43pd0Efyd-118aF4A==.zip
8362 KB/s (99507712 bytes in 11.620s)C:\Users\XXX\>adb shell "tar cf /data/data/ServiceHost.ServiceHost.zip /data/data/ServiceHost.ServiceHost"
removing leading '/' from member namesC:\Users\XXX\>adb pull /data/data/ServiceHost.ServiceHost.zip
8421 KB/s (110715904 bytes in 12.838s)C:\Users\XXX\>>pause
请按任意键继续. . .

执行结果

1.3.2 旧的Android终端新的Android终端

这里需要是执行应用安装和数据的拷贝,这个只是一个演示脚本,可以通过App内执行类似代码片段进而执行。

adb remount
adb shell setenforce 0
adb push  ServiceHost.ServiceHost-CZtGOt1HDc-lSyYEWeVbbg==.zip  /data/app/
adb shell " cd /data/app/ && tar xf ServiceHost.ServiceHost-CZtGOt1HDc-lSyYEWeVbbg==.zip ServiceHost.ServiceHost-CZtGOt1HDc-lSyYEWeVbbg== "
adb shell " chmod 777 -R  /data/app/ServiceHost.ServiceHost-CZtGOt1HDc-lSyYEWeVbbg== "
adb shell " pm install -r /data/app/ServiceHost.ServiceHost-CZtGOt1HDc-lSyYEWeVbbg==/base.apk "
adb push ServiceHost.ServiceHost.zip /data/data/
adb shell " cd /data/data && tar xf ServiceHost.ServiceHost.zip  ServiceHost.ServiceHost "
adb shell " chmod 777 -R /data/data/ServiceHost.ServiceHost "
adb shell sync
adb shell stop zygote
adb shell start zygote
ping -n 50 127.0.0.1>nul
adb shell am start -n ServiceHost.ServiceHost/md5bd7813ef94204169d60c7bafe7bcc17a.ServiceHostView
pause

运行脚本

C:\Users\XXX\>adb remount
remount succeededC:\Users\XXX\>>adb shell setenforce 0C:\Users\XXX\>>adb push  ServiceHost.ServiceHost-CZtGOt1HDc-lSyYEWeVbbg==.zip  /data/app/
7063 KB/s (99532800 bytes in 13.760s)C:\Users\XXX\>>adb shell " cd /data/app/ && tar xf ServiceHost.ServiceHost-CZtGOt1HDc-lSyYEWeVbbg==.zip ServiceHost.ServiceHost-CZtGOt1HDc-lSyYEWeVbbg== "C:\Users\XXX\>>adb shell " chmod 777 -R  /data/app/ServiceHost.ServiceHost-CZtGOt1HDc-lSyYEWeVbbg== "C:\Users\XXX\>>adb shell " pm install -r /data/app/ServiceHost.ServiceHost-CZtGOt1HDc-lSyYEWeVbbg==/base.apk "
Error: Could not access the Package Manager.  Is the system running?C:\Users\XXX\>>adb push ServiceHost.ServiceHost.zip /data/data/
7298 KB/s (103127040 bytes in 13.798s)C:\Users\XXX\>>adb shell " cd /data/data && tar xf ServiceHost.ServiceHost.zip  ServiceHost.ServiceHost "C:\Users\XXX\>>adb shell " chmod 777 -R /data/data/ServiceHost.ServiceHost "C:\Users\XXX\>>adb shell syncC:\Users\XXX\>>adb shell stop zygoteC:\Users\XXX\>>adb shell start zygoteC:\Users\XXX\>>ping -n 50 127.0.0.1 1>nul

执行结果

1.3.3 原理分析

好了,下面我么分析一下原理,主要是将旧终端的App应用数据拷贝出来,然后安装到新的终端下面从而完成App已经App数据的迁移。大家get到了吗。

总结

关于手机克隆,现在来总结一下:

  • 对于多媒体的拷贝比较简单,主要是通过遍历多媒体数据库然后将遍历的资源从久的Android终端拷贝到新的Android终端即可。
  • 对于App的克隆过程要复杂一点,需要将/data/app下面的App应用拷贝,并且需要将/data/data下面的App数据也进行相关的拷贝。

写在最后

本篇只是一个大概的原理讲解,如果真的要实现可能会有其它的问题。但是原理有了,我相信实现起来至少有了思路了,最终的实现只是时间问题了。

Android 手机克隆/一键换机原理初探相关推荐

  1. android一键换机功能实现,Android 手机克隆/一键换机原理初探

    Android 手机克隆/一键换机原理初探 前言 最近换了一个表,错了换了一个手机.大家都知道换手机是一个很开心的事情,但是在换手机过程中原来手机App信息,多媒体信息等切换时一件很麻烦和耗时的事情. ...

  2. ios android 一键换机,‎App Store 上的“手机搬家 - 一键换机助手”

    极速数据迁移,一键手机克隆,换机更便捷. 数据传输工具,一键传输通讯录.照片.视频至新手机,超实用的手机一键搬家工具! 没有WiFi? 新旧手机换机太麻烦?流量不够用?传大文件太慢? 没关系,快来试试 ...

  3. android手机 一键还原,android手机怎么一键还原系统,不是恢复出厂设置

    安卓手机使用一段时间后就会发现系统变慢变卡,这时知道刷机的就自然想到重新刷机就好,这是我们就需要去网上再去寻找新的ROM.可是如果已经刷机刷烦了,不愿意再去寻找新的ROM,这时我们只需要将手机内存和缓 ...

  4. 一键换机或者克隆的原理分析

    两种换机的数据迁移原理:wifi或者蓝牙,以及ADB命令操作 (1条消息) Android 手机克隆/一键换机原理初探_IT先森-CSDN博客https://blog.csdn.net/tkwxty/ ...

  5. ios系统软件迁移到安卓_苹果一键换机到安卓(苹果安卓一键迁移的软件)

    去年开始,以iPhone为首的苹果系列产品,在中国销量出现严重下滑.2018年第四季度,苹果出货量下降约300万台,同比下降约22%.全年,iPhone出货量从2017年的3670万台,下降至2018 ...

  6. 如何把npf号码本从三星手机导入android,如何将旧手机中联系人导入Android手机

    越来越多的人开始换用Android手机,如何方便的将各类旧手机的联系人导入到新Android手机中是换机用户最关注的问题之一.接下来,小编将介绍个非常便捷的联系人导出和导入方法. 第一步,QQ同步助手 ...

  7. android快速换机,华为手机换机数据转移用什么最快?华为一键换机方法汇总

    前有P20系列,后有Nova3系列,华为今年的产品可谓百花齐放,同时也引发了新一波换机热潮.换机虽然兴奋,可数据的迁移可真让人头疼.毕竟手机算是我们的贴身物品了,很多数据都会往手机里存,数据多了又会担 ...

  8. Android手机一键Root原理分析(作者:非虫,文章来自:《黑客防线》2012年7月)

    之前几天都在做Android漏洞分析的项目,万幸发现了这篇文章.废话不多说,上文章! <Android手机一键Root原理分析> (作者:非虫,文章来自:<黑客防线>2012年 ...

  9. 手机克隆android iphone,苹果官方应用让 Android 手机一键克隆到 iOS

    原标题:苹果官方应用让 Android 手机一键克隆到 iOS 作为iOS 9 的一部分,苹果今天发布了一款应用"Move to iOS",为 Android 用户提供无缝迁移的服 ...

最新文章

  1. 一小时学会用 Opencv 做贪吃蛇游戏(Python版)
  2. 输入一个链表,反转链表后,输出新链表的表头(ACM格式)(美团面试题)
  3. Error: Could not access the Package Manager. Is the system running?
  4. python表白程序-程序员python表白代码
  5. HDU 1517 A Multiplication Game
  6. es6 --- 内置的Symbol值
  7. 使用dotnet Cli向nuget发布包
  8. 使用监听器:定时清除map缓存的key value .
  9. 算法不会,尚能饭否之队列
  10. 解决IE6中 PNG图片透明的终极方案-八种方案!
  11. QLV格式的视频怎么在线转化成MP4
  12. Steam忘记账号如何在文件夹中找回
  13. ubuntu 20.04 设置静态ip
  14. delphi7中的局部变量和全局变量
  15. html title中加图标,科技常识:HTML中title前面小图标的实现_如何给网页标题添加icon小图标...
  16. 输入大写字母打印三角形
  17. PyCharm中怎么将非当前工程文件的目录的文件加到当前工程中
  18. 2018前端精品面试文章总结
  19. 06-Maven生命周期和单元测试
  20. python实现多句话翻译多语种(调翻译接口)

热门文章

  1. java版出库入库_Java实现商品的查找、添加、出库、入库操作完整案例
  2. 两个卡方分布之和_推荐基础算法之矩阵分解PFM
  3. linux操作系统各版本直接的区别?
  4. java并发编程的艺术-(4)
  5. 高仿精仿金山手机卫士源码项目完整版
  6. android 百度手机卫士 卸载,百度卫士卸载方法汇总
  7. python3.7 32位下载_python3.7.2下载
  8. 阿里云手机号发送验证码
  9. keil5工程文件中的hex消失
  10. Centos7安装subversion