7

I have made a backup of my Nexus 7 before its bootloader was unlocked with Carbon and the companion Windows app; I then took the Carbon folder from internal storage to my computer disk.

An unlock, root, flash, etc., later, I placed the Carbon folder where it was:

 /storage/emulated/0/carbon

I installed an additional application and backed it up to confirm that Carbon stores new backups there:

Yet, no joy.

I've also copied the backup data to Google Drive. Carbon also fails to find the data there.

You might guess it'd be a permissions issue. As far as I can see, it's not.

This person (thread link) has had similar issues with a Nexus 7 but not a Nexus 4. They've emailed the developers one month ago and didn't report back. I emailed them too , but I'm not holding my breath honestly. and actually got a reply. I'm not posting the full text of the email, since that'd be a breach of privacy, but here's the meat of it.

You manually moved the backup, which is an unsupported scenario in Carbon. This is why you cannot see the backups. There is no fix, or workaround for this.

What can I do about this?

  • I notice the Adobe Reader folder contains 4 items, while the others only have 3. I don't use Carbon, so I don't know if that is meaningful, but it seems suspect. Did something important in the backups get lost along the way, perhaps? – eldarerathis Apr 27 '13 at 15:00
  • As to the support: I've emailed the dev as well, about 2 months ago, with a problem, including all necessary debug details (logcat etc). 3 mails so far. No reply. While Koush is busy developing a lot of good stuff, he seems not to reply to support requests unfortunately :( – Izzy Apr 27 '13 at 15:12
  • @eldarerathis The extra file is "com.adobe.reader.json": {"enabled":true,"system":false,"flags":10010180,"packageName":"com.adobe.reader","versionCode":73784,"label":"Adobe Reader","versionName":"10.5.2","locked":false,"date":1367072517125,"apk":false,"backup":true} – badp Apr 27 '13 at 15:24
  • That's Carbon's control file to identify a backup, including the data it needs to display for restore. If there are no such .json files in the other directories, Carbon cannot identify them. You could try to "fake" such files for the other apps (create them with the corresponding data) -- but I have no idea what should be put for "flags" and "versionCode". – Izzy Apr 27 '13 at 15:34
  • @Izzy ...then why didn't Carbon create those files to begin with? – badp Apr 27 '13 at 15:38
3

As it turned out, all the other apps had their corresponding .json file missing. Not a big deal: As badp's answer shows, one can simply use adb restore to restore the backups. But as not everybody might have the SDK (or even a minimal ADB) installed (or even a computer available -- one might be on a journey), my answer will take a different approach.

What we need

First, you will need to make a backup of some app, to get a working .json file. As the question states, there was such one from the Adobe Reader. To visualize it for you, this is what the corresponding file (com.adobe.reader.json) looks like:

{
  "enabled":true,"system":false,"flags":10010180,"packageName":"com.adobe.reader‌​",
  "versionCode":73784,"label":"Adobe Reader","versionName":"10.5.2","locked":false,
  "date":1367072517125,"apk":false,"‌​backup":true
}

You will also need:

  • a file manager
  • an editor

Of course, you could also perform the steps below from your Linux computer; using a different OS, take care for the file's encoding and line breaks.

What we do

I pick an example app here: Kindle for Android. In the question's screenshots, it's listed close to the Adobe Reader as com.amazon.kindle. For your apps, just pick the corresponding values based on this example:

  1. copy com.adobe.reader/com.adobe.reader.json to com.amazon.kindle/com.amazon.kindle.json
  2. open com.amazon.kindle/com.amazon.kindle.json with an editor
    • replace com.adobe.reader by com.amazon.kindle for packageName
    • replace Adobe Reader by Kindle for Android for label (actually, you can put anything here -- but might prefer to know what you've got :)
    • optionally, replace the versionName accordingly (it will work without)
    • save the file

I'm not sure what versionCode or flags stand for, so we better don't touch those. We also can safely ignore the rest:

  • "enabled"="true" should mean "this app is enabled (i.e. not frozen)"
  • "system"="false": It's no system app (matches: Kindle is no system app)
  • "locked"="false": This app is not "protected"
  • "date" obviously holds a Unix timestamp (most likely that of the backup)
  • "apk"="false": Ah, data only (Cabon's default is to not include the .apk with the backup, to speed things up)
  • "backup"="true": Is this a joke? What else could it be?

Now, first let's see whether Carbon accepts our trick. If it correctly lists up Kindle for Android as being available for a restore, you might want to repeat above steps for your other backups as well.

2

It's a kludge, but Carbon uses the standard adb debugbackend for its operation. This means that the .ab format is not proprietary and each of the individual backups can be restored from the adb command line:

adb restore C:\whatever\Carbon\things.the.all\things.the.all.ab

...or through a graphic tool such as Droid Explorer.

2

I had the same problem and managed to get it working.

After reinstalling the applications I backed up (Angry Birds in my case), I deleted the carbon folder from the phone (keeping a copy on the PC). I then backed up Angry Birds so that the carbon folder on the phone is recreated etc. I then replaced the new AB file with the one I originally backed up. When I restored, I could see the application and was able to restore.

2

I'm currently having the same problem, but I found the fix.. I have Nexus 7 2013, before updating to Android 5.0 I copied carbon folder to my PC, after updating to 5.0 I moved carbon folder back to main nexus folder and it didn't show anything, but after long research I found the fix:

  1. Open Windows PowerShell
  2. Paste into it this code:
$subfolders = Get-ChildItem -Path 'Link to your PC carbon folder\*'
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)
    }
}

This code will add .json files inside every app's folder and it's working, now all my applications are showing in carbon's restore tab.

This is how it looks after adding all .json files

Click image for larger version

1

Izzy's answer is a good start: check that you have a .json file for the app.

If you don't have this file, before you go copying and editing another app's .json file, just back up your app's .ab file somewhere, then backup the app again using Carbon.

It should save a .json file this time. You can then replace the new backup's .ab file with the one you need to restore, and the app will be detected by Carbon.

(If it still does not save a .json file, use Izzy's method.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.