Closed ginsudev closed 5 years ago
Ignore my question on #23, from this output I can see that you have a SIM card inserted. However the device is in 'BrickState'
BrickState: true
I suppose this is due to the usage of idevicererestore. If the device was on a higher iOS version the baseband firmware (e.g. from 10.x) might not be compatible anymore and so it won't activate. Weird though that it complains about missing IMSI because your output clearly shows it:
InternationalMobileSubscriberIdentity: 505013420373635
Hi, sorry I was sleeping. I have successfully downgraded my phone with idevicererestore before, but ever since 2 weeks ago, I have been getting this problem.
Do you have any idea what is causing this?
And I can activate without any problem on iOS 10.x.x
Hmm actually I just realized that BrickState: true
is returned for all unactivated devices.
So I am not sure what the problem here is exactly. If you can go to 10.x and back to 9.2.1 again it would be interesting to get the complete output of the activation for 10.x and then for 9.2.1 as comparison. Therefore it would be better if you could configure libimobiledevice with debug output (which is missing from the above output). In the libimobiledevice source tree run:
./autogen.sh --enable-debug-code
make && sudo make install
Then just pass -d
to ideviceactivation as you did before.
I'll do this when I get home, thank you 😃
Here is iOS 9.2.1: https://ghostbin.com/paste/pmnst
iOS 10.3.2: https://ghostbin.com/paste/daqdp
Just to make sure, have you tried to activate 9.2.1 with iTunes? Apart from that, I checked the ActivationInfoXML data (which itself is also a plist) and the only difference is - except for the structure - the iOS and build version. I don't really think Apple matches the baseband information to the iOS version, but it's certainly something that Apple changed (or is checking now) on their servers. I am charging two of my older devices to see how they behave during activation...
Yes I have also tried activating with iTunes, no luck
Yeah I figured that's why you tried ideviceactivation in the first place, since activation usually works on-device. So you're not the only one having this problem as it seems: https://twitter.com/iFred09/status/883047164670246913 It seems like Apple is blocking activation of devices with the 'old' method. Starting with iOS 9.3 the new method can be used.
I will run some tests to figure this out...
Thank you for your help! :)
So I tested with an iPhone 5s. I can activate it with iOS 8.4.1, 9.2.1, 10.3.2 without problems. Not sure if it just started to work again. Can you retry it?
Sure i will try again today, and tell you how it goes.
Also, my SHSH blobs are Update Blobs, if that has something to do with it?
Ok i just restored back to 9.2.1, twice. The problem still occurs.
@noahlittle somehow, the guy on twitter reported that when he deletes the file /etc/ssl/certs/ca-certificates.crt
it works for him.
I'll try that
No it didn't work 🙁
Do you get any activation lock (icloud lock) response from Apple's server?
I didn't, it looked like the same error :(
Can you try from a different IP address? Like, use a VPN so you contact Apple's server from another part of the world?
Sure, so setup a vpn on my pc, and use ideviceactivation?
I'm having the same issue, here's my log:
idevice_activation_request_new_from_lockdownd: Unable to get MEID from lockdownd
idevice_activation_request_new_from_lockdownd: Unable to get IMSI from lockdownd
* Trying 17.149.240.65...
* Connected to albert.apple.com (17.149.240.65) port 443 (#0)
* error reading ca cert file /etc/ssl/certs/ca-certificates.crt (Error while reading file.)
* found 524 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / RSA_AES_128_GCM_SHA256
* server certificate verification SKIPPED
* server certificate status verification SKIPPED
* common name: albert.apple.com (matched)
* server certificate expiration date OK
* server certificate activation date OK
* certificate public key: RSA
* certificate version: #3
* subject:
* start date: Tue, 21 Feb 2017 00:00:00 GMT
* expire date: Thu, 21 Feb 2019 23:59:59 GMT
* issuer: C=US,O=Symantec Corporation,OU=Symantec Trust Network,CN=Symantec Class 3 EV SSL CA - G3
* compression: NULL
* ALPN, server did not agree to a protocol
> POST /deviceservices/deviceActivation HTTP/1.1
Host: albert.apple.com
User-Agent: iOS Device Activator (MobileActivation-20 built on Jan 15 2012 at 19:07:28)
Accept: */*
Content-Length: 8644
Expect: 100-continue
Content-Type: multipart/form-data; boundary=------------------------7e015c7847fab03d
< HTTP/1.1 100 Continue
< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Cache-Control: private, no-cache, no-store, must-revalidate, max-age=0
< Content-Type: application/x-buddyml
< Content-Length: 295
< Date: Sun, 09 Jul 2017 22:57:42 GMT
<
* Connection #0 to host albert.apple.com left intact
<xmlui><navigationBar title="Activation Error" hidesBackButton="true"/><tableView><section/></tableView><tableView><section footer="Activation request could not be completed. Please press the home button to try again. If the problem persists, please contact customer care."/></tableView></xmlui>
Activation server reports errors.
Activation Error
@noahlittle yes. @RLCircuit can you rebuild libideviceactivation with latest code from git and run the command again? I added the HTTP body data to the debug output aswell, so I can see what actually gets transferred. Also, since the output might get really large, use gist or pastebin/ghostbin so the ticket isn't flooded with too much data...
Here's the output now: https://ghostbin.com/paste/2q8tf
I moved the long text output to ghostbin. So this is really strange. For some reason I am receiving a (supposedly valid) ticket for the given device details for your device info, @RLCircuit. For @noahlittle, I am receiving a FindMyiPhone Form where I should put the icloud details. But in both cases I am not receiving the "Activation Error" you are seeing. As already suggested to @noahlittle, @RLCircuit: Try to use a VPN or proxy server so your request comes from a different country/IP range. I tried it from Germany.
Nope, still gives the same issue. Connected from US, UK and Germany via VPN.
Hmm, I wonder if I sign out of iCloud before downgrading? Might work?
Nope, that didn't work.
Maybe your devices have an invalid date/time set?
I have restored to iOS 10.3.2 and activated using this tool without problem or need to connect to a VPN, only post-downgrade 9.1 is giving me this issue. I have no other iOS 9 blobs to test with, sadly.
I think I know what is happening.
@RLCircuit this is your FairPlayCertChain
decoded:
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
33:33:af:07:04:02:af:00:02:af:00:00:03
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, O=Apple Inc., OU=Apple Certification Authority, CN=Apple FairPlay Certification Authority
Validity
Not Before: Apr 2 15:17:28 2007 GMT
Not After : Mar 31 15:17:28 2012 GMT
Subject: C=US, O=Apple Inc., OU=Apple FairPlay, CN=iPhone.3333AF070402AF0002AF000003
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (1024 bit)
Modulus:
00:99:71:7c:2f:fb:f4:54:58:de:f2:18:84:82:80:
d1:91:d7:04:00:24:53:73:d8:c2:35:a4:b2:9b:eb:
f9:72:cb:22:d6:d7:d3:42:e5:3e:db:91:46:0e:b9:
86:8b:14:5e:5a:29:85:d3:df:1d:0e:89:41:36:e7:
d1:da:cb:fa:f1:2f:f3:78:72:c7:02:7f:9b:86:81:
31:29:5a:ea:af:fc:cc:92:47:6e:2e:8a:17:bd:6d:
2f:79:ac:a0:15:e3:eb:66:eb:8b:47:5f:cd:94:39:
30:9b:22:54:87:85:4f:19:6f:86:2b:ab:46:89:df:
9d:45:db:6a:0c:25:4c:61:fb
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment, Data Encipherment, Key Agreement
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier:
AF:17:C4:75:00:29:20:55:21:D2:E5:22:DC:B1:3D:D3:A7:11:B3:D0
X509v3 Authority Key Identifier:
keyid:FA:0D:D4:11:91:1B:E6:B2:4E:1E:06:49:94:11:DD:63:62:07:59:64
Signature Algorithm: sha1WithRSAEncryption
90:1b:2e:63:ad:12:1f:78:c3:13:1f:39:65:96:42:5f:00:13:
4d:bf:11:e9:99:f5:65:65:66:e7:12:53:94:30:c1:3b:76:3c:
50:b8:c2:0b:c9:a2:32:85:1f:71:14:8d:bb:d6:42:63:4f:31:
d5:1a:63:a3:63:86:f9:bc:2e:38:32:20:24:ee:3f:67:09:2e:
86:07:37:36:5c:b6:cc:22:db:34:29:3f:16:14:3e:4d:9f:52:
cb:7d:d9:df:e5:49:c2:9f:b9:e9:0c:81:52:93:52:85:da:b0:
83:69:02:c8:43:55:dc:c6:0e:a8:37:ca:ab:a6:f5:e2:80:dd:
a7:8b
Look at the validity date. Maybe Apple started analyzing it? I sent from another device in my tests so in my case the validity range is until 2016 (which is also invalid, of course). Let me ask the guy on twitter for who it started working...
ideviceinfo -k ActivationInfo (iOS 10)
So I got a sample from an iPhone 4s on iOS 9.2.1. It has EXACTLY the same FairPlayCertChain in the ActivationInfo as @noahlittle's device on 9.2.1 - so it must be something else that prevents the activation. It's certainly not the validity date...
Damn, I think apple has changed a bunch of stuff.. 😦
I just restored back to 9.2.1 and it just activated first try! not sure what the problem is but i think apple has fixed it??
I have no idea. Maybe it was some bug on their server and they fixed it. Can't really tell...
Having the same issue. Can activate just fine on 10.3.3 but downgrading to 9.2.1 with either idevicererestore or futurerestore results in the same error as above. Using update blobs.
10.3.3 activation success: https://ghostbin.com/paste/8bzkp 9.2.1 activation error: https://ghostbin.com/paste/wkucj 9.2.1 ideviceinfo activationinfo: https://ghostbin.com/paste/vbmwb
iPhone 5,1
/etc/ssl/certs/ca-certificates.crt
does not exist for me on OSX 10.12. Also tried activating over a VPN from another country and still same error.
@nikias 10.2.1 not woking latest ideviceactivation and apple configurator working please help
its working with less than 10.0 and its working with greater than 10.3 i hv no idea why its just not working with 10.2 ... its working with itunes its working with apple configurator as well
The activation error is only affecting A6 and A6X devices below iOS 10.
@nikias Would replay of a cached response be a possible solution?
hmmm should I make a bypass server for it guys
I think I can ;)
@leftyfl1p
iOS version is not important other values are
@NigthWolf What am I supposed to do with this?
that was just proof its not from iOS version
@NigthWolf Today i was starting one in python. But really dont know about this issue, i'm new in activation method. How is the plan? Php server? Socket server?
Replaying is not really an option because there is a randomness/nonce involved that would change for every request.
I used to think the same but for example this code to bypass itunes login work for me every time i use:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.apple.com/itms/" lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="keywords" content="iTunes Store" /><meta name="description" content="iTunes Store" /><title>iPhone Activation</title><link href="https://static.ips.apple.com/ipa_itunes/stylesheets/shared/common-min.css" charset="utf-8" rel="stylesheet" /><link href="https://static.ips.apple.com/deviceservices/stylesheets/styles.css" charset="utf-8" rel="stylesheet" /><link href="https://static.ips.apple.com/ipa_itunes/stylesheets/pages/IPAJingleEndPointErrorPage-min.css" charset="utf-8" rel="stylesheet" /><script id="protocol" type="text/x-apple-plist"><plist version="1.0">
<dict>
<key>iphone-activation</key>
<dict>
<key>ack-received</key>
<true/>
<key>show-settings</key>
<true/>
</dict>
</dict>
</plist></script><script>var protocolElement = document.getElementById("protocol");var protocolContent = protocolElement.innerText;iTunes.addProtocol(protocolContent);</script></head><body></body></html>
I use Fiddler, i got this just looking information in google.
uhh, this is the first time i have ever used libideviceactivation, and the reason i am using it, is because i downgraded with iDeviceReRestore to iOS 9.2.1 on iPhone 5c (5,4) And i cannot activate
Any help??? Thank you.
iDeviceActivate:
iDeviceInfo: