Как стать автором
Обновить

Apple TimeCapsule/AirPort Extreme. Root доступ и побег из привязанного региона

Время на прочтение4 мин
Количество просмотров41K
Наверняка многие владельцы сетевых устройств Apple, которые читают эту статью, таких как TimeCapsule или Airport Extreme, рано или поздно задумывались почему у купленных в России устройств нет поддержки beamforming и максимальная ширина канала 40МГц? И как следствие максимальная скорость приема и передачи данных – 600 Мбит/с (вместо заявленных 1300 Мбит/с).

Если кто не знал или забыл, устройства выглядят так:



На сайте apple дан ответ: «AirPort Extreme разработан на основе предварительных технических требований к стандарту IEEE 802.11ac. Поддержка функций 802.11ac зависит от законодательных требований, существующих в конкретной стране; каналы с шириной спектра 80 МГц и технология формирования луча недоступны в Российской Федерации, на Украине, в Кувейте, Беларуси, Морокко, Азербайджане, Казахстане и Египте. Максимальная теоретическая скорость передачи данных составляет 600 Мбит/с; фактическая скорость будет ниже.»

Поэтому сегодня я расскажу Вам как сбежать из региона не меняя при этом само устройство.

Для этого нам потребуется python 2.7 (на mac OS X он уже предустановлен), утилита AirPyrt и 5 минут свободного времени.

Скачаем и установим AirPyrt.

Через терминал с правами root:

python setup.py install

Утилита AirPyrt использует протокол ACP для связи с устройствами Apple AirPort. Тот самый протокол, по которому iphone или mac увидит не настроенное устройство через утилиту AirPort.

Далее включим ssh на нашем устройстве:

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

После этого мы можем получить root доступ до устройства по ssh и изменить на нем абсолютно всё. Кстати роутер основан на NetBSD.

Подключаемся по ssh:

ssh root@{ipv4-address}

Далее нам необходимо будет заменить всего две вещи: код страны и SKU.

Для замены страны на USA:

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

Список стран и коды(необходимо перевести в 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:
FCC
JAPAN
ETSI
APAC
ROW
FCC-DFS
KOREA
RUSSIA
SAM

После этого отключаемся от ssh и перезагружаем устройство:

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

Для отключения ssh:

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

После «переезда» в США имеем:



UPDATE:
Как верно заметил smarty999, на некоторых прошивках для отключения ssh необходимо в сессии ssh выполнить
acp remove dbug
reboot
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 21: ↑19 и ↓2+27
Комментарии75

Публикации

Истории

Ближайшие события

2 – 18 декабря
Yandex DataLens Festival 2024
МоскваОнлайн
11 – 13 декабря
Международная конференция по AI/ML «AI Journey»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань