[Apk + Data = Apk] How-to ? - Android Q&A, Help & Troubleshooting

Hello,
I've been searching everywhere for this, but couldn't find a good answer..
I've found Titanium Backup Pro that does that, but doesn't work anymore (keeps crashing).
I've found Migrate, Neo Backup, Swift Backup, ZBackup.. but they all backup each individually (apk / data).
The only one that did what I was looking for is "App Cloner", but it's a paid app (for the full capabilities) and I don't want to rely on an app that might stop being maintained (like Titanium Backup was).
Though, it does create a copy of the apk with data, so that's exactly what I am looking for.
Can someone here, please tell me, how to create a copy of an apk, but that has data included in it, and without relying on an app ?
ADB can backup both separated (apk/data), or as one (ab file) but never as an apk from what I've seen....
So how do modders do to inject data into some apks ? (like auto login ?)
Thank you !!

Related

[Q] How does Titanium Backup work (Technically, not how to use the app)

I want to know what Titanium Backup actually does so I can do it myself through terminal. Here are my guesses as to what its features do
-Backup Apps: Takes the apk from /system/app/ or /data/app/ depending on where it comes from and chucks it on the sdcard with a unique number ([Name]-[Unique].apk). It also takes app data from /data/data/ and puts it into a tarball on the sdcard as ([Name]-[Date]-[Time].tar). It also has a properties file named ([Name]-[Date]-[Time].properties)?
-Restore: Reverse of Backup.
-Market Stuff: No idea...
Good question,
I would like to know, to, since I need to backup and restore the home screen settings.
I guess it's not only a simple backup and restore, since it also backups information providers.

[Q] Titanim backup - how to resore an app from .TiBkp

I've created a backup called "app +data (easy import)".
Now I can't find any option to restore an app from this backup.
Not from dropbox nor from a titanium backup folder.
Titanium does not see this file and says there is no backup for that app.
So how to restore an app from this kind of backup??
Try clicking on the backup file either in Dropbox or the local file system and running it. Titanium Backup will then ask if you want to restore the app and or data. I know I saved my backup in Gmail, and after downloading, I just press view in Gmail itself and TiBackup will show that dialog.
Sent from my HSPA+ Nexus Prime using Tapatalk 2
it was enough to update to the nevest verssion.
Now I have a bigger problem.
It does not restore any data of system apps.
Not Go Launcher, nor Go sms, or rom settings are being restored.
I've tried to flash the rom again an then restore - no result.
How to force titanium to restore system apps data?
ps. I was able to do it before. It's just stopped working.
Hi I am having similar problems, backed up using easy backup apk & data, sent via gmail to my other phone with Titanium backup on it, when I open it TB recognises it and says please wait, but nothing happens the app does not install. It is only a widget that I want installed but its not having it :crying:
Also I have a tf101 which is not rooted is there anyway I can unzip without TB to use this free widget as its not on the general market, I have a paid version of TB and using the latest release, but obviously not on the tf101.
Any help appreciated as it is frustrating I cannot save apks to other phones.
Thanks
How to restor Titanium backup "TiBkp files
AngryBulleteyeTruth said:
I've created a backup called "app +data (easy import)".
Now I can't find any option to restore an app from this backup.
Not from dropbox nor from a titanium backup folder.
Titanium does not see this file and says there is no backup for that app.
So how to restore an app from this kind of backup??
Click to expand...
Click to collapse
I never found the correct answer to this question, which - from my experience - is a rather improbable one. This is the answer:
Find your TiBkp file with some kind of file explorer. In my case: I used "root explorer", probably any other one will do as well. Tap on it.
You will see: "No activity found to open this file."
Your options are
a) cancel
b) open as.
Choose "open as".
Now you get a lot of options (I see seven). One of them is: APK file. Choose it.
Now you may select an "option for null" (probably the null refers to the unknown file extension TiBkp) .
The options are: cancel, view and Install.
Choose install.
Now you get the option from Titanium backup to restore your files. And that works perfectly.....
Cheers :victory:
Hello, i Know this thread is old, but i seem to have run into the same problem. My tibkp file is grayed out and i can't access it. and when i navigate to it and try to open it, it won't give an option to open it with Titanium. Help please. Thank you
PS I have a rooted S7 Edge. Thank you
Hm.. I'm having a similar issue: I can't import .TiBKP files anymore; two devices, S6 Edge running SuperSU-rooted nougat, and Tab S2 running magiskSU-rooted nougat (in both cases the nougat itself is from samsung)
Hello im having troubles backing up an app.
Whenever i back up i get three files (.apk .tar and one PROPERTIES) instead of the .TiBkp. I cant restore said files.
Help please.
New phone, Old problem. Trying to use .TiBKP files to migrate apps&settings from my old phone to my new one, rather than just simply copy everything using smart switch, but opening them in Titanium Backup is NOT an option for .TiBKP files.
Any hints?

Switching from one App backup to another! (and a good Application Manager)

I install a lot of apps (as most of the people here, do), and I don't keep a track record of them! Some times I dont have internet connection but I want to install a previously installed app (that I uninstalled).
I used AppMoster Pro for this earlier! I want to switch to App Backup & Restore.
The problem is that, I had over 220 apps backup with App Monster, now I want to move them to this new app. I need a simpler way to do this as I can not install and then uninstall these apps!
AppMoster backup up apps in form of Folders.
App Backup & Restore does it like saving .apk BUT adding some version code or something at the end of filename.
Also please suggest a good App Manager (Backup and Restore, app only - no data).

Unable to restore Helium backup!

I used the Helium backup app to backup all my apps before flashing my S3 with the stock ROM. I copied my entire internal memory as it is, and pasted it after flashing. This of course included the crucial 'Carbon' folder with all my backups made my Helium.
BUT now I installed helium and it refuses to detect those backups. In 'Restore and Sync' it simply says "No backups were found on your internal storage".
I know this is probably best asked to the Helium developer but I reckon it's a very famous app so someone might be able to suggest a solution here. I've already tried rebooting.
Thanks!
cyanide911 said:
I used the Helium backup app to backup all my apps before flashing my S3 with the stock ROM. I copied my entire internal memory as it is, and pasted it after flashing. This of course included the crucial 'Carbon' folder with all my backups made my Helium.
BUT now I installed helium and it refuses to detect those backups. In 'Restore and Sync' it simply says "No backups were found on your internal storage".
I know this is probably best asked to the Helium developer but I reckon it's a very famous app so someone might be able to suggest a solution here. I've already tried rebooting.
Thanks!
Click to expand...
Click to collapse
Had the same problem, wanted to root my phone, but unlocking the bootloader wipes everything, so used Helium to backup all my apps. Backed up to both internal storage and dropbox, copied "carbon" folder from internal storage to computer, unlocked bootloader, copied back, and helium wouldn't see backups from "carbon" folder. Will, however, find backups from dropbox, but without premium version, cannot restore them.
I did find a workaround, but it is not the most pleasant way of doing things. If you open the menu options and tap PC Download, it will display a local ip address and port (i.e. http://192.168.1.xxx:5000 or 10.1.10.xxx:5000). This is your phones ip address on your network and may appear different depending on your router and/or network setup, and the 5000 is the port to access helium web server on phone. Navigate to that ip address through your web browser, including http:// and it will open a web interface for backing up and restoring. See attached screenshot. Click on the browse button under Restore and navigate to the carbon folder that you backed up. In each folder will be 3 files, xxx.png, xxx.ab, and .nomedia (xxx is the name of the file i.e. com.adobe.reader). Choose the file with .ab and click open. The web interface will ask if you want to restore, click yes. Repeat for all items to be restored. If the web interface says file invalid, make sure the server is still running on your phone. Should show a cloud in the notification bar and say Helium server is running. If the server stops, just restart it from menu->pc download in the helium app.
This is not the most elegant or efficient way of doing this, but if all your data is in those backups and you really want them, this is the only solution I have found so far. I hope this helps.
Edit: Was able to restore first two apps before posting, but after continuing, remaining apps would not restore. May still work, but even though I get restore complete, the apps don't show up. Will require further investigation.
kind of solution
i have the same problem i tried to unlock nexus 10 and made a backup and (manualy) copied the carbon folder to my PC and restored after unlocking
and as you know it wont detect the backups..
i think it has to do with a .json file that is either not created when the backup is done or not carried over the copy.
(i know about this .json file, as i had a previous backup from whatsapp which had this txt file which has info about the backup)
so when i tried to restore all my apps i only got that whatsapp detected (as an old version)
i mailed Koush( the developer) and he said that manual moving is not supported and the way to go is using the IP server to extract the backups to PC.. (ie doing the backups with the Web tool and not in the app itself)
one thing i can think of (cheating the app. installing the app, doing a backup of the app and replacing the .ab file for the one in the lost backup.. ) i will try that and post back
---------- Post added at 03:28 PM ---------- Previous post was at 03:13 PM ----------
ok i had an old PLUME (twitter client) backup with data,
what i did and seemed to work (for this test )
is to delete data on installed PLUME
backup plume without data. (a plume folder gets created on the carbon folder)
replaced the .ab from this backup with the old backup's .ab
now helium restored the old file with the previous backup data restored as well
i hope this works for other apps. i will try with my nimble quest game which i have a backup and is the only thing no recoverable i had in helium everything else is account based on the cloud
so the way to go here could (until koush changes this)
install the affected apps
backup them
navigate to the carbon folder and replace the .ab's with the old counterparts (which have data)
enjoy
I also had same problem, and i try use the solution below, but it can NOT work for me.
My device is ASUS Padfone 2, without root.
After try many method, I success finally!!
Here is my step, hope can help other people like me:
1. check the backup folder name. i.e jp.co.johospace.jorte, copy it to your PC.
2. use google search this key word "jp.co.johospace.jorte", you can find out what is this app, download and install it from play store.
3. After install finished, open your Helium and backup this app, i.e. "jorte"
4. After backup finished, check Helium restore, you can see "jorte" was backuped.
5. close Heilum from setting/apps, then open file explorer, find a folder named "jp.co.johospace.jorte" in the ../sdcard/carbon/
6. open the folder, you can see 3 files: 1.._jp.co.johospace.jorte.png 2..nomedia 3..jp.co.johospace.jorte.ab
copy jp.co.johospace.jorte.ab from your PC to android /sdcard/carbon/jp.co.johospace.jorte and replace it
7. open Helium again, and restore jorte, you can see data was restored!
it's probably possible to generate a set of manifests for it. the json ones don't seem to have any special data (as in no binary or signature type things)
e.g. for Lux the app
{"enabled":true,"system":false,"flags":545832516,"packageName":"com.vito.lux","versionCode":158,"label":"Lux","versionName":"1.58","locked":false,"date":1375397585745,"apk":true,"backup":true}
cut down to
{"enabled":true,"packageName":"com.vito.lux","label":"Lux","locked":false,"date":1375398819080,"apk":true,"backup":true}
still restores ok
I'm not sure how much metadata is necessary for it to work but that still restores (and the date is moot anyway).
It's possible if you mess up the enabled or system attributes or if the flags attributes are useful hints to the restore command to set package properties - it may make you have to wipe your device (or replace a newer version of the app or install data for an older version, etc). but for your everyday apps for a recent backup - you could probably make a quick powershell or whatever script to iterate over a set of subfolders and generate some dummy manifests.
Code:
$subfolders = Get-Item -Path 'E:\carbon\*'
foreach ($f in $subfolders){
if($f.Attributes.ToString() -eq "Directory")
{
$filecont="{`"enabled`":true,`"packageName`":`""+$f.name+"`",`"label`":`"" + $f.Name + "`",`"locked`":false,`"date`":1375398819080,`"apk`":true,`"backup`":true}"
$fname= $f.FullName + "\" + $f.Name + ".json"
[System.IO.File]::WriteAllText($fname, $filecont)
}
}
(I'd probably suggest using the manifests from backup restores for google system apps and contacts/sms/launcher, etc instead of these though)
anyway, wish the dev added clear non skippable instructions to the app (first run), and the desktop dl page
Maybe they're there and im stupid.
gierso said:
kind of solution
so the way to go here could (until koush changes this)
install the affected apps
backup them
navigate to the carbon folder and replace the .ab's with the old counterparts (which have data)
enjoy
Click to expand...
Click to collapse
thanks for this workaround. this feels like a huge gap in the functionality of a backup app. if there is a forced need to use the cloud, the user should at least be made aware of it.
not sure how much I can legitimately complain about a free app, but definitely not interested in the premium version based on this.
It's simple !
I found out a way. What you do is, 1st backup all your apps using Carbon to your Internal or External storage. Copy all the files in the carbon folder where you have backed up your data. Once you finish wiping your data, install all the apps again and backup using carbon. Now,replace these backup files with the actual backups ! Since you have backed up after re-installing your ROM , carbon won't say it couldn't find any backups.
Cheers
- Sent from Galaxy S3
chinnu189 said:
I found out a way. What you do is, 1st backup all your apps using Carbon to your Internal or External storage. Copy all the files in the carbon folder where you have backed up your data. Once you finish wiping your data, install all the apps again and backup using carbon. Now,replace these backup files with the actual backups ! Since you have backed up after re-installing your ROM , carbon won't say it couldn't find any backups.
Cheers
- Sent from Galaxy S3
Click to expand...
Click to collapse
it's not simple. it's annoying and longwinded. and defeats about half the point of automated backup apps.
the Carbon/Helium app is horrible.
While this went ok I had to reset my device today for another reason.
So before doing that, I backed up using Carbon, and transferred the data via the the web interface as the dev suggested
but was unable to restore the packages as uploading the zip back fails.
(the server on the n4 just stops after the upload. Moreover - there's no logs of any kind for the user as to why it fails. and no upload progress.).
Dunno if the dev will reply what the problem with the android web server component is but for now since i needed the backup urgently
I ended up having to extract the zip and convert the backup into individual manifests/copy the zip contents into app packages folders
Here's the powershell code to do this if anyone else has a similar problem (use at your own risk, I only tested it once on my device)
Code:
$backuppath='E:\_MediaServerE\backup\' #extract your backup.zip contents here (those are the .ab, png files in the zip you downloaded + a backup.json maniest the app generated for all the packages)
$jsonFile=$backuppath+"backup.json"
$jsonText=[System.IO.File]::ReadAllText($jsonFile)
$files = Get-Item -Path ($backuppath + "*")
[System.Reflection.Assembly]::LoadWithPartialName("System.Web.Extensions")
$ser = New-Object System.Web.Script.Serialization.JavaScriptSerializer
$jsonPackageDefs = $ser.DeserializeObject($jsonText)
function getPackageDef([string]$pname, [Object]$packagesIn){
$ret = ""
foreach($p in $packagesIn.packages){
if($p.packageName -eq $pname){
$ret = $ser.Serialize($p)
break;
}
}
return $ret
}
#for each file copy it to a subfolder with the package name, and find the json manifest in the manifest collection
#and write it to the app folder
foreach ($f in $files){
if($f.Attributes.ToString() -eq "Directory"){
#skip
}
elseif($f.basename[0] -eq "." -or ($f.basename+$f.Extension) -eq "backup.json"){
#skip
}
else{
$bn=$f.BaseName
$bn
if([System.IO.Directory]::Exists(($backuppath+$f.BaseName))-eq $false){
[System.IO.Directory]::CreateDirectory(($backuppath+$f.BaseName));
}
if([System.IO.File]::Exists($backuppath+$f.BaseName+"\"+$f.BaseName+$f.Extension)){
[System.IO.File]::Delete($backuppath+$f.BaseName+"\"+$f.BaseName+$f.Extension)
}
if([System.IO.File]::Exists($backuppath+$f.BaseName+"\"+$f.BaseName +".json")){
[System.IO.File]::Delete($backuppath+$f.BaseName+"\"+$f.BaseName +".json")
}
$f.CopyTo(($backuppath+$f.BaseName+"\"+ $f.BaseName + $f.Extension))
$packageDetailsText=getPackageDef $f.BaseName $jsonPackageDefs;
$jsonFileNameOut=$backuppath+$f.BaseName + "\" + $f.BaseName + ".json"
[System.IO.File]::WriteAllText($jsonFileNameOut, $packageDetailsText)
}
}
I then copied the results to internal storage\carbon and was able to restore.
I hate the carbon app it's probably the worst experience I had backing up my device. It's cost me hours of worrying and coding to restore my data and i paid for that crap... There is hardly any documentation to follow and the dev doesn't even warn to not copy files on the app page (that's for the previous issue just above, this one is more about the 'proper' way breaking) Moreover it failed to backup the com.ea.games.nfs13_row game correctly due to its size so I lost the save data for it.
This is not an experience people should have with a backup app.
He should just provide a secondary way to transfer things using the files in the carbon folder (and/or a zip of the backup) instead of the web server bit that breaks, and takes forever. (and yes, I realize the web server generates the zip from the carbon folder and adds the manifest for the download, but if you can't upload it back for restoring properly - what's the point)
oh and keep in mind - you're storing unencrypted tar equivalents of your phone app data - so take care about where you keep the zip or the ab files. (the ab files are tars with a slight header change) (not that Carbon asks you to provide any means of protecting them, so more of an unrelated aside)
No idea, what I posted worked for me !
SMS not returning?
chinnu189 said:
No idea, what I posted worked for me !
Click to expand...
Click to collapse
Everything else seemed to work (thanks for this solution, definitely helpful to at least confirm data). Anyways - the one thing I can't seem to figure out is how to restore text messages (com.android.providers.telephony.ab) - I've tried to do it as a whole app using the PC interface, tried copying the folder as a replacement via Android File Transfer to the 'carbon' folder, etc.
When I try to restore via helium server, it quickly shows me everything as restored but I don't see the messages. When I try to do it manually (e.g. force copy), I don't see an option under "Restore and Sync" to actually select messaging.
Am I missing something stupid / obvious? The raw data seems to be there (for example, call logs were uploaded just fine, text messages seem to have an issue).
--Dan
So I came up with a solution based on what works for others. Why this works when it didn't previously is beyond me, but hopefully someone else can use it if individual parts of their Helium backup don't work properly (in theory it should work for any app / SQL dataset). The whole point of Helium is that we're running non-rooted phones and so Titanium Backup or the like aren't applicable. For reference, I'm running an N4 to OSX 10.7.x
1. Use the Helium Server to create a full backup.
2. Wipe phone or whatever you need to do (I had to do a factory reset for Google since it's an N4 and my proximity sensor is dead).
3. Install the apps you had previously via Play Store (pain in the a**).
4. Run Helium server and upload the backup data.
5. Update apps as needed (should be auto but who knows for individual stuff).
6. Check app data in apps. Texts are obviously easy to see for me. Hopefully everything restored nicely for you here.
***Now for the bit for people who got corrupted restores.
7. Unzip the backup file on your computer, select the .ab files that correspond to the missing / corrupted restores and then zip those into a new file on your computer (for step 9). Keep these files handy in unzipped form as well for step 10.
8. Perform a new Helium backup of those sections onto the internal SD card (yes it will be blank, worry not).
9. (Optional step): Run Helium server and upload that new zip file (with the stuff that didn't make it) alone. Try restore. Unlikely to work but worth a shot.
10. Running Android File Transfer, find the SD card, find the folder 'carbon' and then find the corresponding sub-folders that have the modules that were corrupted. Replace the SD card backups of the broken modules with the good ones from your computer.
11. Run Helium restore again, but only for the sections you want (I swear, for me Messaging didn't show up the first few times but after step 10 it did).
12. Wait, hoepfully it works well. I would reboot after running the restore to a) kill Helium and b) confirm functionality.
FWIW, my telephony.ab was 1.8MB and took SIX hours to restore. Seriously. Yeah yeah, that's a lot of texts but six hours? I've since added "SMS Backup & Restore" to my phone and will probably just use that, map out my phone layout and functionality and just manually replace apps from now on since most data is in the cloud. You lose some stuff, but prima facie it's boat tons easier.
Hopefully that helps someone else who had the same issues.
Best,
--Dan
app is just crap
i lose the most important data.some apps restored,but not the precious i wanted.
thanks helium
Garbage app, just installed it, backed up then when i tried to restore i get the same errors all because i copied the carbon folder to my pc. Stupid
digitallysick said:
Garbage app, just installed it, backed up then when i tried to restore i get the same errors all because i copied the carbon folder to my pc. Stupid
Click to expand...
Click to collapse
Yeah.. I wanted to give a try.. but its real garbage.
thanks chinnu189
your solution worked great for me and only took 2 minutes. messages were restored too. now i can finish Final Fantasy :victory:
It worked for me - JUST BUY THE GOD DAMNED APP
Yes its $5.00 but you know what, I bet you've spent that on a burger, fries and drink in the past month.
I spent an hour trying to do it the free way, made a backup to internal, made a backup to pc using the server, yadda yadda yadda, then ended up on here looking for help because it wasn't working properly.
Finally went fck it here's my five bucks and I backed up to the cloud and restored from the cloud. It just works as advertised and perfectly at that.
Even in high school my time was worth $5 an hour. I just wasn't ready to acknowledge it then. Trust me, it's worth every cent. Buy Helium Premium.
</Advertisement>
No seriously I am a long time Titanium Pro user and Helium allowed me to move my nexus 4 data to my nexus 5 without having to go through the hassles of root. Well worth it for that alone.
Ok, hope this helps somebody. Just did the whole copy the folder instead of use the webserver business. I tried the replace methods above to no avail.
What did work is backing up ONE app to internal and replacing the *.ab file with the backup data into the 'carbon' folder, overwriting the one that has basically a blank app.
If I tried to restore multiple apps at the same time, it didn't work.
This is on a nexus 5, by the way. Now on to the rest of my apps...
the webserver method is a) slow b) keeps dropping out. the app is nothing but a headache.
as for the cloud backup one - depends on the service and whether you can specify the file to be encrypted prior to the transfer.
when doing backups using PC download mode (thru the URL port 5000), the device must be in standby, ie. Screen ON and UNLOCKED. its the only way the backups gets created good and can be restored.
Extracting Helium ab files
I backup up using Helium, and was unable to restore, so I had a small adventure recovering my files (eventually successful). These are some brief notes.
I had used the PC option to get the backup.zip file on my PC (I was going to reflash my Nexus 7 "grouper", 8GB). However, Helium refused to re-install the 2.5GB file back to the tablet. (Wait for upload via WiFi, then "failed".)
I could extract the particular 1.8GB ab file I wanted from the backup-zip that Helium made. However, "adb restore ..." would not work either.
After searching on "adb extractor" I found that the perl scripts (http://forum.xda-developers.com/showthread.php?t=1730309) were able to get me an extracted file in nominal "tar" format. I say nominal, because none of the tar programs I have would touch it---bad blocks etc. (I tried the Java adb extractor first, but did not pursue it further because of the tar issues.)
It turns out that the Helium "ab-tar" file was ordered like this:
2 bytes of something.
5 bytes of something.
Tar header block.
Tar data/header blocks...
5 bytes of something (starting at location 0x10007).
Tar data/header blocks...
5 bytes of something (at location 0x1800C).
Etc.
I.e., every 0x8000-byte chunk was prefixed by 5 bytes of stuff. Except for the second chunk. And the whole file was prefixed by 2 bytes of stuff.
Not only that, but the tar header checksums had been divided by 8 (i.e., last octal digit replaced with '\0').
After converting to a regular tar file, I was able to restore the files to their place. I now have a tar-reconstructing program that I will send to anyone who requests it.
Sigh. Backup should not be this hard.

Combining APK + data into new APK?

Hello,
I'm trying to figure out if there is a way to convert a APK plus its data into a single new APK. The specific example is: I have downloaded and configured Authenticator for a number of accounts, and I'd like to back up both Authenticator and account data into a new installable APK.
Before you say "Titanium Backup" - note: I cannot install Titanium Backup onto the device as I cannot root the device, and the TiBkp backup file created by TiBa is NOT an installable APK.
Any suggestions?
Thanks.

Categories

Resources