Apple TimeCapsule / AirPort Extreme. Root access and escape from an attached region

Surely many owners of Apple network devices that read this article, such as TimeCapsule or Airport Extreme, sooner or later wondered why the devices purchased in Russia do not have beamforming support and the maximum channel width is 40 MHz? And as a result, the maximum speed of data reception and transmission is 600 Mbit / s (instead of the declared 1300 Mbit / s).

If someone did not know or forgot, the devices look like this:



Apple replied: “AirPort Extreme is designed based on preliminary technical requirements for the IEEE 802.11ac standard. Support for 802.11ac features is dependent on country specific legal requirements; 80 MHz channels and beamforming technology are not available in the Russian Federation, Ukraine, Kuwait, Belarus, Morocco, Azerbaijan, Kazakhstan and Egypt . The maximum theoretical data transfer rate is 600 Mbps; the actual speed will be lower. ”

Therefore, today I will tell you how to escape from the region without changing the device itself.

For this we need python 2.7 (it is already preinstalled on mac OS X), AirPyrt utility and 5 minutes of free time.

Download and install AirPyrt.

Via a terminal with root privileges:

python setup.py install

AirPyrt Utility uses ACP to communicate with Apple AirPort devices. The same protocol by which an iphone or mac will see an unconfigured device through the AirPort utility.

Next, enable ssh on our device:

python -m acp -t {ipv4-address} -p {password} --setprop dbug 0x3000
python -m acp -t {ipv4-address} -p {password} --reboot

After that, we can get root access to the device via ssh and change absolutely everything on it. By the way, the router is based on NetBSD.

Connect via ssh:

ssh root@{ipv4-address}

Next, we will need to replace only two things: country code and SKU .

To replace a country with USA:

acp -q syRe=0x00000000
acp static apple-sku=FCC

