切换应用程序源时如何迁移应用程序数据 -- applications 领域 和 updates 领域 和 alternative-markets 领域 android 相关 的问题

How to migrate app data when switching the app source


简体版||繁體版
1
vote

问题

中文

说我已经从PlayStore安装了"FunnyApp" ,现在它会在F-Droid启发 - 我想用F-Droid一个(相同的问题反之亦然)替换PlayStore版本。问题是,我不能简单地从新来源更新应用程序,因为签名不匹配(F-Droid与自己的密钥标志)。 FunnyApp并不提供任何"导出" 功能,但我不想丢失其数据。

执行适当的交换机的方法是什么可能的?

陷阱:

  • 简单地从"其他来源" 更新/安装不起作用(签名不匹配)
  • 执行仅限数据 adb backup 无助,因为还原将出于同样的原因
  • 失败

我对我没有尝试的根的解决方案有一些模糊的想法(例如,尽管签名也能够恢复数据,但也有一些XPOSed模块(Constalleropts?)提供给"抑制签名警告")。但在"搞砸大" 之前,我想在这里问一个人是否可能已经成功尝试了一些解决方案。

非根解决方案首选(因此,更多人可以从),基于根的解决方案可以接受,xpose作为要求OK。


某些原因可能想要"切换源" (AKA"Cross-Update" ):摆脱专有依赖项,应用程序不再在原始源...

上更新
english

Say I have "FunnyApp" installed from Playstore, now it turns up at F-Droid xe2x80x93 and I want to replace the Playstore version by the F-Droid one (same issue vice-versa). Trouble is, I cannot simply update the app from the new source as the signature doesn't match (F-Droid signs with their own key). FunnyApp doesn't offer any "export" functionality, but I don't want to lose its data.

What would be possible approaches to perform a proper switch?

Traps:

  • Simply updating/installing from "the other source" does not work (signature mismatch)
  • performing a data-only adb backup doesn't help, as the restore will fail for the same reason

I have some vague ideas on root-based solutions which I haven't tried yet (e.g. Titanium Backup might be able to restore data despite of the changed signature, and there's also some XPosed module (InstallerOpts?) offering to "suppress the signature warning"). But before "messing up big" I thought to ask here if someone might already have successfully tried some solution.

Non-root solutions preferred (so more people can profit from), root-based solutions acceptable, XPosed as requirement OK as well.


Some reasons why one might want to "switch sources" (aka "cross-update"): Getting rid of proprietary dependencies, app no longer updated at original source xe2x80xa6

        
   
   

回答列表

2
 
vote
vote
最佳答案
 

无根

抱歉但是afaik它是不可能的:(我从未见过任何App /工具/实用程序成功修改其他应用程序的数据,甚至没有阅读!
可选地,您可以在自定义恢复中执行此操作,但谁使用自定义恢复而无需植根?所以如下阅读。

简单根(手动方式)

不要太努力。只需将其原始数据移走,卸载原始应用程序并安装新的应用程序,然后移动数据返回和 chown 。 sample shell命令如下。

  # mv /data/data/com.example.foo /data/media  * UNINSTALL_ORIGINAL_APP  * INSTALL_NEW_APP # ls -ld /data/data/com.example.foo  * take note of the user (e.g. u0_a123) # mv /data/media/com.example.foo /data/data # chown -R 10123.10123 /data/data/com.example.foo   

每个步骤的说明:

  1. 将原始应用程序数据移动到替代位置。因为Androis自动删除某些目录中的无关文件,我们需要一个安全的地方作为alt。在 /data/media 中,忽略AFAIK未知文件。
  2. 替换应用程序。没有解释。
  3. 获取新安装应用程序的UID。 错误的uid将使包安装程序删除应用程序数据。
  4. 移动数据返回并更改UID。

一个小笔记:内置 chown 命令不接受选项 -R (递归)在Android L或更低中。在这种情况下,您需要BusyBox。在Android M和Up中,它只是适用。

根实用程序

  • itanium backup

    使用tibu,您可以轻松备份现有数据,然后安全地删除旧应用并安装新应用。然后只要两个包都有相同的软件包名称,您可以使用Tibu恢复应用程序的数据,完好无损!

    但是,此解决方案基本上是数据备份,因此此处不会维护。如果您想了解更多关于支持UP&amp的信息;恢复数据,查看我们的 tag wiki 备份,在应用程序的备份部分下。

Xposed模块(最简单,由IBUG推荐)

xinstaller 及其后续的 Installeropt ,可以挂钩安装程序允许安装不匹配签名的包(通过跳过SIG检查)。然后保留所有数据,您可以轻松切换到不同的版本。这是我目前正在使用的方法,它一直在正常工作。 SAD,XPOSed不是正式可用于Android N(到目前为止),因此此解决方案仅适用于Android M和Down。

理论上,它们不应该引起任何错误,因为他们所做的一切都在挂钩签名检查功能并将其返回值更改为真实值,绕过检查。如果替换包具有比不匹配签名的任何其他缺陷,即使跳过签名检查,安装仍会失败,因此也可以安装故障包。

重要通知
建议不要一直留下该选项(跳过SIG检查)。将其启用将创建一个大安全漏水,因为也可以安装黑客应用程序(几乎始终使用不同的签名)。我个人只在需要时才启用它,并在完成包装替换时立即禁用它。

 

Rootless

Sorry but AFAIK it's not possible :( I've never seen any app/tool/utility successfully modifying other apps' data, not even reading!
Alternatively you could do that in a custom recovery, but who uses a custom recovery without rooting? So read below.

Simple Root (Manual way)

Don't take it too hard. Just move its original data away, uninstall the original app and install the new one, then move the data back and chown. Sample shell commands are below.

# mv /data/data/com.example.foo /data/media  * UNINSTALL_ORIGINAL_APP  * INSTALL_NEW_APP # ls -ld /data/data/com.example.foo  * take note of the user (e.g. u0_a123) # mv /data/media/com.example.foo /data/data # chown -R 10123.10123 /data/data/com.example.foo 

Explanations for each step:

  1. Move original app data to an alternative place. Because Androis automatically delete irrelevant files in certain directories, we need a safe place as the Alt. AFAIK unknown files are ignored in /data/media so that is chosen.
  2. Replace app. No explanation.
  3. Obtain the UID of newly installed app. Wrong UID will make Package Installer delete app data.
  4. Move data back and change UID.

A small note: The builtin chown command does not accept option -R (recursive) by default in Android L or lower. You need BusyBox in that case. In Android M and up it just works fine.

Root Utilities

  • Titanium Backup

    With TiBu you can easily back up existing data, then safely remove the old app and install the new app. Then as long as both packages have the same package name, you can restore the data for the app with TiBu, intact!

    However, this solution is essentially a data-backup, so it will not be maintained here. If you want to learn more about backing up & restoring data, check out our tag wiki for backup, under the App-based backups section.

Xposed Modules (Easiest, Recommended by iBug)

XInstaller and its successor, InstallerOpt, can hook Package Installer to allow packages with mismatching signatures to be installed (by skipping sig check). Then all your data is preserved and you can easily switch to different versions. This is the method I am currently using and it has been working fine. Sad that Xposed isn't officially available for Android N (so far), so this solution is only for Android M and down.

Theoretically, they should not cause anything wrong because all they do is hooking the signature checking function and change its return value to a truthy value, bypassing the check. If the replacement package have any other defects than mismatching signature, the installation will still fail, so no faulty packages can be installed even if you skip signature check.

Important Notice
It is not recommended to leave that option (skip sig check) enabled all the time. Leaving it enabled will create a big security flaw as hacked apps (almost always use a different signature) can also be installed. I personally enable it only when needed and disable it as soon as I finished my package replacement.

 
 
     
     

相关问题

-1  哪些有病毒? aptoide,或附带的应用程序吗?  ( Which has viruses aptoide or the apps that come with it ) 
我已经听到了关于aptoide(或aptoide)的很多东西,没有任何钱,我绝望地得到fnaf 2.但我绝望仍然让我问"哪个病毒?aptoide(或aptoide),或者的应用程序它附带了"? ...

3  通过Slideme.org购买的应用程序会给您提供有关可用更新的通知吗?  ( Do the apps purchased via slideme org give you notifications about available upd ) 
slideme 是您可以在其中购买应用程序的网站(对于播放商店不支持购买的国家有用)。 如果您的应用程序已更新,我会收到通知吗? ...

1  aptoide apk有多安全?  ( How safe is the aptoide apk ) 
我要安装aptoide,但一些权限对我提出了担忧。为什么需要我的精确位置,需要能够添加或删除帐户,创建帐户和设置密码,在我的设备上查找和使用帐户?任何帮助将不胜感激。 ...

175  什么是替代的Android App Markets?  ( What are the alternative android app markets ) 
有多少竞争对手的Android市场(除了播放商店本身)在那里,它们有什么好处吗?你使用哪些?为什么? ...

38  使用aptoide有多安全?  ( How safe is it to use aptoide ) 
与 google play 一个现在更长的更长,看到了安装/ update 1 上的应用程序所请求的所有权限列表,我觉得我的隐私入侵了。更糟糕的是,一个应用程序可以在更新的附加权限中潜行,而没有用户知道 2,3 。 所以我正在浏览替代方案。 TL; DR: 我知道我们有替代的Android App Markets...

0  有没有像Android的iOS这样的商店? [复制]  ( Is there a shop like cydia on ios for android ) 
这个问题已经在这里有答案: 替代的Android App Markets? (18个答案) ...

1  将Android应用程序从Samsung Store安装到非三星Android设备,如HTC手机  ( Installing android apps from samsung store to non samsung android device like ht ) 
我有一个htc手机,我想从三星市场安装一些应用程序。 但HTC的用户无法下载来自三星市场的应用,三星市场仅适用于三星设备。 有谁知道如何将Samsung Store的应用程序安装到HTC Mobiles。 ...

1  为什么Aptoide上的应用程序比播放商店更新?  ( Why are apps on aptoide newer than the play store ) 
我已经看到了许多通常的应用程序,如youtube,facebook和谷歌地图,即使是aptoide中的较新版本而不是谷歌播放商店。 自谷歌地图和youtube 原来来自 google play商店这些应用程序是否安全地从Aptoide中的"应用程序商店" 下载? 还在aptoide中的YouTube应用程序中,它没...

1  如何在未成为会员的情况下报告潜在的滥用滥用行为?  ( How to report potential abuse in aptoide without becoming a member ) 
aptoide商店是一个替代平台,您可以在其中获得Android应用程序。 我通过谷歌在Aptoide商店上找到了一个大小的app,它的大小为3.3 mb。 F-DROID存储中具有相同应用程序版本的相同应用程序只有1.1 MB的大小。所以我假设这个应用程序被恶意软件感染。 aptoide关于可疑应用程序的信息是...

57  是apkmirror.com安全吗?  ( Is apkmirror com safe ) 
是安全下载并安装 google play从apkmirror.com ?如何检查这是一个安全下载? backstory: 我必须恢复原始的三星Galaxy标签,因为它拒绝启动。重置后,我无法更新Google Play。每次我尝试时,它都会崩溃'(过程com.android.vending)已停止工作'。 我已经看到...




© 2022 it.wenda123.org All Rights Reserved. 问答之家 版权所有