List of countries and codes (must be transferred to HEX):
«syRe.0» = «United States»;
«syRe.1» = «Canada»;
«syRe.2» = «Mexico»;
«syRe.3» = «Colombia»;
«syRe.4» = «Puerto Rico»;
«syRe.5» = «Brazil»;
«syRe.6» = «Chile»;
«syRe.7» = «Japan»;
«syRe.8» = «Austria»;
«syRe.9» = «Belgium»;
«syRe.10» = «Cyprus»;
«syRe.11» = «Czech Republic»;
«syRe.12» = «Denmark»;
«syRe.13» = «Estonia»;
«syRe.14» = «France»;
«syRe.15» = «Finland»;
«syRe.16» = «Germany»;
«syRe.17» = «Greece»;
«syRe.18» = «Hungary»;
«syRe.19» = «Iceland»;
«syRe.20» = «Italy»;
«syRe.21» = «Ireland»;
«syRe.22» = «Latvia»;
«syRe.23» = «Liechtenstein»;
«syRe.24» = «Lithuania»;
«syRe.25» = «Luxembourg»;
«syRe.26» = «Malta»;
«syRe.27» = «Netherlands»;
«syRe.28» = «Norway»;
«syRe.29» = «Poland»;
«syRe.30» = «Portugal»;
«syRe.31» = «Slovak Republic»;
«syRe.32» = «Slovenia»;
«syRe.33» = «Spain»;
«syRe.34» = «Sweden»;
«syRe.35» = «Switzerland»;
«syRe.36» = «United Kingdom»;
«syRe.37» = «Australia»;
«syRe.38» = «Hong Kong S.A.R., China»;
«syRe.39» = «New Zealand»;
«syRe.40» = «Singapore»;
«syRe.41» = «Philippines»;
«syRe.42» = «China»;
«syRe.43» = «Malaysia»;
«syRe.44» = «Taiwan»;
«syRe.45» = «South Korea»;
«syRe.46» = «Thailand»;
«syRe.47» = «Argentina»;
«syRe.48» = «Venezuela»;
«syRe.49» = «Russia»;
«syRe.50» = «United States»;
«syRe.51» = «Canada»;
«syRe.52» = «Bulgaria»;
«syRe.53» = «Romania»;
«syRe.54» = «India»;
«syRe.55» = «Vietnam»;
«syRe.56» = «Sri Lanka»;
«syRe.57» = «Brunei»;
«syRe.58» = «Pakistan»;
«syRe.59» = «Nepal»;
«syRe.60» = «Bangladesh»;
«syRe.61» = «Peru»;
«syRe.62» = «Afghanistan»;
«syRe.63» = «Albania»;
«syRe.64» = «Algeria»;
«syRe.65» = «American Samoa»;
«syRe.66» = «Andorra»;
«syRe.67» = «Angola»;
«syRe.68» = «Anguilla»;
«syRe.69» = «Antarctica»;
«syRe.70» = «Antigua And Barbuda»;
«syRe.71» = «Armenia»;
«syRe.72» = «Aruba»;
«syRe.73» = «Azerbaijan»;
«syRe.74» = «Bahamas»;
«syRe.75» = «Bahrain»;
«syRe.76» = «Barbados»;
«syRe.77» = «Belarus»;
«syRe.78» = «Belize»;
«syRe.79» = «Benin»;
«syRe.80» = «Bermuda»;
«syRe.81» = «Bhutan»;
«syRe.82» = «Bolivia»;
«syRe.83» = «Bosnia Herzegovina»;
«syRe.84» = «Botswana»;
«syRe.85» = «Bouvet Island»;
«syRe.86» = «British Indian Ocean Territory»;
«syRe.87» = «Burkina Faso»;
«syRe.88» = «Burundi»;
«syRe.89» = «Cambodia»;
«syRe.90» = «Cameroon»;
«syRe.91» = «Cape Verde»;
«syRe.92» = «Cayman Islands»;
«syRe.93» = «Central African Republic»;
«syRe.94» = «Chad»;
«syRe.95» = «Christmas Island»;
«syRe.96» = «Cocos Islands»;
«syRe.97» = «Comoros»;
«syRe.98» = «Congo»;
«syRe.99» = «Cook Islands»;
«syRe.100» = «Costa Rica»;
«syRe.101» = «Ivory Coast»;
«syRe.102» = «Croatia»;
«syRe.103» = «Djibouti»;
«syRe.104» = «Dominica»;
«syRe.105» = «Dominican Republic»;
«syRe.106» = «East Timor»;
«syRe.107» = «Ecuador»;
«syRe.108» = «Egypt»;
«syRe.109» = «El Salvador»;
«syRe.110» = «Equatorial Guinea»;
«syRe.111» = «Eritrea»;
«syRe.112» = «Ethiopia»;
«syRe.113» = «Falkland Islands»; /* A.K.A. (Malvinas) */
«syRe.114» = «Faeroe Islands»;
«syRe.115» = «Fiji»;
«syRe.116» = «French Guiana»;
«syRe.117» = «French Polynesia»;
«syRe.118» = «French Southern Territories»;
«syRe.119» = «Gabon»;
«syRe.120» = «Gambia»;
«syRe.121» = «Georgia»;
«syRe.122» = «Ghana»;
«syRe.123» = «Gibraltar»;
«syRe.124» = «Greenland»;
«syRe.125» = «Grenada»;
«syRe.126» = «Guadeloupe»;
«syRe.127» = «Guam»;
«syRe.128» = «Guatemala»;
«syRe.129» = «Guinea»;
«syRe.130» = «Guinea Bissau»;
«syRe.131» = «Guyana»;
«syRe.132» = «Haiti»;
«syRe.133» = «Honduras»;
«syRe.134» = «Indonesia»;
«syRe.135» = «Iran»;
«syRe.136» = «Iraq»;
«syRe.137» = «Israel»;
«syRe.138» = «Jamaica»;
«syRe.139» = «Jordan»;
«syRe.140» = «Kazakhstan»;
«syRe.141» = «Kenya»;
«syRe.142» = «North Korea»;
«syRe.143» = «Kuwait»;
«syRe.144» = «Lebanon»;
«syRe.145» = «Libya»;
«syRe.146» = «Macau»;
«syRe.147» = «Macedonia»;
«syRe.148» = «Monaco»;
«syRe.149» = «Morocco»;
«syRe.150» = «Nicaragua»;
«syRe.151» = «Oman»;
«syRe.152» = «Qatar»;
«syRe.153» = «Saudi Arabia»;
«syRe.154» = «South Africa»;
«syRe.155» = «Syria»;
«syRe.156» = «Trinidad And Tobago»;
«syRe.157» = «Tunisia»;
«syRe.158» = «Turkey»;
«syRe.159» = «United Arab Emirates»;
«syRe.160» = «Ukraine»;
«syRe.161» = «Uruguay»;
«syRe.162» = «Uzbekistan»;
«syRe.163» = «Yemen»;
«syRe.164» = «Zimbabwe»;

SKU list:
FCC
JAPAN
ETSI
APAC
ROW
FCC-DFS
KOREA
RUSSIA
SAM

After that, disconnect from ssh and reboot the device:

python -m acp -t {ipv4-address} -p {password} --reboot

To disable ssh:

python -m acp -t {ipv4-address} -p {password} --setprop dbug 0x0000
python -m acp -t {ipv4-address} -p {password} --reboot

After the "relocation" to the USA we have:



UPDATE:
As correctly notedsmarty999, on some firmware, to disable ssh, you need to run in ssh session
acp remove dbug
reboot

All Articles