Русский
Русский
English
Статистика
Реклама

Apple

Рой и пользовательский опыт в подарок Большому Брату

06.05.2021 20:17:21 | Автор: admin

Необходимое предупреждение - эта статья является личным мнением автора

Не так давно Apple представили AirTags - очередной продукт из своей экосистемы, который был почему-то практически проигнорирован прессой. Вспомните, какими непрерывными потоками раньше выходили обзоры - на новые iPhone, iPad, Macbook и просто Mac, на AirPods и Apple Watch, а сейчас? Мне это показалось незаслуженно пропущенным событием - и естественно, захотелось это исправить. Нет-нет-нет, не сделать "самый правильный обзор" - пусть этим Висла занимается.

Намного интересней предыстория и последствия появления этого сервиса.

Apple совершили качественный скачок: от архитектуры облачного сервиса, когда есть четко выделенные роли клиента и сервера, они перешли к роевой архитектуре, когда клиенты перестают быть клиентами и становятся агентами, постоянно собирающими информацию и передающими её владельцу роя.

Надо заметить, что Apple отнюдь не открыл Америку сделав сервис с такой роевой архитектурой - всё навигационные сервисы - Google Maps, Яндекс.Карты и другие - работают по тому же принципу, передавая свое местоположение владельцу сервиса и позволяя ему локализовать транспортные затруднения (пробки). Apple "всего лишь" начал собирать не только данные самого устройства - но и данные о всех устройствах поблизости.

Теперь все устройства Apple превращены в огромный инструмент сбора данных. Причем собираются не только данные об устройствах Apple - но вообще обо всех устройствах. Весь этот собраный массив отправляется в Apple, где из него извлекается вся доступная информация, и та часть которая относится к геосервисам Apple, будет становиться доступной пользователям. Вот только одно "но" - компания получит данные обо всех устройствах поблизости. Ведь ни один закон не заставляет компанию удалять данные, если они "обезличены". Нельзя сопоставить MAC пользователю - всё, нет нужды удалять.

Вы верите, что собранные данные будут удалены? Я - нет.

Огромное недремлющее радиооко, которое передает одной компании информацию обо всех устройствах поблизости от своих агентов - не только об устройствах Apple. Спецслужбы неправильных стран ушли в запой с горя, спецслужбы "правильной" страны кушают смузи с кукурузным бренди. Боб Шоу с его "Светом Былого" (в оригинале Other Days, Other Eyes) с восхищением и ужасом наблюдает за происходящим.

Ну и финальный штрих - увеличение емкости роя не требует затрат: пользователи сами, добровольно несут в Apple деньги, покупая устройства, которые станут частицами роя и будут собирать для Apple информацию, которую Apple сможет использовать (и продавать).

За счет чего Apple удалось реализовать это решение? Trusted Computing:

  1. Устройство, выполняет только подписанный код

  2. Устройство не позволяет загрузить неодобренный код

  3. Пользователь лишен привилегии полного контроля над устройством

Сохранив абсолютный контроль над платформой и своими устройствами - а это именно Apple сохраняет полный контроль над всеми своими устройствами, а не пользователь - пользователь может только "подергать за ручки" которые ему экспортировала Apple - компания может разрабатывать сервисы, которые невозможно разработать в условиях открытой платформы.

В этой гонке Google, которая когда-то сделал ставку на открытый Android, не может победить и Fucsia родилась во многом именно поэтому - компании нужна её собственная абсолютно контролируемая платформа.

Закрытие платформы, тивоизация и другие инструменты "оконтроливания" платформ будут становиться майнстримом, поскольку позволяют с околонулевыми затратами реализовывать новые распределенные сервисы... И повышать норму прибыли. Давайте сделаем некоторую базовую аппаратную платформу, сделаем её закрытой, а фичи превратим в программно отключаемые платные опции - привет автопилот Tesla, автоматическое запирание дверей Ford Focus, автоматическое переключение на ближний свет BMW и многие другие "гениальные оптимизации".

Если же вернуться к вопросам приватности и сбора данных - вполне ожидаемо, что настолько агрессивный инструмент для сбора данных не будет оставлен без надзора соответствующих заинтересованных элементов государственной машины - от законодателей, которые просто обязаны озаботиться сохранением конфиденциальности данных - и до спецслужб, которые неизбежно попробуют получить доступ к этой информации.

И нас всех ждут очень веселые времена, когда все заинтересованные стороны - корпорации и государство - будут агрессивно торговаться за право заглянуть в то, что мы ещё недавно считали своей если не тайной, то как минимум привилегией. И еще более "интересные", когда они договорятся

Закрытые платформы и проприетарные сервисы - концентрированый яд. Производители будут их насаждать всеми возможными средствами, как законными, так и не очень. Будет лоббизм и проталкивание под соусом "защиты государства", "защиты авторских прав", "защиты приватности" и других громких слов. Будут попытки тивоизировать уже существующие решения. Это неизбежно. А проталкиваемые решения будут строиться по принципу "роевых стркутур" - в условиях тивоизированной или полностью закрытой платформы ПО это очень перспективное направление.

И всё чаще нам будут предлагать "дать согласие" на активацию очередных опций, которые ну вот точно-точно нужны для достижения очередного "ещё более уникального пользовательского опыта", или приобрести очередной продукт, который "входит в экосистему" и (ну так уж получилось, вы же понимаете, это другое), естественно, закрытый.

Будут предлагать перенести свою инфраструктуру в облако, свои данные в облачное хранилище, отказаться от своего оборудования и воспользоваться "уникальными сервисами SaaS и PaaS" - естественно оказав всю возможную поддержку для "миграции в облако". И предлагемое "комплексное решение", как обычно водится, будет совершенно случайно привязано к соответствующему провайдеру.

И выбор встанет перед каждым - пожертвовать ли частицей своих прав, свобод и возможностей в пользу очередного "снижения затрат" и "улучшения пользовательского опыта" или сохранить приватность и техническую и технологическую независимость.

Подробнее..

Можно ли анонимно оплачивать через Apple Pay?

18.05.2021 12:12:57 | Автор: admin

Конечно, нельзя называть Apple Pay анонимным в принципе, хотя бы потому что к ней привязана наша банковская карта. Однако, в момент оплаты что о нас узнаёт продавец? Какие наши персональные данные получает продавец от Apple Pay? Можно ли избежать передачи данных и, тем самым, сделать оплату анонимной в глазах продавца?

Когда мы полагаем, что оплачиваем через Apple Pay, то можем заблуждаться. В зависимости от того что мы приобретаем, используется один из двух механизмов Apple. При покупке любой материальной услуги действительно применяется Apple Pay. Однако, когда мы приобретаем цифровой контент в экосистеме Apple, применяется In-App Purchase. Заказываете Uber через Apple Pay? Верно, это Apple Pay. Оформляете подписку в Apple Music? Это уже In-App Purchase.

Ниже мы рассказываем, какие данные утекают продавцу при оплате внутри приложений. Мы не стали разбирать ситуацию, когда товар оплачивается через POS-терминал, так как она требует отдельного внимания.

Визуально оба механизма очень похожи, но под капотом все иначе. Визуально оба механизма очень похожи, но под капотом все иначе.

In-App Purchase

Как уже было сказано выше, данный механизм оплаты используется только для цифрового контента. Электронные книги в Amazon Kindle, дополнительное пространство в Dropbox, скины в PUBG - это всё примеры цифрового контента.

При анализе In-App Purchase выяснилось, что мы анонимны перед продавцом. Некоторая информация о нас все же передается продавцу, но в обезличенном виде. Если мы купим неприличную книгу в LitRes, то разработчики приложения не узнают, что именно мы её приобрели. При условии, что мы не поделились с приложением личной информацией иным путем.

Какие данные передаются продавцу

Ниже представлена таблица, где мы видим какие данные In-App Purchase передает продавцу.

In-App Purchase

Как предотвратить передачу?

Дата первой установки приложения

Никак

Список всех сделанных покупок

Никак

Биллинговая ошибка на стороне клиента (не хватает денег, карта неактивна)

Никак

Дата первой установки приложения

Можно определить, когда мы первый раз скачали приложение, даже если удалим сейчас, но скачаем заново через пол года.

Список всех сделанных покупок

По сути, только дата покупки и что за продукт был приобретен.

Биллинговая ошибка на стороне клиента

Если мы оформим автовозобновляемую подписку, а потом на карте закончатся деньги или карта будет неактивной, то разработчик узнает об этом.

Технические подробности

Спойлер
  1. Приложение предлагает пользователю какой-то контент.

  2. Пользователь инициирует процесс покупки.

  3. Приложение показывает ему окно для совершения транзакции.

  4. После подтверждения приложение какое-то время думает.

  5. Контент предоставлен.

В это время в приложении происходит целая череда событий. Большая часть из них скрыта внутри самой операционной системы, а именно системной библиотеки StoreKit. В результате покупки разработчик получит специальную строку receipt.

Пример receipt

MIITuAYJKoZIhvcNAQcCoIITqTCCE6UCAQExCzAJBgUrDgMCGgUAMIIDWQYJKoZIhvcNAQcBoIIDSgSCA0YxggNCMAoCAQgCAQEEAhYAMAoCARQCAQEEAgwAMAsCAQECAQEEAwIBADALAgEDAgEBBAMMATMwCwIBCwIBAQQDAgEAMAsCAQ4CAQEEAwIBWjALAgEPAgEBBAMCAQAwCwIBEAIBAQQDAgEAMAsCARkCAQEEAwIBAzAMAgEKAgEBBAQWAjQrMA0CAQ0CAQEEBQIDAYfPMA0CARMCAQEEBQwDMS4wMA4CAQkCAQEEBgIEUDI1MDAYAgEEAgECBBA04jSbC9Zi5OwSemv9EK8kMBsCAQACAQEEEwwRUHJvZHVjdGlvblNhbmRib3gwHAIBAgIBAQQUDBJjb20uYmVsaXZlLmFwcC5pb3MwHAIBBQIBAQQUJzhO1BR1kxOVGrCEqQLkwvUuZP8wHgIBDAIBAQQWFhQyMDE4LTExLTEzVDE2OjQ2OjMxWjAeAgESAgEBBBYWFDIwMTMtMDgtMDFUMDc6MDA6MDBaMD0CAQcCAQEENedAPSDSwFz7IoNyAPZTI59czwFA1wkme6h1P/iicVNxpR8niuvFpKYx1pqnKR34cdDeJIzMMFECAQYCAQEESfQpXyBVFno5UWwqDFaMQ/jvbkZCDvz3/6RVKPU80KMCSp4onID0/AWet6BjZgagzrXtsEEdVLzfZ1ocoMuCNTOMyiWYS8uJj0YwggFKAgERAgEBBIIBQDGCATwwCwICBqwCAQEEAhYAMAsCAgatAgEBBAIMADALAgIGsAIBAQQCFgAwCwICBrICAQEEAgwAMAsCAgazAgEBBAIMADALAgIGtAIBAQQCDAAwCwICBrUCAQEEAgwAMAsCAga2AgEBBAIMADAMAgIGpQIBAQQDAgEBMAwCAgarAgEBBAMCAQEwDAICBq4CAQEEAwIBADAMAgIGrwIBAQQDAgEAMAwCAgaxAgEBBAMCAQAwEAICBqYCAQEEBwwFdGVzdDIwGwICBqcCAQEEEgwQMTAwMDAwMDQ3MjEwNjA4MjAbAgIGqQIBAQQSDBAxMDAwMDAwNDcyMTA2MDgyMB8CAgaoAgEBBBYWFDIwMTgtMTEtMTNUMTY6NDY6MzFaMB8CAgaqAgEBBBYWFDIwMTgtMTEtMTNUMTY6NDY6MzFaoIIOZTCCBXwwggRkoAMCAQICCA7rV4fnngmNMA0GCSqGSIb3DQEBBQUAMIGWMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQXBwbGUgSW5jLjEsMCoGA1UECwwjQXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMxRDBCBgNVBAMMO0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE1MTExMzAyMTUwOVoXDTIzMDIwNzIxNDg0N1owgYkxNzA1BgNVBAMMLk1hYyBBcHAgU3RvcmUgYW5kIGlUdW5lcyBTdG9yZSBSZWNlaXB0IFNpZ25pbmcxLDAqBgNVBAsMI0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zMRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKXPgf0looFb1oftI9ozHI7iI8ClxCbLPcaf7EoNVYb/pALXl8o5VG19f7JUGJ3ELFJxjmR7gs6JuknWCOW0iHHPP1tGLsbEHbgDqViiBD4heNXbt9COEo2DTFsqaDeTwvK9HsTSoQxKWFKrEuPt3R+YFZA1LcLMEsqNSIH3WHhUa+iMMTYfSgYMR1TzN5C4spKJfV+khUrhwJzguqS7gpdj9CuTwf0+b8rB9Typj1IawCUKdg7e/pn+/8Jr9VterHNRSQhWicxDkMyOgQLQoJe2XLGhaWmHkBBoJiY5uB0Qc7AKXcVz0N92O9gt2Yge4+wHz+KO0NP6JlWB7+IDSSMCAwEAAaOCAdcwggHTMD8GCCsGAQUFBwEBBDMwMTAvBggrBgEFBQcwAYYjaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwMy13d2RyMDQwHQYDVR0OBBYEFJGknPzEdrefoIr0TfWPNl3tKwSFMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUiCcXCam2GGCL7Ou69kdZxVJUo7cwggEeBgNVHSAEggEVMIIBETCCAQ0GCiqGSIb3Y2QFBgEwgf4wgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNgYIKwYBBQUHAgEWKmh0dHA6Ly93d3cuYXBwbGUuY29tL2NlcnRpZmljYXRlYXV0aG9yaXR5LzAOBgNVHQ8BAf8EBAMCB4AwEAYKKoZIhvdjZAYLAQQCBQAwDQYJKoZIhvcNAQEFBQADggEBAA2mG9MuPeNbKwduQpZs0+iMQzCCX+Bc0Y2+vQ+9GvwlktuMhcOAWd/j4tcuBRSsDdu2uP78NS58y60Xa45/H+R3ubFnlbQTXqYZhnb4WiCV52OMD3P86O3GH66Z+GVIXKDgKDrAEDctuaAEOR9zucgF/fLefxoqKm4rAfygIFzZ630npjP49ZjgvkTbsUxn/G4KT8niBqjSl/OnjmtRolqEdWXRFgRi48Ff9Qipz2jZkgDJwYyz+I0AZLpYYMB8r491ymm5WyrWHWhumEL1TKc3GZvMOxx6GUPzo22/SGAGDDaSK+zeGLUR2i0j0I78oGmcFxuegHs5R0UwYS/HE6gwggQiMIIDCqADAgECAggB3rzEOW2gEDANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQGEwJVUzETMBEGA1UEChMKQXBwbGUgSW5jLjEmMCQGA1UECxMdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAUBgNVBAMTDUFwcGxlIFJvb3QgQ0EwHhcNMTMwMjA3MjE0ODQ3WhcNMjMwMjA3MjE0ODQ3WjCBljELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xLDAqBgNVBAsMI0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zMUQwQgYDVQQDDDtBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9ucyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMo4VKbLVqrIJDlI6Yzu7F+4fyaRvDRTes58Y4Bhd2RepQcjtjn+UC0VVlhwLX7EbsFKhT4v8N6EGqFXya97GP9q+hUSSRUIGayq2yoy7ZZjaFIVPYyK7L9rGJXgA6wBfZcFZ84OhZU3au0Jtq5nzVFkn8Zc0bxXbmc1gHY2pIeBbjiP2CsVTnsl2Fq/ToPBjdKT1RpxtWCcnTNOVfkSWAyGuBYNweV3RY1QSLorLeSUheHoxJ3GaKWwo/xnfnC6AllLd0KRObn1zeFM78A7SIym5SFd/Wpqu6cWNWDS5q3zRinJ6MOL6XnAamFnFbLw/eVovGJfbs+Z3e8bY/6SZasCAwEAAaOBpjCBozAdBgNVHQ4EFgQUiCcXCam2GGCL7Ou69kdZxVJUo7cwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBQr0GlHlHYJ/vRrjS5ApvdHTX8IXjAuBgNVHR8EJzAlMCOgIaAfhh1odHRwOi8vY3JsLmFwcGxlLmNvbS9yb290LmNybDAOBgNVHQ8BAf8EBAMCAYYwEAYKKoZIhvdjZAYCAQQCBQAwDQYJKoZIhvcNAQEFBQADggEBAE/P71m+LPWybC+P7hOHMugFNahui33JaQy52Re8dyzUZ+L9mm06WVzfgwG9sq4qYXKxr83DRTCPo4MNzh1HtPGTiqN0m6TDmHKHOz6vRQuSVLkyu5AYU2sKThC22R1QbCGAColOV4xrWzw9pv3e9w0jHQtKJoc/upGSTKQZEhltV/V6WId7aIrkhoxK6+JJFKql3VUAqa67SzCu4aCxvCmA5gl35b40ogHKf9ziCuY7uLvsumKV8wVjQYLNDzsdTJWk26v5yZXpT+RN5yaZgem8+bQp0gF6ZuEujPYhisX4eOGBrr/TkJ2prfOv/TgalmcwHFGlXOxxioK0bA8MFR8wggS7MIIDo6ADAgECAgECMA0GCSqGSIb3DQEBBQUAMGIxCzAJBgNVBAYTAlVTMRMwEQYDVQQKEwpBcHBsZSBJbmMuMSYwJAYDVQQLEx1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEWMBQGA1UEAxMNQXBwbGUgUm9vdCBDQTAeFw0wNjA0MjUyMTQwMzZaFw0zNTAyMDkyMTQwMzZaMGIxCzAJBgNVBAYTAlVTMRMwEQYDVQQKEwpBcHBsZSBJbmMuMSYwJAYDVQQLEx1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEWMBQGA1UEAxMNQXBwbGUgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOSRqQkfkdseR1DrBe1eeYQt6zaiV0xV7IsZid75S2z1B6siMALoGD74UAnTf0GomPnRymacJGsR0KO75Bsqwx+VnnoMpEeLW9QWNzPLxA9NzhRp0ckZcvVdDtV/X5vyJQO6VY9NXQ3xZDUjFUsVWR2zlPf2nJ7PULrBWFBnjwi0IPfLrCwgb3C2PwEwjLdDzw+dPfMrSSgayP7OtbkO2V4c1ss9tTqt9A8OAJILsSEWLnTVPA3bYharo3GSR1NVwa8vQbP4++NwzeajTEV+H0xrUJZBicR0YgsQg0GHM4qBsTBY7FoEMoxos48d3mVz/2deZbxJ2HafMxRloXeUyS0CAwEAAaOCAXowggF2MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQr0GlHlHYJ/vRrjS5ApvdHTX8IXjAfBgNVHSMEGDAWgBQr0GlHlHYJ/vRrjS5ApvdHTX8IXjCCAREGA1UdIASCAQgwggEEMIIBAAYJKoZIhvdjZAUBMIHyMCoGCCsGAQUFBwIBFh5odHRwczovL3d3dy5hcHBsZS5jb20vYXBwbGVjYS8wgcMGCCsGAQUFBwICMIG2GoGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wDQYJKoZIhvcNAQEFBQADggEBAFw2mUwteLftjJvc83eb8nbSdzBPwR+Fg4UbmT1HN/Kpm0COLNSxkBLYvvRzm+7SZA/LeU802KI++Xj/a8gH7H05g4tTINM4xLG/mk8Ka/8r/FmnBQl8F0BWER5007eLIztHo9VvJOLr0bdw3w9F4SfK8W147ee1Fxeo3H4iNcol1dkP1mvUoiQjEfehrI9zgWDGG1sJL5Ky+ERI8GA4nhX1PSZnIIozavcNgs/e66Mv+VNqW2TAYzN39zoHLFbr2g8hDtq6cxlPtdk2f8GHVdmnmbkyQvvY1XGefqFStxu9k0IkEirHDx22TZxeY8hLgBdQqorV2uT80AkHN7B1dSExggHLMIIBxwIBATCBozCBljELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xLDAqBgNVBAsMI0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zMUQwQgYDVQQDDDtBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9ucyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQIIDutXh+eeCY0wCQYFKw4DAhoFADANBgkqhkiG9w0BAQEFAASCAQCJ9ctD+7Yi9JWvl6G+1HOcDO++mhY6rc6japAgogVF4xmIdh275IKRwZKpQbhoJmxXwElbMjkIsXks/48/EzuaHDQBNIVowq8qQaSUb3msvfAZfi7RGnhaJGzkXf7azr9NLMxX29R2jTiw2oaz2ri49piggmrGfXsLjWs9zTHWHHNRN1fLTPtcWb95JbQNAiQqlecG5a95/+KZ7+joh8fQwbthe8oWs5Tla0DDwrEoIbc5yjFT18Dln5bndTvWQJZcsbI4xa7BAEhjg/nfwPhaL17tHZeW8mOcCtG9UcuAgXXC6usVAOSocenhmKUR8W+D6F/jhBn0k9ahApPDmpZh

receipt нужен для того, чтобы приложение смогло проверить, действительно ли пользователь совершил эту покупку. Обычно приложение передает эту строку на свой бекенд, а тот - в Apple, чтобы проверить покупку. Apple в ответ на запрос пришлет JSON. Он то нам и нужен:

{    "receipt": {        "receipt_type": "ProductionSandbox",        "adam_id": 0,        "app_item_id": 0,        "bundle_id": "com.belive.app.ios",        "application_version": "3",        "download_id": 0,        "version_external_identifier": 0,        "receipt_creation_date": "2018-11-13 16:46:31 Etc/GMT",        "receipt_creation_date_ms": "1542127591000",        "receipt_creation_date_pst": "2018-11-13 08:46:31 America/Los_Angeles",        "request_date": "2018-11-13 17:10:31 Etc/GMT",        "request_date_ms": "1542129031280",        "request_date_pst": "2018-11-13 09:10:31 America/Los_Angeles",        "original_purchase_date": "2013-08-01 07:00:00 Etc/GMT",        "original_purchase_date_ms": "1375340400000",        "original_purchase_date_pst": "2013-08-01 00:00:00 America/Los_Angeles",        "original_application_version": "1.0",        "in_app": [{            "quantity": "1",            "product_id": "test2",            "transaction_id": "1000000472106082",            "original_transaction_id": "1000000472106082",            "purchase_date": "2018-11-13 16:46:31 Etc/GMT",            "purchase_date_ms": "1542127591000",            "purchase_date_pst": "2018-11-13 08:46:31 America/Los_Angeles",            "original_purchase_date": "2018-11-13 16:46:31 Etc/GMT",            "original_purchase_date_ms": "1542127591000",            "original_purchase_date_pst": "2018-11-13 08:46:31 America/Los_Angeles",            "is_trial_period": "false"        }]    },    "status": 0,    "environment": "Sandbox"}

Оба примера взяты со StackOverflow.

Чтобы определить дату первой установки, в JSON необходимо найти поле original_purchase_date. Это просто дата, когда приложение было скачано тем самым iTunes аккаунтом, через который совершается покупка.

Поле in_app даст информацию о почти всех покупках, совершенных с этого iTunes аккаунта. Почти, потому что в нем не хранится информация о всех consumable покупках, только о текущей (как в примере выше). Consumable покупки - это покупки, которые можно совершать любое число раз, например, наборы монеток или кристаллов, за которые в приложении можно купить что-то. Все остальные покупки будут всегда храниться в этом поле. Причем, что интересно, если мы сделаем возврат покупки через Apple, то это действие также отобразится в этом массиве. То есть, когда мы в следующий раз придем покупать или восстанавливать покупку, разработчик может узнать не только как часто мы покупаем, но и как часто отменяем покупку.

О нехватке баланса на карте можно будет узнать только в случае продления автовозобновляемой подписки. Эту информацию можно получить через App Store Server Notifications. Это система нотификаций от App Store, на которую подписывается бекенд и может обрабатывать разного рода сообщения. В конкретном случае нас интересует событие DID_FAIL_TO_RENEW

Apple Pay

Просто напомню, что Apple Pay предназначен для материальных товаров и услуг. Примерами могут быть: доставка еды в UberEATS, аренда дома в Airbnb, авиабилеты в Skyscanner.

Исследование Apple Pay показало нам, что продавец однозначно понимает, кто у него покупает товар/услугу. Мы полностью открыты в глазах продавца. Можно ограничить доступ к некоторой информации о себе, но кардинально ситуацию не изменить.

Какие данные передаются продавцу

Ниже представлена таблица, где мы видим какие данные Apple Pay передает продавцу.

До подтверждения оплаты

В момент, когда у нас выскакивает шторка с просьбой подтвердить оплату, продавец уже получает о нас информацию.

Поле

Значение

Как предотвратить передачу?

Тип карты

Дебетовая/Кредитная

Никак

Примерный адрес доставки пользователя

Страна, область, город, почтовый индекс

Исказить или убрать в iOS. Настройки iOS Wallet и Apple Pay Параметры оплаты по умолчанию

Примерный платежный адрес пользователя (если не запрошен адрес доставки)

Страна, область, город, почтовый индекс

Исказить или убрать в iOS. Приложение Wallet Карта Настройки Адрес плательщика[1]

Информация о банке эмитенте карты (при наличии договоренности между разработчиком и банком)

Название банка

Никак

После подтверждения оплаты

Как только мы подтверждаем оплату с помощью Face ID, Touch ID или пароля, продавец получает новую порцию данных.

Поле

Значение

Как предотвратить передачу?

Платежная система

Mastercard

Никак

Название карты с последними символами реальной карты

MasterCard 2780

Никак

Точный адрес доставки пользователя

Страна, область, город, почтовый индекс, улица, дом, квартира

До подтверждения оплаты исказить текст в самой шторке

Точный платежный адрес пользователя

Страна, область, город, почтовый индекс, улица, дом, квартира

Исказить или убрать в iOS. Приложение Wallet Карта Настройки Адрес плательщика[1]

Имя Фамилия

Иван Иванов

Исказить или убрать в iOS. Находится там же, где и адрес доставки или платежный адрес.

Номер телефона

+77990001122

1. Либо до подтверждения оплаты исказить текст в самой шторке

2. Либо исказить/убрать в iOS. Настройки Wallet и Apple Pay Параметры оплаты по умолчанию[2]

Email

Ivan@gmail.com

От банка-эквайера

После успешной оплаты продавец может запросить дополнительную информацию о нас. Информация запрашивается у того, кто непосредственно обрабатывает нашу оплату (эквайер).

Поле

Значение

Как предотвратить передачу?

IP покупателя

81.18.144.51

Никак

Страна банка эмитента

Россия

Никак

Имя держателя карты

IVAN IVANOV

Никак

Срок истечения действия карты

202109

Никак

Маскированный номер карты, использованной для оплаты (указывается не реальный номер карты, а токен, который был привязан к устройству)

520424**0010

Никак

Как выглядит подтверждение оплаты

Шторка с подтверждением оплаты может выглядеть по-разному. Все зависит от того, какую информацию о нас запрашивает продавец. Любая запрошенная информация обязательна к заполнению.

Технические подробности

Спойлер

Обратимся к официальной документации и к тестовому приложению и попробуем сделать в нем платеж. Как только приложение показывает окно с суммой и просьбой подтвердить покупку, вызывается метод:

func paymentAuthorizationController(_ controller: PKPaymentAuthorizationController, didSelectPaymentMethod paymentMethod: PKPaymentMethod, handler completion: @escaping (PKPaymentRequestPaymentMethodUpdate) -> Void)

Eсли при формировании let paymentRequest = PKPaymentRequest() еще запросить requiredShippingContactFields, то вызывается следующее:

func paymentAuthorizationController(_ controller: PKPaymentAuthorizationController, didSelectShippingContact contact: PKContact, handler completion: @escaping (PKPaymentRequestShippingContactUpdate) -> Void)

Целью этих методов является предоставление разработчикам возможности посчитать стоимость доставки, налогов или сделать скидку пользователям определенных карт. Они то и являются источником данных о типе карты, частичном адресе и информации о банке эмитенте. Если пользователь будет выбирать разные карты или адреса доставки, то эти методы будут вызываться при каждом изменении.

По умолчанию адрес возвращаться не будет, но его можно запросить при показе окна с подтверждением. Сделать это можно, передав в соответствующие поля requiredShippingContactFields и requiredBillingContactFields те данные о пользователе, которые мы хотим получить.

let paymentRequest = PKPaymentRequest()paymentRequest.requiredShippingContactFields = [  .postalAddress,   .name,  .phoneNumber,  .emailAddress]paymentRequest.requiredBillingContactFields = [  .postalAddress,  .name,  .phoneNumber,  .emailAddress]

Стоит отметить, что если запрашивать requiredBillingContactFields вместе с requiredShippingContactFields, то billingAddress не будет возвращаться до подтверждения покупки.

Если запросить только requiredBillingContactFields, то при выборе карты вызовется метод:

func paymentAuthorizationController(_ controller: PKPaymentAuthorizationController, didSelectPaymentMethod paymentMethod: PKPaymentMethod, handler completion: @escaping (PKPaymentRequestPaymentMethodUpdate) -> Void)

Из объекта paymentMethod: PKPaymentMethod мы получим:

payment.token.paymentMethod.billingAddress givenName nilpayment.token.paymentMethod.billingAddress middleName nilpayment.token.paymentMethod.billingAddress familyName nilpayment.token.paymentMethod.billingAddress                              street=,                             subLocality=,                             city=Москва,                             subAdministrativeArea=,                             state=Москва,                             postalCode=125009,                             country=Россия,                             countryCode=RUpayment.token.paymentMethod.type 2

А если запросим requiredShippingContactFields, то из метода didSelectShippingContact мы получим:

payment.shippingContact email nilpayment.shippingContact name                          namePrefix:                          givenName:                          middleName:                          familyName:                          nameSuffix:                          nickname:                          phoneticRepresentation:                         givenName:                          middleName:                          familyName:   payment.shippingContact postalAddress                         street=,                         subLocality=,                         city=Москва,                         subAdministrativeArea=,                         state=Москва,                         postalCode=125009,                         country=Россия,                         countryCode=RUpayment.shippingContact phoneNumber nil

Пользователь узнает требуются ли эти данные только после того, как окно платежа уже покажется, а данные - уйдут.

Но если пользователь подтвердит покупку - мы получим еще больше:

payment.billingContact          street=Тверская улица 1 123,         subLocality=,         city=Москва,         subAdministrativeArea=,         state=Москва,         postalCode=125009,         country=Россия,         countryCode=RU

Кроме адреса можно запросить еще ФИО, email и номер телефона. Они будут получены после подтверждения оплаты:

payment.shippingContact email ivan@ivanov.rupayment.shippingContact name                         namePrefix:                          givenName: Иван                         middleName:                          familyName: Иванов                         nameSuffix:                          nickname:                          phoneticRepresentation:                           givenName: Ivan                           middleName:                            familyName: Ivanovpayment.shippingContact phoneNumber stringValue=+77990001122

Но email и номер телефона можно получить только в случае запроса адреса доставки. При запросе адреса платежа такая информация не возвращается:

payment.billingContact email nilpayment.billingContact name                        namePrefix:                         givenName: Иван                        middleName:                         familyName: Иванов                        nameSuffix:                         nickname:                         phoneticRepresentation:                           givenName: Ivan                           middleName:                            familyName: Ivanov  payment.billingContact phoneNumber nil

Также после подтверждения платежа мы получим последние 4 цифры карты, ее платежную систему и название. Ниже пример такой информации для одной из тестовых карт Apple:

paymentMethod.displayName Discover 2780payment.token.paymentMethod.network PKPaymentNetwork(_rawValue: Discover)

Чтобы разобраться с тем, что можно получить от эквайера, обратимся к документации Сбербанка

Там много разной информации, но самыми интересными выглядят следующие параметры:

  • ip - IP покупателя

  • bankInfo - наименование страны банка-эмитента, если доступно

  • cardAuthInfo - данные карты, привязанной к устройству

    • expiration - срок истечения действия карты

    • pan - маскированный номер карты

      • номер, привязанный к мобильному устройству покупателя и выполняющий функции номера платёжной карты в системе Apple Pay

    • cardholderName - имя держателя карты латиницей, если доступно

Примечания

  1. Если адрес не выбран явно, то будет подтягиваться тот, что указан в адресе доставки.

  2. В этих настройках данные могут быть заданы напрямую, либо подтягиваться из карточки контакта из телефонной книги. Если данные были заданы здесь, то в телефонной книге их нельзя будет найти. Если же данные были введены в телефонной книге, то здесь они будут видны, но удалить их можно только через телефонную книгу. Это будет заметно по подписи под email или телефоном (домашний, рабочий и тд) и по тому, что не будет возможности удалить его.

Подробнее..

Перевод Send My Произвольная передача данных по сети Apple Find My

07.06.2021 12:06:42 | Автор: admin
  • Можно загружать произвольные данные сустройств, не подключенных к интернету, широковещательно посылая сообщения Find My по технологии BLE (Bluetooth с низким энергопотреблением)на расположенные поблизости устройства Apple, которые затем загружают данные для вас
  • Мы выпустили прошивку дляESP32, превращающую микроконтроллер в модем (работающий только на загрузку) и приложение дляmacOS, предназначенное для извлечения, декодирования и отображения загруженных данных: https://github.com/positive-security/send-my
  • В силу природы той парадигмы приватности и безопасности, на которых основан дизайн системы оффлайн-поиска Find My, представляетсямаловероятным, что такое злоупотребление ею можно будет полностью предотвратить




Find My modem (ESP32) // Модем Find My (ESP32)

Nearby Apple Devices // Расположенные поблизости устройства с Apple

Mobile Tower or Wifi Access Point // Сотовая вышка или точка доступа Wifi

macOS device with data retrieval app // Устройство macOS с приложением для извлечения данных

Data flow // поток данных

.

Введение


После состоявшегося недавно релиза технологии AirTags от Apple я заинтересовался, можно ли злоупотреблять системой оффлайнового поиска Find My, чтобы загружать в Интернет произвольные данные с устройств, не подключенных к WiFi или мобильному интернету. Эти данные могли бы широковещательно транслироваться по Bluetooth с низким энергопотреблением и подхватываться устройствами Apple, расположенными поблизости. Эти устройства, стоит им подключиться к Интернету, сразу переправляли бы эти данные на сервера Apple, откуда их впоследствии можно извлечь. Такой прием мог бы использоваться небольшими сенсорами в неконтролируемых окружениях, чтобы не тратить лишнюю энергию на использование мобильного Интернета. Кроме того, она могла бы быть интересна для кражи данных из мест, защищенных клеткой Фарадея, стоит туда только заглянуть человеку с айфоном.

Теоретически такое должно быть возможным: если удастся эмулировать два AirTags, то можно закодировать данные, активировав в конкретный момент времени лишь один из них. В таком случае устройство-получатель должно проверить, какой AirTag был активен в какое время, и декодировать данные обратно в исходный вид. Однако такая схема представляется исключительно ненадежной и, пожалуй, непригодной к использованию в реальных практических ситуациях по причине очень узкой полосы передачи данных (особенно с учетом ограничения в 16 AirTag на Apple IDпредставлялось, что объем передаваемых данных не может превышать нескольких бит в час).

Следовательно, осуществимость этой идеи зависит от того, как спроектирована и реализована система. Оказывается, что решения по обеспечению безопасности и приватности, принятые при проектировании механизма оффлайнового показывают: предложенный нами кейс весьма эффективен как метод проникновения, и защититься от него почти невозможно.


Результат: извлечение ранее переданных/загруженных данных при помощи специального приложения Mac

Описание сети оффлайнового поиска


К счастью, этот протокол уже был в значительной степени воспроизведен методом реверс-инжиниринга группой исследователей из Дармштадтского Технического Университета, опубликовавших статью Who CanFind MyDevices? в марте 2021 и для проверки концепции выпустивших реализациюOpenHaystack с открытым исходным кодом. При помощи этой реализации можно создавать собственные компоненты, отслеживаемые в сети Apple Find My. Огромная благодарность этой команде! Именно благодаря их работе смогла состояться наша, и на OpenHaystack основана как наша прошивка (также сделанная для проверки концепции), так и приложение для Mac.

В слегка упрощенном виде принцип работы оффлайновой системы поиска Find My таков:

  1. При сочетании метки AirTag с устройством Apple, совместно генерируется пара ключей на эллиптических кривых, причем, открытый ключ остается на AirTag (а также используется разделенный секрет для генерации сменяющихся открытых ключей)
  2. Каждые 2 секунды AirTag посылает широковещательное сообщение по низкоэнергетическому протоколу Bluetooth, причем, содержимым этого сообщения является открытый ключ (детерминированно меняется каждые 15 минут при помощи заранее разделенного секрета)
  3. Расположенные поблизости айфоны, макбуки, т.д., распознают широковещательное сообщение Find My, определяют свое текущее местоположение, шифруют его широковещательно переданным открытым ключом (при помощи механизмаECIES) и загружают на сервер зашифрованный отчет о местоположении
  4. В ходе поиска устройств сопряженное Устройство Владельца генерирует список сменных открытых ключей, которые AirTag, должно быть, использовал в последние дни, и запрашивает у сервиса Apple их хеши SHA256. Бэкенд Apple возвращает зашифрованные отчеты о местоположении для тех ключей, чьи идентификаторы были запрошены.
  5. Устройство владельца дешифрует отчеты о местоположении и выводит приблизительное местоположение.



Apple's servers // Серверы Apple

Finder devices // Ищущие устройства

Owner device // Устройство владельца

Lost device // Потерянное устройство

  1. // Сопряжение при начальной настройке
  2. // Широковещание. Представление Bluetooth с открытым ключом
  3. // Загрузка зашифрованных отчетов о местоположении
  4. // Скачивание и дешифрование отчетов о местоположении

Рис. 1. Упрощенная схема потока задач, решаемых при оффлайновом нахождении устройств

Этот весьма красивый дизайн обладает характерными свойствами безопасности, в частности:

  • Защита от отслеживания, направленная против находящихся поблизости злоумышленников, обеспечивается сменными открытыми ключами
  • Невозможность определить местоположения пользователей Apple

Однако для нас в данном случае наиболее интересно вот что: Apple не знает, какие открытые ключи относятся к вашему AirTag, и, соответственно, какие отчеты о местоположении адресованы вам. Таким образом, оконечная точка, запрашивая отчеты о местоположении по конкретному id ключа, не выполняет при этом никакой авторизации (но вы должны аутентифицироваться по вашему Apple ID, чтобы получить доступ к оконечной точке).

Вся безопасность обеспечивается на уровне шифрования отчетов о местоположении: местоположение может быть дешифровано только правильным закрытым ключом, а хранится он только на сопряженном Устройстве Владельца, и подобрать его простым перебором невозможно.

Проектирование протокола кражи данных


На основе сказанного напрашивается вывод, что единственный носитель, которым мы можем воспользоваться, чтобы зашифровать данные это широковещательно распространяемый открытый ключ EC (напр., мы не можем повлиять на GPS-координаты, поскольку их добавляет ищущее устройство).

В следующем разделе будем считать бекенд Apple разделяемым хранилищем значений открытых ключей, где в качестве ключа применяется хеш SHA256, а в качестве значения зашифрованный отчет о местоположении, причем, основные операции таковы:

  • Можно проверить, существуют ли отчеты о местоположении для конкретного хеша whether SHA256
  • Можно добавить отчеты о местоположении к конкретному хешу SHA256, широковещательно транслируя соответствующий открытый ключ

Думаю, ход событий вам уже понятен: можно устанавливать произвольные биты в разделяемом хранилище ключей и значений и запрашивать их снова. Если как отправитель, так и получатель согласовали такую схему шифрования, то с ее помощью можно передавать произвольные данные.

Я решил соорудить модем, принимающий сообщение через последовательный интерфейс, а затем циклически отправляет эти данные, пока не получит новое сообщение. Чтобы гарантировать, что мы сможем отличать бит 0 от неустановленного бита, мы будем широковещательно рассылать разные открытые ключи в зависимости от значения бита, и будем запрашивать на стороне получателя оба возможных открытых ключа.

Не существует гарантий по поводу того, когда конкретные широковещательные сообщения будут загружаться на бекенд Apple в виде отчетов о местоположении (и будут ли вообще). Дело в том, что некоторые пакеты могут не дойти ни до одного устройства с Apple, а у ищущих устройств могут быть сильно варьирующиеся задержки между получением широковещательного сообщения и загрузкой отчета о местоположении, что может зависеть от восходящей соединяемости или режима питания. Таким образом, наша кодировка данных не должна зависеть от того, какие отчеты о местоположении прибывают и в каком порядке, а также позволять восстанавливать частично полученные потоки данных те, некоторые биты в которых совершенно утрачены. Чтобы добиться этого, я решил зашифровать по одному биту данных на каждую широковещательную передачу, вместе с индексным значением, указывающим, какой бит сообщения задан. Благодаря дополнительному сообщению и ID модема, система пригодна для многократного применения множеством пользователей, обрабатывая множество сообщений.

Итак, отправляя конкретный бит, мы создаем 28-байтный массив вида [4b индекс бита] [4b ID сообщения] [4b ID модема] [заполнение нулями...] [значение бита], оперируем им как открытым ключом и отправляем представления BLE, например, для широковещательной передачи информации бит 0 сообщения 0 равен 1.

Для отправки полного сообщения программа просто перебирает все свои биты и отправляет по представлению на бит с открытым ключом, в котором зашифрованы индекс и значение этого бита.



Message to encode // Сообщение, которое нужно закодировать

Generated public key to broadcast // Сгенерированный открытый ключ для широковещательной передачи

Bit index // Индекс бита

Bit value // Значение бита



Кодирование бит сообщения в широковещательно передаваемую полезную нагрузку

При выборке данных приложение-получатель будет генерировать такие же 28-байтные массивы (по два на бит, где возможными значениями бита являются 0 и 1) и запрашивать сервис Apple с хешами SHA256 этих открытых ключей. Только к одному из этих ключей должны быть прикреплены отчеты о местоположении, что затем поддается интерпретации (напр., бит с индексом 0 равен 1).



Potential bits to query // Биты, которые потенциально можно запрашивать

Potential public keys to test // Открытые ключи, которые потенциально можно протестировать

Query Apple Backend // Запрос к бекенду Apple

Decode public key existence back to original data // Расшифровываем открытый ключ, получая исходные данные


Извлечение ранее отправленных данных с устройства с macOS, подключенного к Интернету

Примечание: можно передавать не только всего один бит на сообщение, а, например, посылать целый байт, в котором будут записаны последние 8 бит открытого ключа. Притом, что для этого требуется более широкая полоса передачи данных, на стороне получателя теперь придется запрашивать 255 разных идентификаторов ключей, чтобы выбрать/подобрать простым перебором один байт (сравните с 16 ID ключей при побитовой кодировке).

Реализация


Сторона отправителя


На стороне отправителя я решил использовать ESP32 совершенно обычный и дешевый микроконтроллер (а быстрый тест показал, что он может менять адрес BT MAC гораздо быстрее, чем, скажем, Raspberry Pi, основанная на Linux). При загрузке прошивка, основанная на OpenHaystack, широковещательно передает жестко закодированное заданное по умолчанию сообщение, а затем слушает последовательный интерфейс (в виде цикла), не поступят ли какие-то новые данные для широковещательной передачи и так продолжается, пока не будет получено новое сообщение. При широковещательной передаче открытого ключа его требуется разделить на части и закодировать первые 6 байт в адресе Bluetooth MAC (все биты кроме первых двух, поскольку стандарт Bluetooth требует, чтобы первые два бита были установлены в 1). Отсылаем вас к разделу 6.2 из статьи Дармштадтского Технического Университета,где эта самодельная кодировка описана подробнее.

Я добавил к моей полезной нагрузке статический префикс, чтобы не нарваться на проблемы со спецификацией BT, а также включил инкрементный битовый индекс в первые 6 байт открытого ключа, в результате чего получилось так, что у каждого передаваемого бита свой адрес BT MAC, просто на случай, если где-нибудь в стеке стоит ограничение частоты, основанное на MAC-адресах.


Вывод модема ESP32 в последовательной консолиа

Сторона извлечения данных


Приложение для Mac также основано на OpenHaystack и использует тот же фокус с плагином AppleMail, чтобы отправлять к бекенду Apple правильно аутентифицированные запросы на извлечение местоположения. Пользователь получает приглашение ввести 4-байтный ID модема (может быть установлен в процессе прошивки ESP), после чего приложение автоматически выберет, декодирует и отобразит сообщение с id 0. Затем пользователь может выбрать другие сообщения или сменить модем.

Сообщение выбирается по 16 байт (128 бит) за раз (при этом запрашивается 256 id ключей), пока не останется ненайденных отчетов (за целый байт).

Небольшое осложнение: срок действия открытого ключа


Реализовав и сторону отправителя, и сторону получателя, я провел первый тест, широковещательно передав и попытавшись получить 32-битное значение. Спустя пару минут, я смог достать 23 из 32 бит, каждый однозначно верный и примерно с 100 отчетами о местоположении, но не получил ни одного такого отчета на оставшиеся 9 бит.

Заподозрил, что некоторые из сгенерированных открытых ключей были отклонены расположенными поблизости устройствами Apple на этапе шифрования ECIES как недействительные открытые ключи и это удалось быстро подтвердить, попытавшись загрузить каждую из сгенерированных полезных нагрузок как закодированные при помощи SEC-1 открытые ключи на кривой P224 при помощи пакета Python fastecdsa: для каждого бита, по которому у меня не нашлось отчетов о местоположении, микроконтроллер широковещательно передал открытый ключ, выбрасывающий исключение InvalidSEC1PublicKey при импорте ключа fastecdsa.

Небольшой контекст применяемого здесь шифрования:

  • 28-байтный EC public представляет координату X конкретной точки, закодированную при помощи SEC1.
  • У открытого ключа SEC1 обычно также есть знаковый бит, от которого зависит, какая из двух возможных координат Y для данной конкретной координаты X должна кодироваться. Этот бит при широковещании не передается и не важен применительно к сроку действия открытого ключа
  • При декодировании сжатого открытого ключа соответствующая координата Y вычисляется с использованием фиксированных параметров кривой и проверяется, действителен ключ. Некоторые сгенерированные открытые ключи этот тест не проходят. Подробнее об этом рассказано в разделе 3.2.2 в статье Валидация открытых ключей на эллиптических кривых:



Такая проблема с недействительными открытыми ключами решается, как минимум, двумя способами:

  1. Перед широковещательной отправкой полезной нагрузки проверьте, на самом ли деле та точка эллиптической кривой, что ей соответствует, является валидной для используемой кривой. Если нет, то увеличивайте счетчик на единицу до тех пор, пока не найдется действительный открытый ключ. Это детерминированный процесс, схожим образом он выполним и оффлайн при помощи приложения для извлечения данных, перед тем, как запрашивать id ключа
  2. Интерпретировать полезную нагрузку как закрытый ключ (а не открытый). Тогда как сжатый 28-байтный открытый ключ интерпретируется как координата X потенциальной точки на кривой, 28-байтный закрытый ключ интерпретируется как скаляр, участвующий в умножении точки эллиптической кривой на скаляр и, следовательно, всегда результирует в точку, действительно расположенную на кривой (открытый ключ)

Преимущество второго варианта заключается в том, что на каждый полученный бит мы также могли бы дешифровать и отчеты о местоположении, чтобы определить, в какой точке был получен данный бит, но для этого требуется несколько больше вычислительной обработки. Реализуя такой вариант, я обнаружил, что из-забагов в реализации умножения эллиптических кривыхв используемой для этого библиотеке uECC, для некоторых закрытых ключей ESP вычисляла иные открытые ключи, нежели BoringSSL на Mac и fastecdsa на Python (случайно вкрался дифференциальный фаззинг?). Эти открытые ключи даже считались недействительными собственной функцией uECC uECC_valid_public_key(). Следовательно, в этом пилотном проекте я остановился на варианте 1.



Message to encode // Кодируемое сообщение

Generate public key to encode // Генерируем открытый ключ для кодирования

BT MAC address // адрес BT MAC

Test validity, else increment counter // Проверить, действителен ли ключ, если нет увеличить счетчик на единицу

Advertisement payload // Полезная нагрузка для представления

Кодирование и отправка сообщения

Тестирование / Производительность


Когда у нас реализована проверка валидности открытого ключа, все работает безупречно. Я не делал обширного тестирования производительности и не вдавался в измерения, но вот некоторые оценки:

  • Скорость передачина микроконтроллере в настоящее время составляет ~3 байт в секунду. Можно было бы достичь и более высоких скоростей, просто кэшируя результаты кодирования или кодируя всего один байт на каждое представление
  • В моих тестахскорость приемабыла ограничена из-за медленного аппаратного обеспечения Mac. На извлечение16 байтодним запросом уходит~5 секунд
  • Задержкаобычно составляетот 1 до 60 минут, в зависимости от того, сколько вокруг устройств, и от других случайных факторов. На следующем графике показано распределение задержки между широковещательной передачей открытого ключа и загрузкой соответствующего отчета о местоположении. Правда, отметьте, что кривая построена по данным о загрузке отдельных отчетов, и не дает точных данных о том, когда именно такой отчет можно будет скачать (чтобы это определить, обычно достаточно уже первого отчета о местоположении от любых расположенных поблизости устройств Apple)



CDF // Кумулятивная функция распределения

Median min // Медиана 26,3 мин.

Publication delay (min) // Задержка до публикации (мин.)

Рис. 8. Задержки при поступлении всех отчетов, рассмотренных в 7.1 как кумулятивная функция распределения


Задержки при поступлении отчетов, измеренные командой из Дармштадского Технического Университета, по материалам Who can Find My Devices?

Потенциальные способы применения


Притом, что в основном мне было интересно проверить осуществимость описанного, полагаю, потенциально наиболее распространенное практическое применение загрузка показаний датчиков или любых данныхсустройств IoT без широкополосного модема, SIM-карты, тарифного плана или Wifi-соединяемости. Учитывая, что Amazonиспользует подобную сеть под названием Sidewalk, использующую устройства Echo, на такие технологии вполне может быть спрос. Поскольку в кэше ищущих устройств скапливаются полученные широковещательные сообщения, оставаясь там, пока не будет установлено подключение к Интернету, датчики могут отправлять данные даже из районов, где нет покрытия мобильными сетями, если в таких местах ходят люди с устройствами.

В миресетей с высоким уровнем безопасности, где технология, сочетающая использование лазеров и сканеров, кажется перспективным приемомдля устранения воздушного зазора, устройства Apple, с которыми приходят посетители, также могут стать реальным промежуточным звеном длякражи данных изсистем с воздушным зазором или помещений, защищенных клеткой Фарадея.

Также представляется, что протокол оффлайнового обнаружения может использоваться для истощения трафика на расположенных поблизости айфонах, подключенных к небезлимитным тарифам. При ограничении количества отчетов о местоположении, которые можно отправить с одного ищущего устройства (255 отчетов/отправок, поскольку счетный байт равен 1), а также притом, что размер каждого отчета превышает 100 байт, широковещательная передача множества уникальных открытых ключей может приводить к значительному увеличению трафика, исходящего со смартфона. Хотя, я и не заметил никакого ограничения по частоте для исходящих отчетов о местоположении, я также не тестировал, сколько данных при этом может быть потреблено.

Как сгладить проблему


Как я упоминал в самом начале, Apple будет сложно защититься от злоупотреблений такого рода, если они пожелают это сделать.

Apple проектировала систему, исходя из принципа экономии данных. Они не могут читать незашифрованные местоположения и не знают, ни какие открытые ключи относятся к вашему AirTag, ни даже с каким открытым ключом связан конкретный зашифрованный отчет о местоположении (поскольку получают только хеш SHA256 открытого ключа).

В таком свете заявленное ограничение в 16 AirTags на Apple ID представляется интересным, так как мне кажется, что на данный момент Apple не в силах обязывать к его использованию.

Однако, дальнейшее ужесточение этой системы возможно, например, в следующих двух областях:

  • Аутентификация представления BLE.В настоящее время ищущие устройства не различают, например, AirTag и его клон на основе OpenHaystack, тем самым допуская спуфинг в виде многих тысяч несуществующих AirTag для кодирования и передачи данных. Можно попробовать подписывать открытые ключи, но, учитывая, что размер представления BLE уже исчерпан, отметим, что AirTag низкоэнергетические и не подключены к Интернету, а широковещательно передаваемые ключи постоянно проходят ротацию, так что задача не из легких.
  • Ограничение частоты при получении отчетов о местоположении Тогда как Apple не знает, связан ли id запрошенного ключа к id одного из запрашивающих пользовательских AirTag, можно кэшировать id запрошенных ключей и обеспечивать, чтобы в течение 15 минут можно было запросить не более 16 новых id ключей и Apple ID (но для первичного поиска в последнее время допустимое количество id стало гораздо больше). Притом, что такой подход реализовать проще, здесь есть лазейка: использовать по принципу карусели множество свободных Apple ID и задействовать их для извлечения данных.


Заключение


В этой статье мы ответили на вопрос о том, можно ли загружать произвольные данные при помощи устройств с Apple, принадлежащих другим пользователям: однозначно да.

Реализована прошивка модема ESP32 и приложение для извлечения данных под macOS, они выложены на Github,можете с ними поэкспериментировать.

Обращаю внимание, что эта реализация лишь доказательство осуществимости, и сам протокол ни шифруется, ни аутентифицируется. Например, можно исследовать данные модема с ID 0x42424242, просто введя его ID (может быть, тем временем кто-то также сможет продемонстрировать, что в этом протоколе отсутствует аутентификация ).

Последнее замечание: Готовя этот пост, я заметил, что байт состояния, включаемый в представление BLE очевидно используется, например, как индикатор уровня заряда. В сочетании с детерминированно генерируемыми закрытыми ключами, которые проходят ротацию, здесь, вероятно, открывается еще одна брешь для утечки данных (по байту на представление), но этот подход я не тестировал.



Облачные серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Вслед за Apple и Google комиссию магазина приложений снизила Amazon

18.06.2021 16:08:17 | Автор: admin

Магазин приложений Amazon Appstore снизил комиссию для разработчиков, получающих доход менее $1 млн в год. Также 10 % от дохода будут конвертироваться в бонусы, которые разработчики смогут потратить на облачный сервис Amazon.

15 июня этого года Amazon объявила о снижении комиссии с 30 % до 20 % для разработчиков приложений. Оно проходит в рамках программы поддержки малого бизнеса и касается только тех разработчиков, кто получает доход менее $1 млн в год.

По данным Amazon, 94 % из опрошенных ими мобильных разработчиков указали, что пользуются облачными сервисами. Поэтому компания решила ввести кэшбек в размере 10 % от годового дохода. Полученные бонусы разработчики смогут потратить на облачные сервисы Amazon.

Новые условия вступят в силу в четвёртом квартале этого года. В качестве дополнительного бонуса, Amazon будет продвигать приложения небольших разработчиков в отдельной строке Amazon Appstore.

Другие владельцы магазинов приложений вводят более низкие комиссии, чем у Amazon. Первого января этого года Apple сократила комиссию с 30 % до 15 % для разработчиков с годовым доходом менее $1 млн. С 1 июля Google также снизит ставку с 30 % до 15 % на первый заработанный за год миллион долларов для всех компаний.

В апреле о снижении комиссии объявила и Microsoft. С 1 августа для всех разработчиков комиссия за игры для ПК в Windows Store упадёт с 30 % до 12 %. Таким образом, этот магазин сравняет комиссию с Epic Games Store.

В сентябре прошлого года компании Epic Games, Spotify Technology и Match Group (владелец Tinder) объединились для оказания давления на Apple и других создателей магазинов приложений. По мнению коалиции, завышенные комиссии создают преимущества для собственных продуктов владельцев площадок, что обеспечивает неравные условия на рынке.

Подробнее..

TSMC яркий пример успеха в мире ИТ, проект Госдепа, продукт неотвратимой глобализации?

22.04.2021 22:14:44 | Автор: admin

TSMC - эта не слишком милозвучная аббревиатура от Taiwan Semiconductor Manufacturing Company, в современном мире стала синонимом феноменального успеха. На данный момент тайваньская компания обрела статус одного из наибольших мировых производителей полупроводниковой продукции, а в некоторых сегментах этой индустрии она и вообще вошла в положение монополиста. Занимая второе место по годовой выручке среди конкурентов является весьма удивительным фактом, что TSMC вполне сознательно сконцентрировалась исключительно на производстве полупроводниковых пластин - в мире просто не существует процессоров, модулей памяти под маркой TSMC. С чем это связано? Может быть и с самим неопределенным статусом острова, который является убежищем для непризнанной Китайской Республики - Тайвань. Каким вообще образом в 1987 году удалось основателю компании Морису Чангу - гражданину США, создать будущего лидера в самой передовой сфере ИТ производства на отсталом технологически, удаленном от центров цивилизации острове? О прошлом, настоящем и о том, что ожидает в будущем такую далеко не тривиальную компанию как TSMC и пойдет далее речь в статье.

Основатель

Очень часто невозможно понять современного положения вещей не уделив внимание исторической ретроспективе вопроса. То в каком состоянии пребывает нынешнее мировое производство полупроводниковой продукции неразрывно связано с такой неординарной личностью как Морис Чанг. Основатель и многолетний руководитель TSMC имеет весьма не заурядную биографию. Судьба этнического китайца Мориса, рожденного в Китае образца 1931 года, была крепко переплетена с судьбой всего Китая. Данное ребенку при рождении европейское имя Морис стало следствием того, что город Нинбо, в администрации которого его отец состоял на службе, являлся одним из 5 китайских "свободных" портов, где активно жили и работали европейские торговцы. Получив достаточно качественное начальное образование на английском языке в дальнейшем молодой китайский иммигрант сможет получить высшее образование в лучшем техническом учебном заведении США - МТИ (Массачусетский Технологический Институт). К иммиграции с родины молодого и перспективного китайца подтолкнули те бурные события которые неистово лихорадили всю юго-восточную Азию. Ряд китайских революций, японская оккупация, в 1949 году окончательное поражение коммунистам Мао националистического правительства Гоминьдана - в рядах которого молодой человек принимал участие, с одной стороны не оставляли Морису ничего другого как бежать из континентального Китая, с другой стороны сделает возможным его возвращение на Тайвань в 1985 году, где ему всего через два года будет суждено основать одного известного ИТ-гиганта.

Для понимание того, кто через 36 лет пребывания в США вернулся на Тайвань можно лишь глянуть на послужной список гражданина США Мориса Чанга.

Поучив в 1953 году диплом магистра Морис попробовал пойти далее по научной стезе, однако защитить докторскую диссертацию ему тогда было не суждено. В 1955 году году он устраивается в небольшую производственную компанию, в подразделение занимающееся полупроводниками. Было ли это предвидение молодого специалиста или просто случай неизвестно, но данное направление в технике теперь будет сопровождать Мориса всю его сознательную жизнь.

В 1954 году в США произошло довольно знаковое, однако малозаметное событие. Компанией Texas Instrumentsвпервые был налажен серийный выпуск транзисторов. Уникальность этого события для широких масс была несколько размыта поскольку сам принцип заложенный в радиодеталь давно уже не был новинкой. Существующие вакуумные лампы были куда надежнее предлагаемых до этого момента исследовательскими институтами "трехлапых монстров", откровенно говоря не обладающих достаточной стабильность в работе. Однако, настоящие специалисты понимали, что именно реализация подхода заложенного в работу транзистора пророчила ему самое светлое будущее. Миниатюризация печатных плат, колоссальное уменьшение электропотребления электроцепями, низкая цена в производстве все это должно было завоевать мир.

В 1958 году один из сотрудников Тexas Instruments создает и патентует первую в мире интегральную микросхему, в этом же году в компанию устраивается и Морис Чанг. Это было крайне удачное решение, ведь набирающей интенсивно обороты компании в самом скором будущем суждено будет стать самым крупным производителем полупроводниковой продукции в мире. В условиях отсутствия заслуженных авторитетов на ниве передовых технологий, хорошо образованный молодой китайский эмигрант с реальным производственным опытом в полупроводниковой тематике уже в 1961 году занимает весьма высокий пост начальника инженерного отдела. Отдав 25 лет жизни своему работодателю - Texas Instruments, Морис прошел практически все ступени карьерного роста. Вице-президент по внешнеэкономической деятельности - пост с которого в 1983 году Морис покинул Texas Instruments.

Возвращение в 1985 году на Тайвань весьма молодого - 54 летнего, человека с таким столь уникальным опытом не было случайным. Еще в конце 70х, США несколько изменила свою концепцию по продвижению своих интересов в юго-восточной Азии. Всесторонне разобрав ситуацию с поражением во Вьетнамской войне, правительство США решило сделать ставку, в первую очередь, на усиление экономических связей со своими союзниками в регионе. В рамках этой программы предполагался массовый перенос трудозатратных производств из самого США в страны с куда более дешевой рабочей силой. Это должно было дать обоюдовыгодный эффект. Япония, Филиппины, Южная Корея, Тайвань, Сингапур это те основные бенефициары проводимой политики США, что сейчас носят гордое название азиатских тигров. Под чутким руководством Мориса Чанга тайваньским китайцам - дисциплинированным и трудолюбивым, только-что оторваны от сохи, в этом новом мире суждено было занять свою новую высокотехнологическую нишу.

Корпорация TSMC

К слову, под управлением несменного лидера Мориса Чанга TSMC пробыла 31 год, основатель корпорации отошел от дел только в 2018 году, отдав ей 31 год своей жизни. Под его руководством компания стала знаковой не только для Тайвани, а и для всего мира. Что бы понять, что из себя сейчас представляет TSMC нужно взглянуть всего на несколько графиков. Главным из которых является конечно же уровень прибыли.

На рынке контрактных производителей полупроводниковой продукции TSMC с общей долей в 60% является безусловным лидером. Что же касается особо передового направления в производстве полупроводниковых пластин диапазона 5-32 нм, тут компания удовлетворила мировой спрос своей продукцией на 80% . Прибыль компании исчисляется миллиардами.

Если рассмотреть более детально структуру заработка самой TSMС по конкретному техпроцессу, то можно увидеть, что основная прибыль идет с наиболее продвинутых производств реализованных на уровне 5-7 нм техпроцесса.

Рассматривая исключительно техпроцесс не всегда понятно что за ним скрывается в мире реальных гаджетов. Но и тут отчет от TSMС поможет пролить свет на положение вещей. Более половины выпущенной компанией продукции устанавливается в смартфоны, треть станет основой для высоко производительных систем.

На сколько такая ситуация стала уникальной для TSMС? Да в общем не особо. За последние шесть лет структура прибыли у компании существенно не меняется. Наиболее прогрессивные технологии приносят около 50% заработка. Столь занятное распределение прибылей дает понимание того, что именно делает TSMС лидером среди контрактных производителей полупроводниковой продукции - интенсивное внедрение передовых технологий.

Но картина мира TSMС была бы не достаточно ясна, если бы не еще одна диаграмма. Поскольку компания весьма открытая ее регулярные статистические отчеты касаются самого разного спектра деятельности, в том числе и распределение получаемой прибыли в зависимости от реализации продукции в конкретном регионов мира. Это может и весьма удивительный факт, однако в 2020 году 75% выручки компании принес рынок Северной Америки. Торговля с КНР всего-навсего на уровне 6%. Торговля полупроводниковой продукцией с КНР резко упала в 2020 году как результат введенных против Поднебесной санкций со стороны США, но даже в досанкционный 2019 год эта цифра колебалась в районе 10%. Фактически, если пристально рассмотреть всю географию поставок продукции становится понятным - TSMС целиком и полностью зависит от потребителей в США как и ее международных партнеров.

Полупроводниковый полуфабрикат

Мы с вами много сказали про достижения TSMС и увидели множество красочных цифр, однако есть один существенный нюанс. Форма бизнеса которую ведет компания не предполагает выпуск собственного завершенного продукта будь то процессоры, модули памяти, SoC и тд. Как мы уже вспоминали TSMС стала самым крупным контрактным производителем полупроводников размещая на своих производственных мощностях заказы таких компаний как Apple, Qualcomm,Nvidia, AMD,MarvellBroadcom, MediaTek, Huawei и даже могущественной Intel. Однако в мире готовых решений ее доля не столь значительна.

Как видно на диаграмме розовая TSMС занимается исключительно "литьем" полупроводниковых пластин. В тоже время зеленые Intel и Samsung обладают полным циклом разработки, производства и реализации процессоров. Голубым цветом обозначены компании не обладающие своим производством полупроводников. Желтые же это исключительно поставщики производственного оборудования Как видно на диаграмме розовая TSMС занимается исключительно "литьем" полупроводниковых пластин. В тоже время зеленые Intel и Samsung обладают полным циклом разработки, производства и реализации процессоров. Голубым цветом обозначены компании не обладающие своим производством полупроводников. Желтые же это исключительно поставщики производственного оборудования

Для мира процессоров тайваньская TSMС хотя и является существенным фактором, но далеко не главным. И тут разговор идет уже не об объемах получаемой прибыли, а о завершенных технологических цепочках. Компания TSMС не обладает полным циклом производства полупроводниковой продукции, даже учитывая ее глубокое партнерство с AMD и Apple. Возникает вполне законный вопрос а кто ж тогда обладает? Обладают им Intel и Samsung, Texas Instruments и Broadcom, но и тут вопрос не такой простой как могло бы показаться. Кроме разработки архитектуры процессоров, коей занимается достаточное количество организаций, в производстве "чипов" ключевую роль играет создание тех самых полупроводниковых пластин, а в особенности оборудования на котором они будут создаваться.

Обозначенные желтым цветом компании это и есть производители оборудования. При казалось бы достаточном количестве предприятий - Applied Materials, ASML, Tokyo Elektron, Lam Reasearch, KLA, говорить о широком выборе оборудования все равно не приходится. Проблема с производителями этого оборудования состоит в том, что наиболее востребованная полупроводниковая продукция та которая обладает максимальным количеством транзисторов на квадратный дюйм, а в этом сегменте конкуренция у компаний уже весьма условна.

Та самая единственная в мире установка фотолитографии в EUV от ASML для производства полупроводниковых пластин по технологическому процессу 5 нмТа самая единственная в мире установка фотолитографии в EUV от ASML для производства полупроводниковых пластин по технологическому процессу 5 нм

Фактически в мире есть лишь одна компания готовая поставлять оборудование для производства полупроводников по 5 нм технологии и это Нидерландская ASML. Именно это оборудование и использует TSMС в производстве своей 5-7 нм продукции, также как собственно и корпорация Samsung. В тоже время Intel утверждает, что ее собственные разработки на основе оборудования от Applied Materials достаточно прогрессивны и дают возможность создавать на полупроводниковых пластинках, произведенных с использованием 7-10 нм техпроцесса, плотность транзисторов аналогичную плотности на пластинах произведенным TSMС с 5-7 нм.

Размытое будущее в едином фарватере

Столкнувшись с необходимостью покупки какого-то новомодного девайса рядовой потребитель зачастую впадает в ступор. Одолеваемый терзаниями выбора он рыщет по просторам интернета в поисках детальных характеристик, подробных обзоров, сравнительных анализов. В поисках ответов нарываясь в сети на бескомпромиссные дискуссии сторонников Samsung и приверженцев Apple, поклонников красных и любителей синих часто вообще теряется логическая нить происходящего. Однако, сняв всю эту цветовую мишуру и оторвав лейбл, не редко можно заметить, что все эти суровые в мире маркетинга конкуренты произведены на одних заводах, одним оборудованием, по весьма схожим технологиям.

Естественно глупо утверждать, что iPhone 12 и Samsung Galaxy S21 одинаковые аппараты, но также не разумно искать в них большие отличия. В современном мире все переплелось. Sony завалила весь мир встраиваемыми в смартфон камерами, Samsung стал абсолютным монополистом в производстве высококачественных экранов на базе OLED матриц, Qualcomm безусловный лидер в создании модулей связи 5G.

"Я беру камень и отсекаю всё лишнее" - Микеланджело Буонарроти в ответ на вопрос: Как вы делаете свои скульптуры?"Я беру камень и отсекаю всё лишнее" - Микеланджело Буонарроти в ответ на вопрос: Как вы делаете свои скульптуры?

Конечно, конкуренция на рынке полупроводников все еще присутствует, о чем хотя бы свидетельствуют потуги корпорации Apple захватить мир с помощью своих АРМ процессоров серии А и М. Intel также не стоит в стороне и хотя уже крепко сотрудничает и сейчас с TSMС, также как и всерьез рассматривает возможность перенести часть производства своих процессоров на фабрики TSMС, но все еще не отказывается от продвижения собственных технологий и очевидно будет их развивать.

В свете таких радужных перспектив для TSMС стоит ли от нее, как независимой компании, ожидать выхода на качественно новый уровень своего развития, что она вложится в свою раскрутку и обзаведется собственной линейкой процессоров, модулей памяти или вообще смартфонов? Очевидно нет. Угрожает ли бизнесу TSMС новый политический тренд в США по возврата производственных мощностей из за границы назад в страну? Скорее всего так же нет, ведь фактически азиатские партнеры настолько сильно завязаны с США технологически, экономически, политически, по линии военной помощи, что называть их в полной мере заграницей американцы могут весьма формально. Что касается непосредственно Тайваня то и подавно, без всеобъемлющей протекции со стороны США остров уже давным бы давно утратил свою независимость.

Все, что мы сейчас вообще наблюдаем в мире полупроводниковой продукции укладывается в единый фарватер планомерного, поступательного движения вперед. Сложность технологического прогресса породила необходимость объединения воедино разбросанных по всему миру разработчиков, производителей, рынков сбыта, маркетологов. Главную скрипку в этом глобализационном процессе сейчас естественно играет США, как собственно это всегда и было в сфере микроэлектроники.

На этом фоне было бы интересно сказать что-то про действительно независимых новаторов производителей полупроводниковой продукции, но действительность такова, что их просто нет. Оценивая те грандиозные финансовые вливания, что осуществляют в развитие и производство полупроводников компаниями Intel, Apple, Samsung, ASML, TSMС и тд. говорить о появлении даже в среднесрочной перспективе некого нового игрока также не приходится. Даже "всесильный" Китай, фактически, не обладает собственным полным циклом производства современных полупроводниковых пластин. Наиболее совершенным производством подобной продукции в континентальном Китае является компания SMIC ( Semiconductor Manufacturing International Corporation ), но и она готовится приступить к выпуску пластин по 7 нм техпроцессу исключительно на оборудовании от ASML и в этом свете любой сбой в технологической цепочке, благодаря тем же грозящим санкциям, может откинуть КНР в технологиях производства назад на целые десятилетия. Ежегодно инвестировать сотни миллиардов на протяжении десятилетий без гарантий ожидаемого результата - ноша довольно тяжелая и наверно не так уж и нужная. Хорошо ли сложившееся положение вещей или не очень? Этот вопрос не имеет смысла, ведь это действительность в которой мы будем жить еще весьма долго.

Если кто-то в серьез задался поставленным в самом начале статьи вопросом и по какой либо причине все еще не нашел на него ответа, можно лишь коротко подытожить - всего по чуть-чуть.

Немного рекламы

Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас, оформив заказ или порекомендовав знакомым, облачные VPS для разработчиков от $4.99, уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps от $19 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).

Dell R730xd в 2 раза дешевле в дата-центре Maincubes Tier IV в Амстердаме? Только у нас 2 х Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 ТВ от $199 в Нидерландах! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - от $99! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?

Подробнее..

Перевод Do it

14.04.2021 14:22:42 | Автор: admin

Многие ребята из академических кругов, которые участвовали в создании первых реализаций пользовательского интерфейса в Xerox PARC и других университетах, насмехались над первым поколением персональных компьютеров, появившихся в середине семидесятых, поскольку первые персональные компьютеры были менее мощными, чем машины, на которых они привыкли программировать. С четырьмя килобайтами памяти и без дисковода можно было не так много сделать.

Но Ларри Теслер, который был ключевым членом команды Smalltalk в Learning Research Group в Xerox PARC, думал иначе. Он был действительно воодушевлен потенциалом персональных компьютеров и купил Commodore PET, как только тот стал доступен в 1977 году. После посещения Apple Xerox PARC в декабре 1979 года, он был так впечатлен ребятами из Apple, что 17 июля 1980 года он ушел из PARC и начал работать в Apple в качестве менеджера группы Lisa Applications.

Ларри отстаивал согласованность между приложениями и внес большой вклад в то, что в итоге стало пользовательским интерфейсом Macintosh. Он также был основным сторонником и разработчиком пользовательского тестирования в Apple: фактически опробовал программное обеспечение на реальных пользователях и лицезрел их реакцию. Начиная с лета 1981 года, Ларри организовал серию пользовательских тестов зарождающегося программного обеспечения Lisa, наняв друзей и родственников, чтобы они впервые опробовали программное обеспечение, под наблюдением сотрудников Apple, которые записывали их реакцию.

Пользовательские тесты проводились в специально сконструированной комнате с односторонним зеркалом, чтобы наблюдатели могли наблюдать за тестами, не вмешиваясь в них. Тестирование проводил модератор, задачей которого было убедиться, что пользователь чувствует себя комфортно и показать, как пользоваться мышью. Затем, без дальнейших инструкций, пользователей просили выполнить определенные задачи без помощи модератора, например отредактировать текст и сохранить его. Модератор призвал каждого пользователя бормотать себе под нос при выполнении задач, максимально раскрывая свои мысли. Каждый сеанс записывался на аудио или видео для последующего анализа.

Когда программное обеспечение требовало подтверждения от пользователя, оно отображало диалоговое окно, которое содержало вопрос, и представляло две кнопки для положительного или отрицательного ответа. Кнопки были помечены как Do it и Cancel. Сотрудники Apple заметили, что некоторые пользователи, казалось, спотыкались в момент отображения диалогового окна, нажимая Cancel, когда им следовало нажать Do It, но не было понятно, с чем у них возникали проблемы.

Наконец, команда обратила внимание на одного пользователя, которого особенно смутило диалоговое окно, который, казалось, даже немного рассердился. Модератор прервал тест и спросил, в чем проблема. Он ответил: Я не болван, почему программа называет меня болваном?

Оказывается, он не замечал промежутка между o и i в Do It; в системном шрифте без засечек, который мы использовали, заглавная I была очень похожа на строчную L, поэтому он читал Do It как Dolt и поэтому был несколько обижен.

Примечание: Dolt болван

После небольшого размышления мы изменили метку кнопки положительного подтверждения на ОК (чего изначально избегали, потому что мы думали, что это слишком разговорно), и с этого момента у людей стало меньше проблем.


Дата-центр ITSOFT размещение и аренда серверов и стоек в двух дата-центрах в Москве. За последние годы UPTIME 100%. Размещение GPU-ферм и ASIC-майнеров, аренда GPU-серверов, лицензии связи, SSL-сертификаты, администрирование серверов и поддержка сайтов.

Подробнее..

Перевод Связанные не явные выражения в Swift 5.4

14.04.2021 00:14:01 | Автор: admin

В Swift 5.4: не явные выражения для членов классов (также известные как точечный синтаксис) теперь могут использоваться даже при обращении к свойству или методу в результате такого выражения, пока окончательный тип возвращаемого значения остается прежним.

Обратите внимание, что на момент написания статьи Swift 5.4 находится в стадии бета-тестирования в качестве части Xcode 12.5.

На практике это означает, что всякий раз, когда мы создаем объект или значение с помощью статического API, или при обращении обращении к перечисляемому типу, мы теперь можем напрямую вызвать метод или свойство в этом экземпляре класса, и компилятор по-прежнему сможет вывести тот тип, к которому мы обращаемся.

Например, при создании экземпляра UIColor с использованием одного из встроенных статических API-интерфейсов, предоставленных в качестве части системы, мы теперь можем легко изменить альфа-компонент такого цвета без необходимости явно ссылаться на сам UIColor в таких ситуациях, как:

// In Swift 5.3 and earlier, an explicit type reference is always// required when dealing with chained expressions:let view = UIView()view.backgroundColor = UIColor.blue.withAlphaComponent(0.5)...// In Swift 5.4, the type of our expression can now be inferred:let view = UIView()view.backgroundColor = .blue.withAlphaComponent(0.5)...

Конечно, вышеупомянутый подход также работает при использовании наших собственных статических API, например, любых пользовательских определений UIColor, которые мы добавили с помощью расширения:

extension UIColor {    static var chiliRed: UIColor {        UIColor(red: 0.89, green: 0.24, blue: 0.16, alpha: 1)    }}let view = UIView()view.backgroundColor = .chiliRed.withAlphaComponent(0.5)...

Возможно, даже более интересным является то, какие двери открывает эта новая возможность с точки зрения дизайна API. В качестве примера, в Легком дизайне API в Swift мы рассмотрели следующий стиль API, включающий расширение структуры с помощью статических методов и свойств, что позволяет нам использовать ее способом, подобным типу перечисления:

extension ImageFilter {    static var dramatic: Self {        ImageFilter(            name: "Dramatic",            icon: .drama,            transforms: [                .portrait(withZoomMultipler: 2.1),                .contrastBoost,                .grayScale(withBrightness: .dark)            ]        )    }}

При использовании Swift 5.4 (или более поздних версий в будущем) мы могли бы добавить что-то вроде такого, что позволяет нам легко объединить два экземпляра ImageFilter, путем объединения их .transforms:

extension ImageFilter {    func combined(with filter: Self) -> Self {        var newFilter = self        newFilter.transforms += filter.transforms        return newFilter    }}

С учетом вышеизложенного теперь мы сможем работать с фильтрами, которые комбинируются динамически. Теперь мы можем использовать тот же упрощенный точечный синтаксис, который раньше мог быть применен только к предварительно определенному фильтру.

let filtered = image.withFilter(.dramatic.combined(with: .invert))

Довольно круто! Я собираюсь продолжить изучение того, какие API-интерфейсы позволяет мне разрабатывать эта новая языковая функциональность, и, конечно же, продолжу делиться своими знаниями с вами в будущих статьях.

Подробнее..

Recovery mode Русские программисты не сдаются

17.04.2021 14:23:59 | Автор: admin
Часть 1-я
image

Незаметно пролетело два года с тех событий, которые заставили меня написать статью Челобитная в Apple о творящемся беспределе в отрасли, создающей классные программы и интересные гаджеты для повседневной жизни.

Если кратко о предыдущей статье в ней был описан рутинный случай лишения девелоперской лицензии разработчика ПО работающего на мобильной платформе iOS Вадима Башурова, члена команды проекта DO-RA. Попутно о лишении лицензии с блокировкой рабочего аккаунта Apple руководителя и инвестора проекта ДО-РА, с последующим, чудодейственным восстановлением прав со стороны Apple.

Минул год с момента восстановления девелоперской лицензии руководителя проекта ДО-РА. Однако, при обновлении нашего пользовательского ПО DORA.Pro в App Store в апреле 2020 г. случился нежданчик предупреждение от Apple, что дескать я занимаюсь противозаконной деятельностью, мошенничеством и плагиатом, и что моя лицензия, как и аккаунт Apple могут быть заблокированы в ближайшее время, если я не подам апелляцию в течении 14 дней в Apple, отсчитывая от момента данного сообщения.

Обвинения против меня были стандартны, без излишних фантазий, ибо за это давно отвечает искусственный интеллект компании Apple, а не живые люди. Текст присланный мне привожу полностью без изъятий, так как он не секретен и будет понятнее логика статьи:

Other Other
Hello, Upon further review of the activity associated with your Apple Developer Program membership, we have determined that your membership, or a membership associated with your account, has been used for dishonest or fraudulent activity. Therefore, your Apple Developer Program account has been flagged for removal.

We found that your app is in direct violation of the Apple Developer Program License Agreement, which states:

You will not, directly or indirectly, commit any act intended to interfere with the Apple Software or Services, the intent of this Agreement, or Apples business practices including, but not limited to, taking actions that may hinder the performance or intended use of the App Store, Custom App Distribution, or the Program (e.g., submitting fraudulent reviews of Your own Application or any third party application, choosing a name for Your Application that is substantially similar to the name of a third party application in order to create consumer confusion, or squatting on application names to prevent legitimate third party use).

During our review, we found a pattern of manipulative or misleading behavior that violates the Apple Developer Program License Agreement. These behaviors can include, but are not limited to, inaccurate metadata describing your app or service, misleading app content, engaging in inauthentic ratings and reviews manipulation, providing misleading customer support responses, providing misleading responses in Resolution Center, engaging in misleading purchasing or bait-and-switch schemes, and other dishonest or fraudulent activity within or outside of the app.

If you would like to appeal this termination to the App Review Board, you must do so within 14 calendar days. When submitting your appeal, be sure to select I would like to appeal an app rejection or app removal from the drop-down menu on the Contact the App Review Team page. Otherwise, your Apple Developer Program membership will be terminated and all apps associated with your account will be removed from the App Store.

Best regards,
App Store Review

На основании выше изложенного, грозного предупреждения, мной оперативно была написана апелляция в Apple ёмкостью в 4000 знаков на приличном английском, большего не позволяла форма, где я попытался уточнить у Apple, в чём конкретно состоит моя провинность?! Очень хотелось узнать: факты, действия, события, приведшие к подобному плачевному результату?! Заодно я проконсультировался с американскими коллегами, чем мне грозит подобное обвинение в мошенничестве по американским законам? Их ответ меня не окрылил, ибо за мошенничество в США можно легко присесть на несколько лет, повышая свою квалификацию не в области программирования и схемотехники, а в лучшем случае в настольном теннисе и шашках. Шахматы игра не для американских тюрем, хотя Побег из Шоушенко к/ф явное исключение.

Ровно через 14 дней на электронную почту пришёл отрицательный ответ на мою апелляцию, суть которого профилактический бан на 1 год без права повторной апелляции (как в СССР без права переписки;). Ответов в чем причины подобного бана на столь продолжительный срок в письме не было. И тем не менее мы со своей командой всё-таки пытались информационно атаковать различные службы Apple с целью дать возможность самим объективно разобраться в нарушениях, которые мы точно не совершали.

В связи с отказом в размещении наших пользовательских приложений в App Store, нам пришлось завернуть свои экспортные операции по поставке устройств DO-RA.Q в Amazon, eBay, Alibaba, а также в другие Интернет магазины за рубежом. Дело в том, что у нашей продукции в инструкциях и на коробах было заявлено: кроссплатформенное устройство работает, в частности, на мобильных платформах: iOS и Android. Кстати, до этих событий наши гаджеты уже продавались более чем 20 российских интернет магазинах и супермаркетах от OZON до АШАН. Но в России проще заменить информацию, которая вводит в заблуждение покупателя. За бугром это целая канитель связанная с рисками затрат, рекламациями и штрафами.

Однако после написания 5-го или 10-го письма, в итоге нас службы Apple пустили, что называется по кругу, присваивая длинные номера на наши запросы и не отвечая ни через одну, ни через две недели, даже когда мы пытались уточнить всего на всего статус запроса. В подобных душевных диалогах пролетело месяца 3-4, далее мы попытались звонить в службу поддержки Apple, но результат оказался тот же сначала добродушная поддержка, затем пауза и холодное указание ждите ответа по почте.

Мы попытались оформить корпоративную лицензию разработчика ПО от Apple на собственную компанию АО Интерсофт Евразия, что в период санкций со стороны США оказалось также не простым делом. Пришлось даже звонить в специальный департамент США для присвоения нашей компании специального идентификационного кода в Штатах, иначе никак. Хорошо, что мы отыскали этот идентификационный код, благо присвоенный ещё в эпоху, когда Интерсофт Евразия работала с Apple в рамках программы MFi (2012-2015гг.). Тогда у нашей команды были несбыточные надежды, что чип DO-RA.micro интегрируют в смартфоны и планшеты если не Apple, то в рамках подобного проекта ARA Project/Google.

Заплатив с сентябре 2020 г. свои $99 мы довольно быстро получили корпоративную лицензию, под которой могло работать определённое количество программистов нашей команды и право выкладывать собственные разработки ПО в App Store и TestFlight. При этом мы опять нарвались на небольшие, но преодолимые трудности. Пришлось переименовать пользовательское приложение DORA.Pro в DORA.Plus так как по регламенту Apple одинаковые названия у разных разработчиков не допускаются, а префиксы в данном деле пока ещё работают.

Убрав последние баги из своих прог: DORA.Plus, DORA.Light, мы начали с нетерпением ожидать прохождения этапов проверки в App Store. Поначалу всё шло гладко, на каждую инстанцию по 1 дню. Ранее же наши приложения DO-RA проходили всю проверку в течение 24-48 часов.
И вдруг гром грянул средь ясного неба В рамках корпоративной лицензии Интерсофт Евразия служба американской компании Apple сообщила тоже самое, что написано по-английски в начале статьи: Other Other Hello, Upon further review of the activity associated with your Apple Developer Program membership, we have determined that your membership, or a membership associated with your account, has been used for dishonest or fraudulent activity. Therefore, your Apple Developer Program account has been flagged for removal.

Попытка апеллировать в Apple при подобных обвинениях опять не увенчалась успехом. Честно говоря, мы как-то загрустили от безысходности нашего положения. Ведь часть рынка гаджетов, причём не самая низкодоходная была потеряна с лишением прав разработчика на платформе iOS. Но мы решили всёравно не сдаваться

Продолжение следует.
17.04.2021г.
Подробнее..

Загадка отсутствия дефолтного приложения Калькулятор на iPad и поиск его замены

14.05.2021 14:06:19 | Автор: admin


Любой человек, мало мальски знакомый с экосистемой Apple, знает, что приложение Калькулятор, по умолчанию предустановленное на iPhone, Apple Watch и компьютеры Mac, обошло стороной планшеты компании. Вероятно, многие люди, впервые пытавшиеся произвести вычисления на iPad, недоумевали и задавались вопросом: как компания, издавна славившаяся своим софтом и произведшая множество революций в сфере программного обеспечения, до сих пор не смогла обеспечить пользователей своих планшетов, казалось бы, самой простой программой, аналоги которой школьники создают, впервые изучая программирование: калькулятором. Спойлер: мы не знаем.



Экскурс в историю


Когда разрабатывался представленный в далеком 2010 году первый iPad, парень по имени Скотт Форстолл руководил разработкой программного обеспечения. Решение, избранное им, было самым простым из возможных: приложение калькулятор, включенное в прототип iOS для iPad, было просто увеличенной версией варианта для iPhone.


Команда разработчиков собиралась использовать увеличенное приложение калькулятора в предстоящем релизе iOS. Запротестовал против решения сам Стив Джобс.


"Где новый дизайн калькулятора? Этот выглядит ужасно", сказал Джобс.

"Какой новый дизайн? Эту версию мы и собираемся добавить в релиз", ответил Скотт.

"Нет. Мы не можем выпустить это", сказал Джобс.

Оригинал: Saying, "where is the new design for the calculator? This looks awful". Forstall replied, "what new design? This is what we are shipping with." Jobs said, "no, pull it. We can't ship that."

Хотя Форстолл пытался убедить Джобса оставить калькулятор на iPad, ему выдвинули ультиматум: "Переделать пользовательский интерфейс калькулятора, чтобы он хорошо выглядел на большом дисплее iPad, или приложение не будет включено в релиз".


До выхода iPad оставалось всего несколько недель, Форстолл знал, что его команда не сможет создать новое приложение с нуля, поэтому оригинальный iPad начали поставлять без предустановленного калькулятора, не оставляя пользователям иного выбора, кроме как скачивать сторонние приложения из магазина, в большинстве из которых была реклама, и которые явно проигрывали изначальному увеличенному решению.


Столь высокие стандарты Джобса, применяемые к чему-то настолько простому, как приложение калькулятора, кому-то могут показаться нелепыми. Но что поделать, когда приходится иметь дело с перфекционистом. Интересно также, что это не первый случай скрупулезности компьютерного гения.


Еще в 1981 году, когда Стив Джобс был ведущим в разработке Macintosh, точно такой же конфликт возник при выборе решения для системного калькулятора MacOS.


В разговоре с Крисом Эспинозой, разработчиком, он заключил:


"Ну что ж, для начала сойдёт, но, вообще, довольно ужасно. Фон слишком темный, некоторые линии имеют неправильную толщину, а кнопки слишком большие"

Оригинал: "Well, it's a start, but basically, it stinks. The background color is too dark, some lines are the wrong thickness, and the buttons are too big"

Эспиноза сказал Джобсу, что продолжит работать, пока тот не будет удовлетворен. Но каждый раз, когда он создавал новую версию калькулятора, Джобс указывал на новые моменты, которые ему не нравились. Поэтому Эспиноза решил позволить Стиву быть дизайнером вместо него, проявив при этом невиданные чудеса изобретательности. Он создал программу, которая позволяла настраивать каждый визуальный атрибут калькулятора, от толщины линий до размера кнопок.



Джобс сел за новую программу и потратил 10 минут корректируя дизайн, пока не был доволен результатом. И этот калькулятор в конечном итоге использовался в компьютерах Macintosh с 1984 года до релиза Mac OS 9, выпуск которой состоялся в 2001 году.



Перфекционизм и лень


Но почему в iPad до сих пор нет калькулятора? Скрупулезный гений давно ушёл на покой, а пользователи планшетов все ещё вынуждены скачивать калькуляторы из App Store.


На одном интервью Крейга Федериги об этом спросили, и вот что он сказал.


Существуют некоторые вещи, которые мы не сделали просто потому, что нам бы хотелось создать нечто уникальное в своём роде. Мы действительно хотим сделать приложения "Калькулятор" и "Погода", но лишь тогда, когда сами будем к этому готовы. Признаться честно, этого до сих пор не произошло только и исключительно потому, что мы не удосужились сделать это настолько здорово, чтобы пользователи могли с уверенностью сказать: "Это лучшее приложение калькулятора для iPad, которое только можно себе представить", признался Федериги.

По сути, такую же позицию занял и Джобс в 2010 году, но на сегодняшний день заявление вице-президента по разработке ПО звучит скорее как отговорка, тем более, учитывая, что работа над калькулятором даже не ведётся.


Почему доподлинно неизвестно. Вероятно, в компании решили оставить ситуацию как есть. Выполнять вычисления пользователи планшетов могут в Spotlight, а среди альтернативных решений, доступных для загрузки из App Store, сейчас вполне возможно найти достойные варианты. Об этом подробнее.



Приличные альтернативы


Вбив в поисковую строку магазина приложений запрос "Калькулятор", пользователь обнаружит не один десяток предложений, весьма схожих на первый взгляд. Какой из них следует выбрать, чтобы остаться довольным?


Что-ж, для начала, я сформирую список требований, которым, на мой взгляд, должно отвечать современное решение, подходящее для широкого экрана.


  • Удобное и привычное расположение клавиш, исключающее случайные нажатия
  • Адаптированность под любые возможные сценарии использования: в портретном и альбомном режимах, Slide Over и Split View
  • Полное отсутствие рекламы или ее крайняя ненавязчивость
  • Равная нулю стоимость версии, включающей в себя все вышеперечисленное

Попробовав практически все доступные для скачивания варианты, я остановился на следующих:




На мой взгляд, лучшее решение на сегодняшний день.
Обладает всеми возможностями стандартного калькулятора, отображает историю вычислений и не содержит рекламы. За дополнительную плату вы получите рукописный ввод и распознавание выражений с фото.




Достаточно стильный вариант, поддерживающий все стандартные операции для вычислений и лишённый рекламы. Полная версия предлагает дополнительные темы и возможность ведения заметок.




Самый простой вариант с весьма амбициозным названием. Работа в Slide Over, история вычислений, отсутствие рекламы, стоимость в 0 рублей без каких-либо ограничений.




Отличное решение для тех, кому необходимо решать сложные выражения, уравнения и строить графики. Возможности бесплатной версии позволяют производить огромное количество самых разнообразных вычислений не только в привычном режиме калькулятора, но и "сканируя" написанные от руки примеры.


Нельзя также обойти стороной Calzy, победителя Apple Design Award 2018. Хоть это приложение и платное (279), список возможностей в нем исчерпывающий, и, более того, может похвастаться несколькими уникальными решениями вроде "областей памяти", куда с помощью Drag & Drop можно перетаскивать значения для дальнейшего использования; и Tydlig, также платный (179), но представляющий собой скорее целую вычислительную среду с возможностью создавать и редактировать графики и связывать результаты вычислений.


Итог


В заключение можно сказать, что хоть проблема отсутствия калькулятора на планшетах Apple не является чем-то необыкновенно противным и шокирующим, это, на мой взгляд, самое абсурдное, что когда-либо происходило с компанией.




VDS серверы от Маклауд подходят для разработки любых сайтов.


Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!


Подробнее..

Перевод Почему кабель зарядки от iPhone так легко ломается

27.05.2021 16:21:56 | Автор: admin


Большинство владельцев айфонов испытывали сложности из-за кабеля зарядки. Оплетка расщепляется или перетирается, дальше начинаются проблемы с зарядкой.

Такие проблемы есть у многих продуктов Apple, от iPod до MacBook.

Почему кабели Apple ломаются



Зарядные кабели, которые продают вместе с продуктами от Apple, не всегда были такими хрупкими.


По факту, только в 2006 году начались массовые жалобы на эту проблему. Новые кабели стали выходить из строя спустя несколько месяцев использования. На то есть две причины.

Превосходство красоты над здравым смыслом


Во-первых, в Apple форма превосходит функционал. Команда дизайнеров имеет решающее слово в принятии решений по продукту. А ребристые компенсаторы натяжения на предыдущих моделях, дизайнеры сочли уродливыми.



Дизайнеры захотели заменить эти компенсаторы на бесшовную пластиковую втулку, благодаря который зарядное устройство будет выглядеть более гладким.

Команда инженеров Apple понимала, что у такого кабеля будет больше поломок, но изменения все равно реализовали.



iPod, MacBook, и наконец iPhone отказались от обычных ребристых компенсаторов. Жалобы пользователей на поломки и истирание сразу же увеличились в 2007 году, и продолжают поступать до сих пор.

Но, вероятно, в 2007 году был второй фактор, который снизил качество зарядных устройств Apple.

Экологичность Apple


Отчасти хрупкость стала результатом мер по охране окружающей среды, A Greener Apple, начатых Стивом Джобсом. В результате этих мер Apple начали удалять вредные или токсичные материалы их своих продуктов. Среди этого был ПВХ (PVC).



Поливинилхлорид пластмасса, которую используют в кабелях питания, чтобы сделать их более жесткими и долговечными. Когда ПВХ удалили из продуктов Apple, их удалили и из зарядных кабелей. Производство зарядников перевели на тонкую прорезиненную внешнюю оболочку, которая легче гнулась, а значит и легче ломалась.

Если скомбинировать более гладкую, но менее функциональную конструкцию компенсатора с более тонкой и мягкой резиновой оболочкой, то получится самая хрупкая конструкция зарядного кабеля за всю историю в технической индустрии.

И это стало большой проблемой для пользователей, т.к. аксессуары Apple дороже, чем у конкурентов. Так замена зарядного стала дорогой и неудобной частью владения продуктом от Apple.

Пока эта проблема актуальна, но есть признаки, что Apple пытается решить эту проблему. Они уже выпустили более прочные провода в тканевой оплетке для Home Pod и iMac.



И впервые Apple выпустили лайтнинг из того же материала. Хотя пока такой провод доступен только при покупке iMac. Возможно Apple начнет продавать его отдельно, как они сделали с аксессуарами iMac Pro серого цвета.



Я не удивлюсь, если Apple включит тканевые кабели в новый iPhone этого года, поскольку они не только более прочные, но и более экологичные.



Чтобы не терять свои находки по дизайну в тоннах закладок на компе, я создала телеграм-канал Дрын Дезигн. Все клевые и полезные материалы (туториалы, статьи, ссылки на аккаунты клевых чуваков), которые нахожу для себя, я буду постить туда. Угощайтесь.
Подробнее..

Самое важное с keynote-презентации WWDC21

07.06.2021 22:20:16 | Автор: admin

Сегодня стартует ежегодная конференция для разработчиков Apple WWDC, и по традиции она начинается в анонсов обновлений операционных систем для продуктов компании.

Выжимка самого важного из того, что объявили во время keynote-презентации в этом материале.

iOS 15

В FaceTime появится пространственный звук, позволяющий вам и ввшим собеседникам звучать так, как будто вы сидите в одной комнате, и определять вашего собеседника.

Изоляция голоса позволяет выделить из фонового шума ваш голос и передавать его в наиболее чистом виде, или наоборот можно будет настроить звуковой спектр так, чтобы можно было послушать окружение.

Также в FaceTime будет встроен портретный режим, размывающих фон за вами.

Одно из нововведений Facetime link. Это ссылки, позволяющие вести расписание ваших звонков, и делиться ими не только с владельцами iPhone, но и с пользователями Android через веб-браузер.

SharePlay позволяет слушать музыку, смотреть фильмы или просто расшарить экран вместе с другими людьми в звонке, при этом любой человек может остановить или возобновить воспроизведение медиафайла. При этом участники звонка смогут и переписываются одновременно с просмотром фильма или подслушиванием музыки. Функция будет поддерживаться множеством приложений, таких как HBOMax, Twich, TikTok, Disney+ и другими.

Сообщения получили новый дизайн для отображения фотографий в виде коллажей или стопки фото.

Новая функция Shared with you дает возможность закрепить то, что вам присылают в iMessage, и что вы хотели бы посмотреть это позже.

Уведомления тоже получили редизайн и теперь делятся по степени важности: при помощи ИИ производится их сортировка и выводится саммари.

Новый способ оповещения о своей занятости улучшенный режим Не беспокоить, показывающийся тем, кто вам пишет. После его выключения вы получите все те сообщения, которые вы пропустили ранее.

Функция Focus позволяет выбрать, на чем вы сейчас хотите сфокусироваться: на работе, досуге или чем-то другом. В таком случае при помощи ИИ будут отключаться уведомления только от тех приложений, которые не связаны с выбранным времяпрепровождением: на работе вы будете получать сообщения только от коллег, по вечерам только от близких. Focus включается на всех устройствах пользователя сразу.

Live Text позволяет распознать тексты, например, прямо с камеры телефона или скриншота/фотографии, сохраненной в памяти вашего девайса. Чтение доступно пока на семи языках, не включающих русский. Таким образом можно распознать не только текст на фотографии, но и место, растение, породу животного и не только. При помощи этого алгоритма теперь можно можно найти нужный чек среди ваших фотографий или фото из определенной локации. А если на фото произойдет распознавание ваших контактов или знаменитостей, система выдаст вам информацию о них.

Впервые в Воспоминания, генерирующие видеоролики из ваших фотографий и видеороликов, включена Apple Music. Монтаж и цветокоррекция роликов, которыми можно будет поделиться с друзьями, автоматически подстраивается под ритм песни.

В Wallet появилась возможность добавить транспортные карты различных городов, а также ключи от всего, что можно открыть электронным ключом: от вашего дома до автомобиля и номера в отеле. Кроме того, теперь в Walllet можно добавить ваше ID с персональными данными, отсканировал водительские права. Такое ID будет действовать, например, в аэропортах.

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

В Картах появится полноценный интерактивный глобус, а также улучшенные модели достопримечательностей и ночной режим.

Теперь в картах можно будет закрепить свои любимые общественные маршруты. А если вы отсканируете окружение с помощью камеры, Карты смогут определить ваше точное местоположение.

AirPods и Apple Music

AirPods Pro теперь смогут фокусироваться и усиливать голос говорящего рядом человека и тем самым работать как слуховой аппарат.

Siri сможет зачитывать важные уведомления через наушники.

Кроме того, теперь их можно искать через Локатор, а также, чтобы нигде их не забыть, включить уведомления, если вы их где-то оставили.

Добавлено пространственное звучание на всех девайсах и на tvOS.

iPadOS 15

Переработаны виджеты: теперь их можно размещать где угодно, а не только в центре уведомлений.

Добавили Библиотеку приложений, где можно скрывать страницы, которые вам больше не нужны, и возвращать их обратно, когда необходимо.

Многозадачность тоже улучшили: теперь активное приложение можно сдвинуть в сторону, чтобы открыть другое на экране Домой. Кроме того, теперь их можно опускать вниз, как в Windows или Mac, чтобы затем между ними быстро переключаться.

В Заметках появились упоминания и тэги.

Появилась функция Быстрых заметок для записи важной информации. Они будут собираться в отдельном хабе, и их можно создавать как на iPadOS, так и MacOS.

Также для iPad появится и приложение Перевода с функцией автоперевода любого текста, в том числе рукописного или с фотографий.

С помощью Swift Playgrounds теперь на iPad можно писать собственные приложения для iPhone и iPad.

Конфиденциальность, Siri и iCloud

Появилась защита конфиденциальности в Почте, которая может скрывать ваш IP-адрес или местоположение, а также время открытия письма. Также ваш IP не смогут отслеживать и трекеры в Safari.

Появится возможность следить за тем, как часто и что именно запрашивает разрешение к вашим фото, локации и другим данным.

Ускоренная обработка команд в Siri, которые благодаря улучшенным алгоритмам нейросетей вы сможете отдавать и без подключения к сети. Кроме того, у голосового помощника появилось больше новых фраз.

Два улучшения iCloud: восстановление доступа к вашему аккаунту при помощи устройств доверенных людей, которым будет приходить код доступа к вашему девайсу.

А также новая расширенная подписка iCloud+, позволяющая шифровать трафик на серверах компаний, чтобы нельзя было отследить, на какие сайты вы заходите.

Еще одна функция скрытие электронного адреса, а также встроенная поддержка HomeKit Secure Video.

Здоровье

Теперь телефон сможет заранее определить, если вы теряете равновесие или сознание, и предупредить вас об этом, а также предложить упражнения на подобные случаи. Также в приложении теперь можно будет хранить свои анализы.

Появится функция шеринга показателей здоровья с друзьями и настройка, какими именно данными вы хотите поделиться с родственниками.

watchOS 8

Обновленное приложение медитаций, возможность отслеживать изменения дыхания во сне и новый циферблат с 3D-портретами из фотографий, снятых на iPhone в обновленной системе watchOS 8. А также обновленное приложение для просмотра снимков, более похожее на таковое в смартфонах, и улучшенный набор текста с возможностью удаления слов и редактирования.

Умный дом

Теперь Apple TV сможет открывать ссылки на сериалы и фильмы, которые присылают пользователю в сообщениях.

HomePod mini можно будет использовать как динамики для телевизора.

В Apple TV+ появятся профили пользователей с возможностью отслеживать прогресс по просмотру сериалов.

Обновление получит и приложение Дом для Apple Watch. Теперь с его помощью можно будет следить за глазком и еще быстрее управлять функциями дома. А камеры смогут присылать пользователю уведомления о полученной посылке.

macOS Monterey

MacOS, как и iOS, тоже получит поддержку SharePlay для совместного просмотра фильмов, а также обновленные Сообщения, Фокусировку и Заметки.

Новая функциональность Universal Control, позволяющая управлять iPad и Mac с помощью одних и тех же клавиатуры и мыши. Так, если iPad поставить рядом с MacBook, курсор сможет автоматически перейти на экран планшета. Это относится как к управлению мышью, так и тачпадом. Таким образом можно переносить файлы с устройства на устройство или, например, использовать iMac в качестве динамиков для iPhone.

Теперь пользователи смогут создавать быстрые сценарии для ежедневных задач и при помощи Shortcuts на Mac. Пока еще будет действовать и Automator, так что переход будет производиться постепенно, в течение нескольких лет.

Новый дизайн для Safari как на Mac, так и на iPad и iPhone. На Mac теперь строка браузера расположена прямо внутри вкладки. На iPhone они теперь находятся снизу и исчезают при чтении. Вкладки же, в свою очередь, можно собирать в группы и таким образом пересылать по почте.

Технологии для разработчиков

Представлены новые API для изоляции голоса, Focus и SharePlay, а также функции для сканирования 3D-объектов для последующего переноса в AR.

Язык Swift упростит создание параллельных процессов, сократив количество необходимого кода.

Теперь в App Store можно будет создавать разные страницы для приложений с возможностью подсветить разные особенности для разных типов пользователей. Так, можно будет подсветить события внутри приложений и игр и выносить их в форме виджетов на экран с приложениями.

Функциональность Xcode Cloud, позволяющая скомпилировать приложение прямо в облаке для дальнейшей работы над них сразу нескольких разработчиков и тем самым позволяющая сэкономить ресурсы железа. Когда приложение пройдет через все проверки, его автоматически разошлют тестировщикам. Эта функция станет доступна в 2022 году.

TestFlight появится на Mac, и его закрытый тест начнется сразу на WWDC.


Публичные беты всех ОС будут доступны в июле, для разработчиков по окончании презентации. Релиз финальных версий ожидается осенью.

Подробнее..

Xcode Cloud, SharePlay, Focus самое важное с Keynote WWDC21

08.06.2021 00:14:55 | Автор: admin

Сегодня стартует ежегодная конференция разработчиков Apple WWDC, и по традиции она начинается в анонсов обновлений операционных систем для продуктов компании.

Выжимка самого важного из того, что объявили во время keynote-презентации в этом материале.

iOS 15

В FaceTime появится пространственный звук, позволяющий вам и ввшим собеседникам звучать так, как будто вы сидите в одной комнате, и определять вашего собеседника.

Изоляция голоса позволяет выделить из фонового шума ваш голос и передавать его в наиболее чистом виде, или наоборот можно будет настроить звуковой спектр так, чтобы можно было послушать окружение.

Также в FaceTime будет встроен портретный режим, размывающих фон за вами.

Одно из нововведений Facetime link. Это ссылки, позволяющие вести расписание ваших звонков, и делиться ими не только с владельцами iPhone, но и с пользователями Android через веб-браузер.

SharePlay позволяет слушать музыку, смотреть фильмы или просто расшарить экран вместе с другими людьми в звонке, при этом любой человек может остановить или возобновить воспроизведение медиафайла. При этом участники звонка смогут и переписываются одновременно с просмотром фильма или подслушиванием музыки. Функция будет поддерживаться множеством приложений, таких как HBOMax, Twich, TikTok, Disney+ и другими.

Сообщения получили новый дизайн для отображения фотографий в виде коллажей или стопки фото.

Новая функция Shared with you дает возможность закрепить то, что вам присылают в iMessage, и что вы хотели бы посмотреть это позже.

Уведомления тоже получили редизайн и теперь делятся по степени важности: при помощи ИИ производится их сортировка и выводится саммари.

Новый способ оповещения о своей занятости улучшенный режим Не беспокоить, показывающийся тем, кто вам пишет. После его выключения вы получите все те сообщения, которые вы пропустили ранее.

Функция Focus позволяет выбрать, на чем вы сейчас хотите сфокусироваться: на работе, досуге или чем-то другом. В таком случае при помощи ИИ будут отключаться уведомления только от тех приложений, которые не связаны с выбранным времяпрепровождением: на работе вы будете получать сообщения только от коллег, по вечерам только от близких. Focus включается на всех устройствах пользователя сразу.

Live Text позволяет распознать тексты, например, прямо с камеры телефона или скриншота/фотографии, сохраненной в памяти вашего девайса. Чтение доступно пока на семи языках, не включающих русский. Таким образом можно распознать не только текст на фотографии, но и место, растение, породу животного и не только. При помощи этого алгоритма теперь можно можно найти нужный чек среди ваших фотографий или фото из определенной локации. А если на фото произойдет распознавание ваших контактов или знаменитостей, система выдаст вам информацию о них.

Впервые в Воспоминания, генерирующие видеоролики из ваших фотографий и видеороликов, включена Apple Music. Монтаж и цветокоррекция роликов, которыми можно будет поделиться с друзьями, автоматически подстраивается под ритм песни.

В Wallet появилась возможность добавить транспортные карты различных городов, а также ключи от всего, что можно открыть электронным ключом: от вашего дома до автомобиля и номера в отеле, то есть, появилась поддержка CarKey и умных замков с UWB. Кроме того, теперь в Walllet можно добавить ваше ID с персональными данными, отсканировал водительские права. Такое ID будет действовать, например, в аэропортах.

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

В Картах появится полноценный интерактивный глобус, а также улучшенные модели достопримечательностей и ночной режим.

Теперь в картах можно будет закрепить свои любимые общественные маршруты. А если вы отсканируете окружение с помощью камеры, Карты смогут определить ваше точное местоположение.

AirPods и Apple Music

AirPods Pro теперь смогут фокусироваться и усиливать голос говорящего рядом человека и тем самым работать как слуховой аппарат.

Siri сможет зачитывать важные уведомления через наушники.

Кроме того, теперь их можно искать через Локатор, а также, чтобы нигде их не забыть, включить уведомления, если вы их где-то оставили.

Добавлено пространственное звучание на всех девайсах и на tvOS.

iPadOS 15

Переработаны виджеты: теперь их можно размещать и на экране Домой, а не только в центре уведомлений.

Добавили Библиотеку приложений, где можно скрывать страницы, которые вам больше не нужны, и возвращать их обратно, когда необходимо.

Многозадачность тоже улучшили: теперь активное приложение можно сдвинуть в сторону, чтобы открыть другое на экране Домой. Кроме того, теперь их можно опускать вниз, как в Windows или Mac, чтобы затем между ними быстро переключаться. Улучшен SplitView для работы с несколькими приложениями одновременно.

В Заметках появились упоминания и тэги.

Появилась функция Быстрых заметок для записи важной информации. Они будут собираться в отдельном хабе, и их можно создавать как на iPadOS, так и MacOS.

Также для iPad появится и приложение Перевода с функцией автоперевода любого текста, в том числе рукописного или с фотографий.

С помощью Swift Playgrounds теперь на iPad можно писать собственные приложения для iPhone и iPad.

Конфиденциальность, Siri и iCloud

Появилась защита конфиденциальности в Почте, которая может скрывать ваш IP-адрес или местоположение, а также время открытия письма. Также ваш IP не смогут отслеживать и трекеры в Safari.

Появится возможность следить за тем, как часто и что именно запрашивает разрешение к вашим фото, локации и другим данным.

Ускоренная обработка команд в Siri, которые благодаря улучшенным алгоритмам нейросетей вы сможете отдавать и без подключения к сети. Кроме того, у голосового помощника появилось больше новых фраз.

Два улучшения iCloud: восстановление доступа к вашему аккаунту при помощи устройств доверенных людей, которым будет приходить код доступа к вашему девайсу.

А также новая расширенная подписка iCloud+, позволяющая шифровать трафик на серверах компаний, чтобы нельзя было отследить, на какие сайты вы заходите. Стоить обновленная подписка будет столько же, сколько и текущие подписки iCloud.

Еще одна функция скрытие электронного адреса, а также встроенная поддержка HomeKit Secure Video.

Здоровье

Теперь телефон сможет заранее определить, если вы теряете равновесие или сознание, и предупредить вас об этом, а также предложить упражнения на подобные случаи. Также в приложении теперь можно будет хранить свои анализы.

Появится функция шеринга показателей здоровья с друзьями и настройка, какими именно данными вы хотите поделиться с родственниками.

Новая функция трендов-уведомлений обо всех изменениях в параметрах (режиме дня, количестве движения за день и т.д.), собираемых в приложении Здоровья.

watchOS 8

Обновленное приложение медитаций, возможность отслеживать изменения дыхания во сне и новый циферблат с 3D-портретами из фотографий, снятых на iPhone в обновленной системе watchOS 8. А также обновленное приложение для просмотра снимков, более похожее на таковое в смартфонах, и улучшенный набор текста с возможностью удаления слов и редактирования.

Появится нового стандарта умных устройств Matter, позволяющих сделать все устройства независимыми друг от друга.

Умный дом

Теперь Apple TV сможет открывать ссылки на сериалы и фильмы, которые присылают пользователю в сообщениях.

HomePod mini можно будет использовать как динамики для телевизора.

В Apple TV+ появятся профили пользователей с возможностью отслеживать прогресс по просмотру сериалов.

Обновление получит и приложение Дом для Apple Watch. Теперь с его помощью можно будет следить за глазком и еще быстрее управлять функциями дома. А камеры смогут присылать пользователю уведомления о полученной посылке.

macOS Monterey

MacOS, как и iOS, тоже получит поддержку SharePlay для совместного просмотра фильмов, а также обновленные Сообщения, Фокусировку и Заметки.

Новая функциональность Universal Control, позволяющая управлять iPad и Mac с помощью одних и тех же клавиатуры и мыши. Так, если iPad поставить рядом с MacBook, курсор сможет автоматически перейти на экран планшета. Это относится как к управлению мышью, так и тачпадом. Таким образом можно переносить файлы с устройства на устройство или, например, использовать iMac в качестве динамиков для iPhone.

Теперь пользователи смогут создавать быстрые сценарии для ежедневных задач и при помощи Shortcuts на Mac. Пока еще будет действовать и Automator, так что переход будет производиться постепенно, в течение нескольких лет.

Новый дизайн для Safari как на Mac, так и на iPad и iPhone. На Mac теперь строка браузера расположена прямо внутри вкладки. На iPhone они теперь находятся снизу и исчезают при чтении. Вкладки же, в свою очередь, можно собирать в группы и таким образом пересылать по почте.

Новинки для разработчиков

Представлены новые API для изоляции голоса, Focus и SharePlay, а также функции для сканирования 3D-объектов для последующего переноса в AR.

Язык Swift упростит создание параллельных процессов, сократив количество необходимого кода.

Теперь в App Store можно будет создавать разные страницы для приложений с возможностью подсветить разные особенности для разных типов пользователей. Так, можно будет подсветить события внутри приложений и игр и выносить их в форме виджетов на экран с приложениями.

Функциональность Xcode Cloud, позволяющая скомпилировать приложение прямо в облаке для дальнейшей работы над них сразу нескольких разработчиков и тем самым позволяющая сэкономить ресурсы железа. Когда приложение пройдет через все проверки, его автоматически разошлют тестировщикам. Эта функция станет доступна в 2022 году.

TestFlight появится на Mac, и его закрытый тест начнется уже на WWDC.


Публичные беты всех ОС будут доступны в июле, для разработчиков по окончании презентации. Релиз финальных версий ожидается осенью.

Подробнее..

MacOS 12 Monterey новая ОС от Apple

15.06.2021 00:15:33 | Автор: admin

7го июня компания Apple провела свою ежегодную конференцию для разработчиков - WWDC (Worldwide Developers Conference), на которой, помимо всего, была представлена новая версия macOS - Monterey. Спустя некоторое время стала доступна бета-версия, про которую, сегодня, и пойдет речь.

Внимание! Мы ни коем образом не рекомендуем Вам устанавливать и использовать как основные бета версии операционных систем. В случае, если Вы таки решились на установку, Вы делаете это на свой страх и риск! Автор статьи не несёт никакой ответственности за возможные последствия.

Какие модели Mac поддерживаются macOS Monterey?

Полный список поддерживаемых моделей, опубликованный Apple на своём же сайте

  • iMac конца 2015 года или новее

  • iMac Pro 2017 года или новее

  • MacBook Air начала 2015 года или новее

  • MacBook Pro начала 2015 года или новее

  • Mac Pro конца 2013 года или новее

  • Mac mini конца 2014 года или новее

  • MacBook (12 дюймов) начала 2016 года или новее

Нововведения

Тут стоило бы начать с того, что большинство представленных на WWDC функций не будут работать на Mac с процессорами Intel. Скорее всего, это связано с тем, что в Mac на Intel отсутствует чип Neural Engine, выполняющий вычисления для машинного обучения. А вот в чём Apple реально огорчили, так это тем, что об этом банально не сказали на конференции.

Вот список всех нововведений, отсутствующих на Mac с Intel:

  • Функция Live Text, позволяющая взаимодействовать с текстом на фото.

  • Функция "Portait Mode" для FaceTime.

  • Text-to-speech для финского, датского, норвежского, шведского языка.

  • Interactive Glove в приложении Карты.

  • Непрерывная диктовка с клавиатуры.

  • "Прокачанные" карты Лондона, Сан-Франциско, Нью Йорка и Лос-Анджелеса.

Полный список нововведений можете прочитать тут (напомню, некоторые функции не работают на процессорах Intel)

Когда ждать релиз macOS Monterey?

Точная дата выхода релизной версии новой ОС неизвестна. Известно лишь то, что это будет осенью этого года.

В заключение

Безусловно, macOS Monterey уже имеет много полезных функций (чего стоит один Universal Control). Не исключено, что с новыми бета-версиями их количество может пополниться. Правда некоторые из них, как было описано выше, не работают на процессорах Intel, и вряд-ли когда-нибудь будут на них работать, Apple же нужно как-то продавать "маки" на M1, верно.

Пишите в комментах, что вы думаете о новой ОС от Apple. Также какие нововведения лично вы ожидали увидеть, но их так и не показали.

До скорого!

Подробнее..

Recovery mode macOS 12 Monterey новая ОС от Apple

15.06.2021 04:16:53 | Автор: admin

7го июня компания Apple провела свою ежегодную конференцию для разработчиков - WWDC (Worldwide Developers Conference), на которой, помимо всего, была представлена новая версия macOS - Monterey. Спустя некоторое время стала доступна бета-версия, про которую, сегодня, и пойдет речь.

Внимание! Мы ни коем образом не рекомендуем Вам устанавливать и использовать как основные бета версии операционных систем. В случае, если Вы таки решились на установку, Вы делаете это на свой страх и риск! Автор статьи не несёт никакой ответственности за возможные последствия.

Какие модели Mac поддерживаются macOS Monterey?

Полный список поддерживаемых моделей, опубликованный Apple на своём же сайте

  • iMac конца 2015 года или новее

  • iMac Pro 2017 года или новее

  • MacBook Air начала 2015 года или новее

  • MacBook Pro начала 2015 года или новее

  • Mac Pro конца 2013 года или новее

  • Mac mini конца 2014 года или новее

  • MacBook (12 дюймов) начала 2016 года или новее

Нововведения

Тут стоило бы начать с того, что большинство представленных на WWDC функций не будут работать на Mac с процессорами Intel. Скорее всего, это связано с тем, что в Mac на Intel отсутствует чип Neural Engine, выполняющий вычисления для машинного обучения. А вот в чём Apple реально огорчили, так это тем, что об этом банально не сказали на конференции.

Вот список всех нововведений, отсутствующих на Mac с Intel:

  • Функция Live Text, позволяющая взаимодействовать с текстом на фото.

  • Функция "Portait Mode" для FaceTime.

  • Text-to-speech для финского, датского, норвежского, шведского языка.

  • Interactive Glove в приложении Карты.

  • Непрерывная диктовка с клавиатуры.

  • "Прокачанные" карты Лондона, Сан-Франциско, Нью Йорка и Лос-Анджелеса.

Полный список нововведений можете прочитать тут (напомню, некоторые функции не работают на процессорах Intel)

Когда ждать релиз macOS Monterey?

Точная дата выхода релизной версии новой ОС неизвестна. Известно лишь то, что это будет осенью этого года.

В заключение

Безусловно, macOS Monterey уже имеет много полезных функций (чего стоит один Universal Control). Не исключено, что с новыми бета-версиями их количество может пополниться. Правда некоторые из них, как было описано выше, не работают на процессорах Intel, и вряд-ли когда-нибудь будут на них работать, Apple же нужно как-то продавать "маки" на M1, верно.

Пишите в комментах, что вы думаете о новой ОС от Apple. Также какие нововведения лично вы ожидали увидеть, но их так и не показали.

До скорого!

Подробнее..

Apple убивает TeamCity, Bitrise, Appcenter, Fastlane, Firebase, Sentry и иже с ними. Краткий обзор Xcode Cloud

10.06.2021 14:04:32 | Автор: admin

Заголовок конечно громковат, может не убивает, но уменьшит им доходы точно. Давайте кратко посмотрим что представила Apple на WWDC 2021, что такое Xcode Cloud?

Xcode Cloud - это сервис CI/CD, встроенный в Xcode и разработанный специально для разработчиков Apple. Он ускоряет разработку и доставку приложений, объединяя облачные инструменты, которые помогают создавать приложения, параллельно запускать автоматические тесты, доставлять приложения тестировщикам, а также просматривать отзывы пользователей и управлять ими.

Цикл разработки по мнению Apple заключается в этапах 1) Написать код 2) протестировать его 3) Интегрировать (в текущий) 4) Доставить до пользователя 5) Улучшить, и по новой. На то он и цикл. В принципе похоже на правду, так оно и есть.

Если вы хоть раз настраивали CI/CD для iOS приложений, вы знаете примерно какие там шаги, ничего сложного, но это может включать в себя использование нескольких сервисов, генерации сертификатов и тд и тп.

Теперь же Apple предлагает нам сделать это все не выходя из Xcode, давайте взглянем на процесс.

Для начала нам нужно настроить первый workflow, а потом уже который будет пробегать при PR/MR (pull request/merge request) на main/develop ветку в системе контроля версий.

I CI/CD

1) Жмем в новом Xcode при подключенном сервисе Xcode Cloud кнопку "создать workflow" и видим настройки

Name - название воркфлоу, Start condition когда запускать воркфлоу (например при изменении в main ветке), Environment - можно выбрать стабильную версию Xcode или новую бета версию, Actions - что собственно надо сделать, обычно выполнить archive и опубликовать например в TestFlight, после прогонки тестов, Post-Actions - что сделать после того как воркфлоу пройден, например написать в slack/telegram канал об этом событии

2) Выбираем репозиторий где хранится наш код

3) Выбираем с какой ветки собрать билд (при первой настройке)

Собственно готово, теперь можем посмотреть как выглядит в Xcode место где можно управлять сборками, запускать их, пересобирать и тд

Давайте теперь посмотрим как выглядит управлени воркфлоу (выше показан путь настройки первой сборки)

1) Выбираем "управление воркфлоу"

2) Выбираем настройки (например при pull/merge request что-то выполнять)

3) Выбираем какие тесты мы хотим прогнать в воркфлоу (UI или Unit тесты), я так понимаю речь именно про нативные тесты, про Appium и тд, пока ничего не известно.

4) И выбираем отправить сообщение в Slack после того как воркфлоу пройден

5) Готово

II Тесты

1) Давайте посмотрим как выглядит интерфейс работы с тестами, мы видим тут тесты которые пройдены при сборке а также устройства на которых они прогонялись

2) Посмотрим какие конкретно тесты прогнались на iPad Air, видим что тест кейс с Light mode, портретный режим, с Английским языком, далее видим какие конкретно тесты пройдены

3) Ну и совсем чудеса, можно смотреть скриншоты пройденных тестов

4) Можно также посмотреть какой тест упал, можно также пометить тест как Flaky (Флаки тест или другими словами тест неактуальный, который надо либо удалить либо переписать), для этого используется XCTExpectFailure (что в переводе логично видно по названию метода ожидаемый фейл)

Удобно.

III - Работа с системой контроля версий (и переписка прямо в коде в Xcode)

1) Изменения теперь видно еще нагляднее (привет всем кто пользуется визуальными штуками, а не через консоль при работе с git). Сверху мы видим наши локальные изменения (которые мы накодили) а снизу "висящие" pr/mr реквесты, которые можно посмотреть, и дать свой комментарий или approve (одобрение на слияние кода)

2) Даже видно какой тест план для этой фичи, которая просится в главную ветку

3) Переписка,комменты прямо в Xcode при pr/mr (а не на веб мордах gitlab/github/bitbucket и тд)

В общем очень круто и удобно

IV - Улучшения (Crashes/Сбои/Ошибки)

1) Все краши/сбои теперь видно прямо в Xcode (а не в веб морде Firebase или Sentry), код приходит сразу символизированный (symbolized log), то есть человекопонятный с указанием что и как произошло

2) А тестер (возможно и пользователь) может оставить комментарий при краше который вы сможете прочитать (и даже ответить!)

3) Ну и самое интересное вы сможете кликнуть открыть место краша в проекте

4) И вас за ручку проведут к вашему куску кода который натворил зло

Послесловие

Плюс ко всему это обещает все генерить сертификаты которые нужно автоматически, обновлять провижн (provision) файл тоже автоматически, судя по всему даже UDID теперь не надо будет собирать с инженеров по тестированию и заинтересованных менеджеров которые хотят смотреть на билд.

В общем как по мне сервис выглядит очень интересно, но пока недоступен для всех. Понятно что видимо он еще в стадии разработки, но как все задумывается, это выглядит круто, и очень упростит разработку для iOS.

Можете подать заявку на бета-тест здесь https://developer.apple.com/xcode-cloud/

Сколько он будет стоить пока тоже неизвестно.

И пока непонятно что с Android потому что обычно сервисы CI/CD используют сразу для двух платформ, так как приложения обычно тоже для двух платформ разрабатывают. Но может быть когда нибудь приложения для Android можно будет писать и в Xcode))

Изображение и информацию брал из видеосессий WWDC 2021, кому интересно как это выглядит вот видео про Xcode Cloud https://developer.apple.com/videos/play/wwdc2021/102/

Подробнее..

Процесс загрузки iPhone. Часть 1 Boot ROM

10.05.2021 18:20:09 | Автор: admin

Здравствуйте, коллеги.

Мне показалось интересным поделиться ссообществом информацией овнутреннем устройстве техники Apple, так как статей наэту тему крайне мало. Начать ярешил сiPhone. Поэтому предлагаю вам вместе сомной попробовать разобраться вработе этого загадочного девайса.

Япопытаюсь ориентироваться насамые последние модели. Буду рад, если ваши комментарии укажут наошибки ипомогут нам всем лучше понять, как работают устройства, которые нас окружают.

Введение

Незнаю, удивит это кого-нибудь или нет, нозапуск iPhone мало чем отличается отпроцесса запуска IBM-PC-совместимого компьютера ввиде системного блока под столом, окотором написано уже достаточно много. Наверное поэтому так мало статей наподобную тематику, относящихся кмобильным устройствам.

Если смотреть напроцесс запуска iPhone, как нацелостную картину, тоонпредставляет собой цепочку доверительных переходов отодной стадии загрузки кдругой, которая так иназывается Chain oftrust. Вобщем случае, впроцессе участвуют 3независимых программы: Boot ROM, iBoot иядро XNU (расположены впорядке выполнения). Передача управления отодного кдругому происходит после проверки подлинности того, кому управление следует передать. Каждый изних имеет криптографическую подпись Apple. Возникает резонный вопрос: как проверяется подлинность первого шага? Ответ: никак.

Самым первым получает управление Boot ROM. Онявляется неизменяемым компонентом системы, прошивается назаводе-изготовителе ибольше неменяется. Его невозможно обновить (вотличие отBIOS иUEFI). Следовательно, нет смысла проверять его подлинность. Поэтому онимеет соответствующий статус: Аппаратный корень доверия (Hardware root oftrust). Впамять Boot ROM вшивается публичный ключ корневого сертификата Apple (Apple Root certificate authority (CA) public key), спомощью которого проверяется подлинность iBoot. Всвою очередь iBoot проверяет своим ключом подлинность ядра XNU. Такая цепочка проверок позволяет запускать только доверенноеПО.

Chain of trustChain of trust

Поестественным причинам, слабым местом вэтой цепочке является код Boot ROM. Именно засчет уязвимостей вэтой части системы иневозможности еёобновить, удаётся обходить проверку подлинности ипроизводить Jailbreak (побег изтюрьмы). Поэтому разработчики Boot ROM стараются невключать внего лишний функционал. Тем самым сокращается вероятность возникновения ошибок вкоде, поскольку оностается минималистичным. Собранный образ имеет размер около 150Кбайт. Каждый этап отрабатывает независимо отдругих, позаранее известным адресам ивыполняет четко обозначенную задачу. Несмотря наэто прошивка Boot ROM иiBoot компилируются изодной кодовой базы. Поэтому имеют схожие подсистемы. Они делят между собой базовые драйверы устройств (AES, ANC, USB), примитивные абстракции (подсистема задач, куча), библиотеки (env, libc, image), средства отладки иплатформозависимый код (работа сSoC, MMU, NAND). Каждый последующий элемент цепочки является более сложной системой, чем предыдущий. Например iBoot уже поддерживает файловые системы, работу сизображениями, дисплей ит.д.

Для лучшего понимания описываемых компонентов приведу таблицу.

Задача

Проверка подписи

Известные аналоги

Место исполнения

1. Boot ROM

Найти загрузчик и передать ему управление

Нет

BIOS, UEFI, coreboot

SRAM

2. iBoot

Найти ОС и инициировать её загрузку

Да

GNU GRUB, Windows Bootmgr, efibootmgr

SDRAM

3. XNU

Обеспечить безопасный интерфейс к железу

Да

Linux, NT kernel, GNU Hurd

SDRAM

4. iOS

Выполнение пользовательских задач

Нет

Ubuntu, Windows, Android

SDRAM

Питание

При выключенном устройстве отсутствует подача питания нацентральный процессор. Однако критически важные компоненты системы обеспечиваются энергией постоянно (контроллеры беспроводного сетевого соединения невходят всписок важных, поэтому смартфон неможет передавать никаких, втом числе секретных, данных ввыключенном состоянии исоответственно отследить его невозможно). Одним изтаких компонентов является интегральная схема управления питанием (PMIC Power Management Integrated Circuit). Вкачестве источника питания для PMIC может служить аккумулятор сзарядом, внешний источник, соединенный разъемом Lightning, или беспроводное зарядное устройство (посредством электромагнитной индукции). Нодля успешной загрузки операционной системы требуется наличие заряда наисправном аккумуляторе. Хотя теоретически устройство может функционировать подпитывая себя исключительно внешними источниками. Кроме этого укаждого источника питания имеется свой отдельный контроллер, новконтексте этой статьи ихдостаточно лишь иметь ввиду.

Для подачи питания нацентральный процессор PMIC должен получить сигнал настарт процедуры Power-On. Подать такой сигнал можно двумя способами: подключив устройство квнешнему источнику питания или спомощью боковой кнопки (длинным нажатием). Рассмотрим более детально классический способ включения нажатием кнопки.

Исторически так сложилось, что для запуска портативных устройств используется длинное нажатие. Вероятно, это сделано для защиты отслучайного включения-выключения устройства. Вцелом, ничто немешает использовать короткое нажатие для достижения тойже цели. Можно вспомнить, что если попытаться науже работающем устройстве нажать боковую кнопку тем идругим способом, товрезультате мыполучим отклик насовершенно разные действия. Изэтого мыможем сделать вывод, что существует механизм, который обеспечивает такую возможность. Обычно втандеме сPMIC используется небольшой Side-Button контроллер, взадачи которого, среди прочего, входит: отличить метод нажатия накнопку (длинный откороткого). Контроллер кнопки может питаться оттогоже источника, что иPMIC или отсамого PMIC. Контроллер может быть выполнен ввиде D-триггера сасинхронным сбросом. Висходном состоянии наасинхронный вход сброса CLR поступает сигнал. Всвою очередь, наэтом входе установлена RC-цепь, реализующая постоянную времени задержки.

Приблизительная схема работы боковой кнопкиПриблизительная схема работы боковой кнопки

Простым нажатием кнопки мызамыкаем электрическую цепь триггера, инавыход CTLx подаётся результирующий сигнал по-умолчанию. Для подачи сигнала наинициализацию запуска устройства время удержания кнопки питания должно превышать время задержки асинхронного сброса. Вовремя удержания кнопки сигнал наCLR входе затухает, ипри очередном такте синхронизирующего сигнала CLK триггер меняет свое состояние, выдавая навыходе CTLx другое значение, сообщающее PMIC начать процедуру запуска устройства посредством подачи питания нацентральный процессор.

SoC и CPU

Массовое производство высокотехнологичных полупроводниковых устройств иподдержание самих фабрик поихизготовлению является довольно дорогой задачей. Поэтому вмире современи массовой популярности технологий, основанных наполупроводниковых устройствах, существует тенденция заключения контракта сфирмами, специализирующимися именно напроизводстве полупроводников, для которых такая контрактная работа иявляется бизнесом. Фабрики таких фирм-изготовителей чаще всего находятся встранах сотносительно дешевой рабочей силой. Поэтому для изготовления систем накристалле (System onaCrystal SoC) уApple заключен многолетний контракт сизготовителем полупроводниковых устройств изТайваня TSMC (Taiwan Semiconductor Manufacturing Corporation). Инженеры Apple проектируют, разрабатывают ипрограммируют устройства, тестируют ихиспользуя опытное производство. Затем составляется спецификация, покоторой компания-изготовитель должна будет произвести ипоставить оговоренное количество экземпляров. При этом, все права целиком иполностью принадлежат компании Apple.

SoC инкапсулирует всебя множество электронных элементов составляющих аппаратный фундамент устройства. Среди которых, непосредственно, центральный процессор, оперативная память, графический процессор, ИИ-ускоритель, различные периферийные устройства идругие. Имеется также исвой контроллер питания. При достижении стабильного уровня напряжения наконтроллере питания SoC запитываются внутренние компоненты. Практически каждый микропроцессор имеет специальное устройство для сброса текущих параметров иустановки ихвисходное состояние. Такое устройство называется генератор начального сброса (Power-on reset/ PoR generator). Восновные задачи этого генератора входят: ожидание стабилизации питания, старт тактовых генераторов исброс состояний регистров. PoR генератор продолжает держать процессор врежиме сброса некоторое непродолжительное время, которое заранее известно.

Процедура Power-on resetПроцедура Power-on reset

Поскольку вэтом случае мыимеем дело сещё одним таймером, томожно предположить, что это также некая RC-цепь стриггером. Подостижении установленного порога напряжения наэтой цепи триггер меняет состояние (таким образом заканчивается таймаут сброса), PoR генератор становится неактивным, центральный процессор выходит изрежима сброса иначинает свою работу.

Центральный процессор должен начать работу свыполнения определенной программы. Для этого ему необходимо знать, где искать эту программу. Своей работой PoR генератор установил регистры взначения по-умолчанию (исходные значения). Врегистр счетчика команд (Program Counter/PC register) установился адрес первой инструкции впространстве физической памяти. Это значение называется вектором сброса (Reset vector). Конкретное значение вектора сброса определяется микроархитектурой процессора итеоретически может различаться среди разных поколений процессоров, новнашем случае это адрес 0100000000. Нааппаратном уровне определенные диапазоны адресов закреплены зафизическими устройствами хранения исоставляют вместе физическое адресное пространство (непутать свиртуальным адресным пространством, которое доступно изоперационной системы). Впроцессе дальнейшего запуска устройства диапазон адресов может быть переназначен впроизвольном порядке для более эффективной работы спамятью.

Следует заметить, что современные процессоры имеют несколько ядер, каждое изкоторых может независимо исполнять инструкции. Чтобы избежать неопределенности, какое изядер должно начать выполнение первой инструкции, производитель нааппаратном уровне выделяет основное ядро (primary core), которое ибудет производить загрузку. Вдальнейшем остальные ядра подключаются кработе программно.

Обычно вектор сброса указывает наячейку впостоянной памяти (Read only memory ROM). Она располагается внутри SoC. Эта память является энергонезависимой (сохраняет свое состояние после отключения питания) инеперезаписываемой (код программы прошивается туда единожды при производстве устройства). Записанная при производстве программа иявляется отправной точкой работы центрального процессора. Модуль постоянной памяти исама программа, записанная туда называются Boot ROM. Рассмотрим его задачи иработу более подробно.

Boot ROM

Как упоминалось ранее, Boot ROM это чип, включаемый внутрь SoC. Наэтапе изготовления нафабрике вего память записывается специальная программа-загрузчик. Загрузчик проектируется ипрограммируется вApple. Код написан наязыке Cс вызовами ассемблерных процедур, выполняющих машинно-зависимые команды процессора. Понулевому адресу впространстве памяти Boot ROM, скоторого иначнет выполнение процессор, располагается входная точка скомпилированной программы-загрузчика, аименно стандартная метка _start. Код, скоторого всё начинается, полностью состоит изассемблерных инструкций arm64. Онпроизводит следующие действия:

  1. Включается кэш второго уровня (L2 cache) и конфигурируется для использования в качестве временной оперативной памяти (объем 2 MiB).

  2. Поскольку диапазон рабочих адресов памяти статически определен, выполняется проверка текущего адреса. Если он неверен, то запускается цикл релокации на корректный адрес.

  3. Устанавливается виртуальный адрес функции main (начало кода на языке C) в регистр LR. Так что при выполнении инструкции ret управление перейдет в функцию main.

  4. Инициализируются указатели на начало стека. Задаются адреса для стека исключений, прерываний, данных.

  5. Создаются таблицы страниц и создаётся защита кучи от переполнения.

  6. Происходит копирование данных в оперативную память, а затем передача управления в функцию main.

Разметка оперативной памяти для Boot ROMРазметка оперативной памяти для Boot ROM

Практически весь код, который будет исполняться дальше, написан наязыкеC.

Сперва функция main запускает процедуру программной инициализации CPU.
Стоит отдельно оговорить, что процессор имеет несколько уровней привилегий для выполнения инструкций, называемых Exception Levels (EL): EL0, EL1, EL2, EL3. Цифра наконце обозначает уровень привилегий. Чем она выше тем выше уровень доступа. Внутри операционной системы пользователь имеет самый низкий уровень привилегий инеможет полностью управлять состоянием машины (вцелях собственнойже безопасности). Множество регистров икоманд недоступно. Однако поначалу, процессор начинает работу ссамого высокого уровня привилегий, поэтому загрузчик может успешно произвести начальную настройку оборудования.
Возвращаясь кпроцедуре программной инициализации CPU опишем еёосновные шаги.

  1. Конфигурация регистра безопасности (Secure Configuration Register - SCR): выставляются биты стандартных режимов работы для обработчика аварийного завершения и обработчиков аппаратных прерываний (FIQ и IRQ).

  2. Сброс кэшей процессора для инструкций и данных.

  3. Конфигурация регистра управления системой (System Control Register: SCTLR): включается бит проверки выравнивания стека, первичная настройка и активация блока управления памятью (Memory Management Unit - MMU, является частью CPU), отключение возможности выполнения кода из сегментов памяти, помеченных как доступные для записи (установка Execute Never / XN бита аналог NX-бита в x86 системах), активация кэша инструкций и кэша данных.

  4. Активируется сопроцессор для операций с плавающей точкой.

Управление возвращается вфункцию main, ипродолжается работа загрузчика.

Следующим шагом происходит программная настройка тактовых генераторов взначения по умолчанию:

  1. Устанавливается частота осциллятора контроллера питания.

  2. Инициализация подсистемы динамического масштабирования частоты и напряжения (DVFS - Dynamic voltage and frequency scaling).

  3. Подача питания на осцилляторы устройств, участвующих в загрузке BootROM.

  4. Подстановка характеристик частоты и напряжения для режима BootROM.

  5. Настройка подсистемы фазовой автоподстройки частоты (PLL - Phase Lock loop).

  6. Происходит включение сопроцессора защищенного анклава (SEP - Secure Enclave processor).

Сопроцессор защищенного анклава имеет свою собственную прошивку (sepOS), которая также проходит стадии безопасной загрузки ипроверки наподлинность. Нообэтом вдругой статье.

Далее следует инициализация шины внутренней памяти процессора (онаже кэш-память). Роль кэш памяти играет статическая памяти спроизвольным доступом (Static Random Access Memory SRAM). Непутать сдинамическим типом памяти, которую мыназываем оперативной. Она обладает большим объемом (Dynamic Random Access Memory DRAM). Различие втом, что ячейки SRAM основаны натриггерах, ауDRAM наконденсаторах. Память натриггерах требует большее количество транзисторов исоответственно занимает больше места наподложке. Всвою очередь, ячейки памяти наконденсаторах современем теряют заряд. Поэтому необходимо периодически производить холостую перезапись вфоновом режиме, что несколько влияет набыстроту взаимодействия. Таким образом SRAM используется вкачестве кэша (небольшой объем, быстрый доступ), аDRAM вкачестве основной памяти (больший объем, быстродействие вторично). НаSoC инициализируются линии контактов GPIO (General Purpose Input/Output) исоответствующий драйвер. Спомощью этих контактов следующим этапом, помимо прочего, проверяется состояние кнопок устройства, нажатие которых определяет необходимость принудительной загрузки вDFU режиме (Device Firmware Upgrade mode режим обновления прошивки устройства или восстановления). Описание работы этого режима заслуживает отдельной статьи, поэтому небудем касаться его сейчас.

Представляя собой минималистичную разновидность базовой системы ввода/вывода (BIOS), Boot ROM выделяет соответствующие абстракции: подсистема задач (аналог процессов) икуча (heap). Ипроизводит ихинициализацию. Подсистема задач позволяет выполнять инструкции внесколько потоков, хотя эта возможность неиспользуется вBoot ROM.

Идем дальше: инициализация аппаратного обеспечения, специфичного для конкретной SoC. Для последних моделей iPhone приблизительный список таков:

  1. Инициализация драйвера контроллера питания

  2. Инициализация драйвера системных часов

  3. Инициализация контроллера прерываний

  4. Старт таймеров

  5. Настройка контроллера питания и GPIO контактов для конкретной платформы

Настройка необходимого для старта оборудования выполнена, изапущены основные подсистемы. Затем выполняется программная проверка принудительной загрузки вDFU режиме. Наэтот раз таймер наотслеживание удержания соответствующих кнопок задается программно, после чего снимаются ихсостояния, ивзависимости отрезультата выполняется сброс системы напоследующую загрузку вDFU режиме, либо происходит выборка устройства, скоторого дальше производить загрузку.

Процесс запуска заходит вбесконечный цикл, вкотором можно задержаться неболее двух итераций. Если установлен DFU флаг, товкачестве устройства загрузки выбирается режим восстановления поUSB, иначе будет произведена загрузка сустройства по-умолчанию для конкретной платформы (внашем случае NAND флэш память).

if (dfu_enabled)   boot_fallback_step = -1;while (1) {  if (!get_boot_device(&device, &options))    break;  process_boot(device, options);  if (boot_fallback_step < 0)    continue;  boot_fallback_step++;}reset();

Устройство может впасть вбесконечный цикл перезагрузки, если невозможно определить конфигурацию выборки дальнейшего загрузчика (такое может произойти только если оборудование физически повреждено). При возникновении любой другой проблемы, устройство будет переведено врежим восстановления поUSB. Отсюда следует, что при исправном оборудовании невозможно сделать изустройства кирпич.

Apple использует особый формат файлов для хранения примитивных исполняемых файлов IMG4 (четвертая версия). Онпредставляет собой закодированные поDER схеме объекты стандарта ASN.1.

sequence [   0: string "IMG4"   1: payload   - IMG4 Payload, IM4P   2: [0] (constructed) [          manifest   - IMG4 Manifest, IM4M      ]]
sequence [    0: string "IM4P"    1: string type    - ibot, rdsk, sepi, ...    2: string description    - 'iBoot-6723.102.4'    3: octetstring    - the encrypted/raw data    4: octetstring    - containing DER encoded KBAG values (optional)        sequence [            sequence [                0: int: 01                1: octetstring: iv                2: octetstring: key            ]            sequence [                0: int: 02                1: octetstring: iv                2: octetstring: key            ]        ]]

Активируется утилита управления устройствами (UtilDM Utility Device Manager), инициализируются ANC (Abstract NAND Chip) драйвер ипроизводится сброс регистров контроллера флэш памяти. Затем дается команда NAND контроллеру перевести устройство врежим чтения, после чего изего памяти постранично считывается загрузчик iBoot. Изпрочитанных байтов генерируется экземпляр структуры файла образа IMG4.
Экземпляр содержит заголовки, служебную информацию иуказатель насам образ впамяти. Дальше поэтому указателю происходит обращение, ивыгрузка образа вбезопасный буфер. Там выполняется парсинг ивалидация образа. Изтекущих параметров системы собирается специальный объект окружение (environment) исопоставляется схарактеристиками образа. Проверяются заголовки, манифест, сравниваются хэши, происходит проверка подписи образа попубличному ключу Boot ROM (Apple Root CApublic key).

Если все прошло успешно, тонаступает заключительный этап работы Boot ROM. Создается функция-трамплин, позволяющая выполнить безусловный переход кначалу iBoot. Поскольку никакая информация недолжна быть передана наследующую стадию запуска устройства, иневозможно былобы вернуться назад, перед прыжком функции-трамплина сбрасываются значения регистров, отключается кэширование, прерывания, таймеры ит.д.
iBoot начнет свою работу практически счистого листа, словно онпервый вэтой цепочке.

Наэтом все. Вследующей части мыпопробуем разобраться как работает второй этап загрузки iPhone iBoot.

Спасибо за внимание.


Источники:

Apple: Boot process for iOS and iPad devices
Apple: Hardware security overview
Design & Reuse: Method for Booting ARM Based Multi-Core SoCs
Maxim integrated: Power-on reset and related supervisory functions
The iPhone wiki
ARM: Documentation
Jonathan Levin: MacOS and *OS internals
Wikipedia
Алиса Шевченко: iBoot address space
Harry Moulton: Inside XNU Series
Ilhan Raja: checkra1n
Texas Instruments: Push-Button Circuit
iFixit: iPhone 12 and 12 Pro Teardown
Исходные коды SecureROM и iBoot, утекшие в сеть в феврале 2018 года

Подробнее..

Перевод О рекрутинге в Apple

08.06.2021 12:19:01 | Автор: admin

Стив Джобс:

Лучшие люди руководят собой сами нет нужды управлять ими. Когда они знают, что нужно, они сами разбираются, как этого достичь ими не нужно управлять вообще. Что им нужно, так это общее видение и именно в этом заключается лидерство. Лидерство это наличие видения, способность понятно его сформулировать и достичь консенсуса в его отношении.

Нам нужны были люди, которые были безумно хороши в своем деле люди, которые не обязательно были опытными профессионалами, но у которых было понимание и увлеченностьновейшими технологиями и понимание того, что мы можем сделать с этими технологиями. Самое классное, что происходит это если у вас есть костяк из десяти отличных людей, то они сами начинают следить за тем, кого они впускают в свою группу. Поэтому я считаю, что самая важная функция человека вроде меня это рекрутинг.

Сотрудник Apple:

Мы переживали по поводу найма. Мы проводили собеседования. Я возвращался и просматривал некоторые собеседования снова. Они начинались в 9:00 или 10:00 утра и продолжались до обеда.Кандидат разговаривал со всеми в здании как минимум один или даже пару раз. Потом возвращался на еще один раунд собеседований и тогда мы собирались и разговаривали все вместе. Потом они заполняли анкету.

Другой сотрудник Apple:

Нет, они никогда не заполняли анкету. Решающим моментом собеседования по крайней мере, как я помню было когда мы, наконец, решали, что они нам нравятся настолько, чтобы показать им прототип Macintosh и мы усаживали их перед ним. Если они с какой-то скукой просто говорили, что это хороший компьютер, мы их не брали. Мы хотели, чтобы их глаза загорались, чтобы они по-настоящему оживали. Это давало нам понять, что они одни из нас.

Еще один сотрудник Apple:

И все просто жаждали работать. Не потому, что это была работа и ее было нужно делать, а потому, что мы верили, что это действительно изменит дело. И это приводило все в движение.

Другой сотрудник Apple:

Мы все хотели одного и того же. Мы не тратили время на споры о том, каким должен быть компьютер, потому что мы все знали, каким должен быть компьютер. И мы просто взяли и сделали его.

Стив Джобс:

В Apple у нас был период, когда мы думали: О, мы будем большой компанией, давайте наймем профессиональных менеджеров. Мы пошли и наняли профессиональных менеджеров. Это совсем не сработало. Большинство из них были болванами. Они умели управлять, но ничего не умели делать! Знаете, кто является лучшими менеджерами? Выдающиеся специалисты, которые никогда не хотели быть менеджерами, но решили, что должны ими стать, потому что никто другой не сможет справиться с этим так же хорошо, как они.

Закадровый голос:

Наняв двух профессиональных менеджеров со стороны и уволив их обоих, Джобс сделал ставку на Дебби Колман, члена команды Macintosh. Тридцати двух лет от роду, выпускница факультета английской литературы со степенью MBA Стэнфорда, Дебби была финансовым менеджером без опыта работы в производстве.

Дебби Колман:

Никто другой ни за что на свете не дал бы мне возможности руководить такой работой, я не строю иллюзий. Поставить на эту позицию человека вроде меня это невероятный, высокий риск как для меня в личном и профессиональном смысле, так и для Apple как компании. Мы ставили на многое. Мы ставили на то, что мои навыки организационной эффективности перекроют отсутствие знаний в области технологий, отсутствие опыта, отсутствие стажа работы в производстве. Так что это большой риск. И я являюсь лишь одним примером того, что можно сказать о каждом человеке в команде Mac почти до самого рядового сотрудника. Это место, где людям были даны невероятно уникальные возможности доказать, что они могут переписать историю.

Закадровый голос:

Внутри корпуса каждого Macintosh, незаметно для пользователя, стоят подписи всей команды. Так Apple подчеркивает, что их последняя инновация это продукт личностей, которые ее создали, а не корпорации.

Подробнее..

Причины массового обжорства SSD на Macbook с процессорами M1

21.05.2021 16:09:34 | Автор: admin

Мир сошел с ума. Где только не писали о проблеме повышенного аппетита на ресурс SSD-накопителей у новых моделей Macbook Air и Macbook Pro с процессорами M1. Тема обсуждалась на всех популярных технических форумах. И несмотря на массовость проблемы, все обсуждения сводились к тому, что Apple не считает это проблемой. А значит и проблемы нет. И в какую дичь люди готовы поверить для самоуспокоения вместо того, чтобы взглянуть в лицо фактам и выяснить причины стремительного выработки ресурса несъёмного SSD-накопителя.

Одни уважаемые люди говорили (писали), что протокол SMART слишком сложный, чтобы система просто взяла и спросила у контроллера SSD: "а сколько жить тебе осталось, диск?". Дескать, накопители производства Apple - штука не популярная. Где-то накосячили в драйвере. Вот он и выдаёт записанные на диск гигабайты за терабайты. А создатели софта для проверки статуса SMART люди недостаточно грамотные. Да и разные производители железа тоже за 20 лет не могут договориться о единых единицах измерения в параметрах состояния диска.

Любители заговоров выдвинули свою версию - "это всё козни проклятого Intel, уж мы то знаем откуда эти ноги растут". "Им не статус дисков проверять, а их самих проверять надо, этих продажных авторов мошеннических программ."

При всей массовости проявления обжорства SSD, простое как 2 копейки решение (полное отключение Spotlight) как будто скрывается от простых пользователей. Каждый пытается меня убедить, что расход ресурса SSD со скоростью записи 180Гб/час - это нормальное явление.

Кто-то думает, что если правда жизни на столько суровая, то Apple должна отозвать все компьютеры с данным диагнозом. Давайте смотреть фактам в глаза. Я не могу судить о том, как такие события могут происходить за бугром. Но, например, в Москве затраты на массовую смену единственной платы ноутбука будут просто колоссальными. У нас тут не завод Foxconn со 100000 китайцев. Здесь специалисты сервисных центров получают нормальную зарплату, далеко не 30000 руб. Плюс еще заплатить аренду помещения, налоги и прочие сборы. А сколько компьютеров сможет обслужить один специалист в день? в месяц? - Делайте выводы сами.

Мне кажется, Apple всё же тихо мирно пофиксит софтверный баг. А те пользователи, что уже израсходовали ресурс SSD так и останутся с тем же накопителем, который у них стоит. Может быть, в отдельных случаях плату поменяют по гарантии. Но, факт есть факт. Apple поставила новые рекорды продаж ноутбуков. И отзывать все ноутбуки просто не рационально.

Почему я решил, что проблема носит массовый характер? Во-первых, в нашей организации уже три ноутбука с процессором M1. Ноутбуки куплены (заказаны) в разное время с периодичностью в месяц. На всех трех ноутбуках диагноз положительный. Во-вторых, я переустановил разные версии MacOS минимум раз 10. Диагноз был положительным с настройками "по-умолчанию" вплоть до последней на момент публикации версии MacOS 11.2.3.

Рецепт лечения обжорства ресурса SSD

Как я и говорил, проблему можно купировать временным отключением индексирования Spotlight. Я использовал команду в терминале:

sudo mdutil -i off -a

Но эта команда решает проблему не полностью. В моём случае мне помогла команда:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

Но выполнять вторую команду стоит только с отключенной защитой CSR. Решение подойдёт далеко не всем. Обязательно найдутся и активные пользователи Spotlight и Siri. Отключать или не отключать - индивидуальный выбор каждого пользователя. Лично для меня целостность SSD важнее рабочего поиска по мета-данным.

Вместо заключения. Прошу прощения, что статья написана на скорую руку. Если нужны ссылки на разные обсуждения проблемы, по запросу я вставлю их публикацию. Заранее вангую тонны негодования маководов и технических асов в мою сторону. Все коллеги отговаривали меня писать о проблеме здесь. И я не знаю зачем я пишу эту публикацию сюда. Да и зачем вообще помогать людям? Ведь всем так нравится смотреть на мир через розовые очки.

Подробнее..

Перевод Apple превращается в ещё одну Microsoft

24.05.2021 14:14:07 | Автор: admin
image

Фанаты Apple продолжают рассуждать о том, что может стать новым прорывным продуктом компании. Что-то сравнимое с первым Mac, первым iPod, первым iPhone революционный продукт, который изменит отрасль и даст Apple мощный толчок вперёд. В конце концов, именно так Apple всегда вела эту игру. Именно таким мы привыкли видеть успех Apple.

Но я думаю, что дальше эта игра будет продолжаться иначе. Произойдёт нечто совершенно другое. Но чтобы понять, какой будет Apple будущего, нам нужно понять Apple прошлого и почему это прошлое не повлияет на будущее.

Что же сделал Стив Джобс?


Причиной успеха Apple всегда считали создание нового задающего тенденции продукта, преобразующего целую отрасль. Компания могла делать это в прошлом, потому что у неё был такой лидер-визионер, как Стив Джобс.

Люди часто не понимают, кем был Джобс. Будучи разработчиком ПО, я часто общался с людьми, имевшими чрезвычайно технический подход ко всему. Многие технологические гики никогда не понимали Стива Джобса. Для них он был всего лишь агрессивным чуваком, который занимался маркетингом. Большинство из них считало настоящим волшебником Стива Возняка. Невоспетым героем, благодаря которому поначалу творилась вся магия Стива Джобса, однако лавры достались одному лишь Джобсу. И несложно понять, почему они так считают. Они технари, поэтому идентифицируют себя с Возняком. Если ты разработчик или инженер, то считаешь, что именно ты решаешь все настоящие проблемы, а руководители да чем вообще они заняты?

Но Стив Джобс не был обычным менеджером или лидером. Я ненавижу заявления типа он был визионером! В подобных утверждениях так мало конкретики, что сложно понять, кто же такой визионер.

Давайте противопоставим Возняка Джобсу, чтобы понять, что же это значит. Возняк любил решать технические задачи, и был в этом настоящим волшебником. Даже сегодня люди удивляются тому, какое количество функций ему удавалось уместить в несколько чипов благодаря очень продуманной структуре. Для него это походило на головоломку. Ради развлечения Воз по вечерам придумывал сложные компьютерные архитектуры на полу своей спальни. Он ставил перед собой задачу делать архитектуры всё более продуманными и хитрыми. Похоже, он мог проделывать всё это даже мысленно.


Благодаря электронному гению Воза в продуманной архитектуре Apple I использовалось минимально возможное количество чипов для снижения затрат. В эпоху Apple I домашние компьютеры продавались как комплекты для сборки, а не как профессионально выглядящие корпуса.

Стив Джобс никогда не обладал подобным техническим интеллектом Воза. Но у него имелось нечто совершенно иное. Воз был гиком, способным рассуждать в таком ключе: Смотри, как мало килобайт у этой машины, и как я хитро перепрограммировал таблицы векторов прерываний! Воз был очаровательным парнем с мальчишеской любовью к технологиям, которая близка мне. Я знаю, что когда додумываюсь до какой-нибудь крутой технологии и показываю её своей жене, она спрашивает: Здорово, но для чего это нужно?

Однако Воз никогда не думал вне рамок гиковского мышления. Он думал о том, что волновало его самого и коллег-гиков. В противоположность ему, Стив Джобс смотрел на всё под совершенно иным углом зрения. Джобс всегда думал о глобальных последствиях технологий. О том, на что способна технология в руках обычных пользователей. Он думал категориями бизнеса и продуктов, а Воз в основном думал категориями электрических схем и ассемблерного кода.


Стив Джобс и Возняк.

Пока Воз создавал новые схемы, часто именно Джобс знакомил его с новыми технологиями и устройствами. Джобс всегда искал что-то новое. При создании Apple II Джобс настаивал на том, что компьютер должен быть совершенно беззвучным. Он хотел, чтобы люди могли сидеть в тишине и концентрироваться на работе с компьютером. Все компьютеры того времени имели шумный блок питания. Инженеров это не волновало, ведь всеми это воспринималось как должное. Об этом никогда не думал Воз. Но Стиву удалось найти чудаковатого типа, который смог спроектировать блок питания, почти не издававший шума, и эта разработка едва не разорила Apple в самом её начале.


38-ваттный блок питания Apple II был спроектирован Робом Холтом. Стив Джобс хотел, чтобы Холт разработал блок питания меньшего размера и ещё менее шумный, но на это у него не хватило денег.

Именно так часто работали Стив и Воз. Джобс всегда находился в поисках новых технологий и комплектующих, которые можно использовать. Он показывал всё это Возу, обладавшему достаточным техническим опытом, чтобы заставить их работать или решить, полезны ли они.

Джобс настоял на том, чтобы Apple II имел красивый и профессионально выглядящий корпус. В то время домашние компьютеры продавались как комплекты для сборки, наподобие современных Arduino. У них не было собственных корпусов. Это были электронные гаджеты для гиков. Джобс хотел создать нечто, что обычный человек может принести домой и поставить на стол. Уже готовый собранный профессионально выглядящий домашний компьютер.

И это характерно для всего, чем занимался Стив Джобс. Он всегда был в поисках чего-то нового. И в отличие от большинства людей, он понимал, когда обнаруживал нужное. Xerox PARC разработала множество революционных идей, например, первые практичные GUI, объектно-ориентированное программирование, сети и многие другие вещи, поэтому Стив Джобс решил посетить компанию.

Недостаточно просто умных инженеров и компетентных руководителей


Большинство людей не понимает одного: они считают, что главное это технические гении, работающие в своих лабораториях над созданием великолепных продуктов. Но на самом деле, замечательные инженеры постоянно создают великолепные продукты. На самом деле, недостатка в умных идеях нет.


В Xerox PARC были разработаны современные GUI, а также быстрая разработка приложений при помощи современных интегрированных сред разработки (Integrated Development Environments, IDE) на основе Smalltalk. Однако руководство Xerox не смогло разглядеть их потенциала.

Серьёзная проблема заключается в огромном дисбалансе между инженерами и дизайнерами, создающими отличные продукты, и менеджерами, которые должны понять их потенциал. Xerox творила в своих лабораториях одну потенциальную революцию за другой, однако руководство оказалось неспособным распознать их потенциал. То, чего не смогло понять руководство Xerox, несмотря на годы, потраченные на исследовательские лаборатории, за считанные минуты визита осознал Стив Джобс.


System 1 на первом Mac. Первая коммерческая операционная система с GUI.

На основании того, что он увидел в течение часового визита в Xerox PARC, Джобс, по сути, создал две компании. Mac был создан благодаря тому, что он увидел первые GUI. Компания NeXT, которую он основал позже, занималась быстрой разработкой при помощи объектно-ориентированного программирования, тоже впервые увиденного им в Xerox PARC.


Операционная система NeXTSTEP, разработанная в NeXT под руководством Стива Джобса, совершила революцию в разработке ПО, позволив быстро создавать GUI-приложения при помощи перетаскивания многократно используемых объектов.

Тот же принцип был использован когда Стив Джобс вернулся в Apple после своего изгнания. В то время компания терпела неудачи, но по-прежнему обладала блестящими инженерами и дизайнерами, наподобие Джонатана Айва, разработавшего линейку успешных Mac. В частности, он создал разноцветные iMac, спасшие и возродившие Apple.


Простите, никакого бежевого. Разноцветные iMac, спасшие Apple, были придуманы не под руководством Стива Джобса, но именно Джобс понял их потенциал и привлекательность. В то время каждый компьютер был бежевого цвета.

Ирония заключается в том, что эти разноцветные iMac изначально создавались не по указанию Стива Джобса. Айв уже их спроектировал. Проблема Apple была такой же, как у Xerox: руководство не могло увидеть потенциал или великолепие продуктов, созданных его собственными сотрудниками. Всё, что видело руководство это разноцветные материалы и сложные формы, повышающие стоимость компьютеров. С их крохоборской точки зрения они выбрасывали деньги, которые можно было потратить на увеличение памяти или более объёмный жёсткий диск.

В отличие от них, Стив Джобс моментально увидел потенциал компьютера, точно так же, как это случилось в Xerox. Эти маки были не просто красивыми вещицами. Как и все продукты Apple, они стали сочетанием красивой эстетики и практичности. Взглянем на нечто простое, например, на адаптер питания Apple. Он спроектирован так, чтобы его можно было поместить рядом с другими адаптерами, потому что тонкий, а не широкий. У него есть части, на которые можно намотать кабель. iMac отличался почти таким же практичным подходом, например, имел ручку для простоты переноски. Именно благодаря этому вниманию к мелким деталям люди любят свои Mac. Стив Джобс обладал способностью установить с пользователями эмоциональную связь. Он мог видеть, что их восхищает и привлекает, даже если они сами пока этого не знали.

Джобс заставлял работников выкладываться по полной


Стоит уточнить, что это не единственная роль, которую играл Джобс. Он знал, как заставить своих сотрудников работать лучше. Да, он был сволочью. Я много читал о Джобсе и из прочитанного можно сказать, что к нему сложно относиться с симпатией. Но не всё было таким чёрно-белым. Кто-то ненавидел Стива Джобса, но другие любили его, несмотря на все недостатки. Многие говорили, что под его руководством они создавали свои лучшие работы. Многое из этого было связано с тем, что Стив Джобс всегда подвергал сомнению создаваемое людьми и вносил свои предложения. Люди ошибочно считали Стива Джобса ещё одним продажником, маркетинговым гением или руководителем. Но это было не так.

Джобс, в отличие от большинства CEO, проводил почти всё своё время в лаборатории разработки продуктов, где работал над идеями. Может, он и не сидел в программе CAD/CAM и не рисовал сам линии нового Mac или iPhone, но он следил за каждым этапом работы, давал свои отзывы и вносил предложения. Его волновала каждая малейшая деталь. Если посмотреть на имена владельцев патентов на блок питания Apple, то вы найдёте там и имя Стива Джобса. Многие ли CEO компаний-разработчиков ПК тратили недели на участие в проектировании блока питания?

Хотя я не могу сравниться с уровнем таланта тех, кто проделал замечательную работу в Apple, мне довелось поработать с начальниками, которые напоминали мне Стива Джобса и дали представление о том, каким он мог быть. Много лет назад у меня был начальник, которого я почти ненавидел. Он всегда был чрезвычайно требовательным и всегда занимался микроменеджментом. Его могло сорвать с катушек, если что-то шло не так, как задумал он. Во многих смыслах он казался самым худшим руководителем.

Однако сегодня я должен признать, что мне по-настоящему нравился этот человек, несмотря на все его недостатки и вспышки эмоций. Почему? Потому что хотя он мог и быть гадом, он становился невероятно вдохновлённым и признательным, когда у нас получалось сделать что-то хорошее. Когда это происходило, мы действительно ощущали, что совершили прорыв. Это оправдывало неудобство работы с ним. И наоборот, я имел дело с менеджерами, никогда не терявшими самообладания, но работа с ними при этом совершенно выматывала. Почему? Потому что они никогда не могли сказать ничего положительного. Потому что они обращали внимание только на отрицательное и у них полностью отсутствовала способность чем-то восхищаться. Именно это я понял о Стиве. Он был тем, кого может по-настоящему вдохновить на техническое решение, и я уверен, что сотрудники, придумавшие это решение, ощущали себя при этом на вершине мира. Недостаточно просто говорить сотрудникам, что они хорошо работают. Это должно быть искренне. Ничто не раздражает больше, чем начальник, который говорит отличная работа вне зависимости от того, что ты делаешь, даже если ты знаешь, что сделал ерунду. Это кажется поверхностным и манипулятивным.

Хорошо, но как это связано с Microsoft?


Я понимаю, что мой рассказ слишком отклонился от темы и превратился в подробное описание характера Стива Джобса. В конце концов, история ведь о том, почему Apple может стать ещё одной Microsoft. Что конкретно я под этим подразумеваю?

В 90-х Microsoft имела гораздо больший успех, чем Apple, несмотря на отсутствие у неё навыков Стива Джобса по предсказанию будущего и созданию потрясающих устройств. Если Apple была Александром Македонским, то Microsoft мне больше напоминает римлян.

Александр Македонский был военным гением, за короткое время создавшим обширную империю, которая вскоре рухнула. Римляне же, напротив, проиграли множество битв. Их прогресс был связан не с гениями-полководцами, а со способностью перегруппироваться после поражения, научиться на своих неудачах, собрать волю в кулак и попробовать ещё раз. На протяжении своей истории Microsoft демонстрировала подобную решимость.


Microsoft Windows 1.0. Не очень популярная и не особо успешная.

Многие продукты Microsoft, в том числе и Windows, обладали глубинными недостатками и оказывались довольно плохими при первом релизе. Все слышали о первом Mac, но почти никто не знает о Windows 1.0. Следующая версия Windows была ненамного лучше, но Microsoft продолжал работу до выхода Windows 3.11, наконец-то давшей компании реальный успех.


Microsoft Windows 3.11, ставшая большим успехом для Microsoft. Это первая Windows, с которой я работал. До неё большинство из нас работало с MS DOS и командной строкой.

Эта упорная решимость сочеталась в компании с безжалостной деловой жилкой и стратегическим мышлением. Она знала, как загнать в угол рынок, бороться с конкурентами, обслуживать пользователей и т.д. Это напоминает умение римлян строить крепкую империю. Пусть они проиграли множество битв, зато они знали, как одерживать победы и укреплять завоёванное. Александр Македонский не оставил подобного наследия. Он не создал прочную империю. Он не понимал, как строить империю.

В Apple Александра сменил римлянин


Если Стив Джобс был Александром Македонским, то Тима Кука мы, вероятно, можем считать новым римским лидером Apple. Пусть римлянам не хватало военного гения Александра, как у Тима Кука не хватает продуктового и дизайнерского гения Стива Джобса, однако он, подобно римлянам, понимает, как строить империю. Он понимает, как создавать эффективные устойчивые организации.

Возможно, в будущем мы больше никогда не увидим ту искру визионерства, которая ознаменовала годы руководства Стива Джобса, однако можем увидеть то же стратегическое мышление и тщательное планирование, которое создало компанию Microsoft. Apple создаёт стратегические преимущества благодаря своим цепочкам поставок и рыночным мускулам. Компания пользуется своей масштабностью, чтобы создавать кремниевые чипы, чего не могут позволить себе её конкуренты. Тим Кук безжалостно эксплуатирует масштабы Apple и вертикальную интеграцию.

Как будет выглядеть успех Apple в будущем


Следовательно, нового крупного прорыва от Apple мы не дождёмся. Вместо этого будет стратегическая реализация и совершенствование. Будущее будет связано с постепенным стратегическим обеспечением первенства благодаря процессорам Apple. Благодаря более длительной работе от аккумулятора и более высокой производительности на потраченный доллар по сравнению с конкурентами, компания может продавать превосходные продукты в премиальном сегменте, где и находится основная прибыль.

Apple имеет малую долю от общего рынка компьютеров, но уже получает примерно 60% от всех доходов. И похоже, компания вполне готова забрать ещё большую долю доходов рынка. Благодаря более дешёвым высокопроизводительным чипам с низким энергопотреблением компании, возможно, удастся выдавить ещё больше конкурентов из премиального сегмента, таким образом заставив производителей ПК сражаться насмерть на рынке с низкой маржей и высокими объёмами продаж.

Хотим ли мы такого будущего?


Признаюсь, я предпочёл бы, чтобы в будущем возникали потрясающие новые продукты. Однако желания и реальность две разные вещи. Тим Кук не собирается совершать революцию в Apple. Вместо этого он собирается камень за камнем, одно стратегическое решение за другим, строить империю.

Но на самом ли деле всё так плохо? Может быть, Тим Кук не так ярок, как Стив Джобс, но он мягче. Нам нужно и это. Такое будущее Apple имеет свои преимущества. Во многом они совпадают с теми преимуществами, которые своим пользователям даёт Microsoft: всемирное признание и поддержка.

Молодые не знают, каково было пользователю Apple лет двадцать назад. Это значило быть изгоем. Невозможно было подключаться к сетям. Браузер не мог отображать все страницы. Ты всегда ощущал себя в мире компьютеров гражданином второго сорта, которого не замечают и не воспринимают всерьёз. Сегодня владельцы Mac это граждане первого класса. Они есть во всех корпорациях. Двадцать лет назад такое трудно было представить. Теперь я не завидую ассортименту программ в Windows. Наоборот! Я чувствую, что сегодня на Mac у меня есть такой богатый выбор ПО, что под Windows я бы ощущал себя потерянным.

Именно это Microsoft дал пользователям Windows в 90-х. Мир вращался вокруг них и обслуживал их. Вот что нам даст Apple Тима Кука: Apple, который имеет вес. Теперь выбор Mac не какое-то странное, а вполне нормальное решение. Если вы создадите компанию, то есть высокая вероятность, что вам нужно будет подумать над выбором: Mac или PC.

Это значит, что когда выпускают новую крутую игру, то она может быть совместима и с Mac. Не знаю, как вы, а я с удовольствием приму это скучное будущее Mac, в котором у меня будут все те преимущества, которые раньше были свойственны Windows и PC. А как насчёт такого: пользователь может получить те же спецификации на Mac, что и на PC, не по премиальной цене? Именно это может предоставить нам Apple Silicon. А возможно, и уже предоставил.



На правах рекламы


Воплощайте любые идеи и проекты с помощью наших VDS с мгновенной активацией на Linux или Windows. Сервер готов к работе через минуту после оплаты!

Присоединяйтесь к нашему чату в Telegram.

Подробнее..

Перевод Перерасти ПО код это современное электричество

21.06.2021 12:17:59 | Автор: admin
image

Десять лет назад Марк Андриссен написал для Wall Street Journal статью под названием "Софт пожирает мир", в которой говорит о фундаментальном сдвиге роли, которую ПО играет в экономике. В прошлом IBM, Oracle или Microsoft продавали технологии другим компаниям как инструмент. Они продавали компьютеры и ПО GE, P&G и Citibank. Теперь есть поколение компаний, которые и создают ПО, и самостоятельно используют его, чтобы войти на рынок другой отрасли, а часто и изменить его. Uber и Airbnb не продают ПО компаниям, владеющим такси или отелями, Instacart не продаёт ПО компаниям, занимающимся продуктами питания, а Transferwise не продаёт ПО банкам.

Полезно будет сравнить это с электричеством или автомобилями. Walmart был построен на основе грузовых перевозок и шоссе (и компьютеров), но Walmart это ретейлер, а не компания грузоперевозок: она использовала грузовики, чтобы изменить мир розничных продаж. Теперь люди делают то же самое с ПО.

Но также любопытно будет взглянуть на отдельные отрасли, которые уже были подорваны программным обеспечением, и подумать над тем, что случилось дальше. Первой, очевидно, стала отрасль звукозаписей. Технологии значительно повлияли на музыкальный бизнес, но сегодня никто в сфере технологий об этом особо не задумывается. 15 или 20 лет назад музыка была способом продажи устройств и удержания людей в экосистеме, но возникновение сервисов стриминга по подписке означало, что музыка больше не является сильным стратегическим оружием ты не потеряешь свою библиотеку музыки, если перейдёшь с iPhone на Android, или даже со Spotify на Apple Music. В то же время, абсолютный размер рынка стал очень мал по сравнению с тем, чем стала сфера технологий в прошлом году общие доходы отрасли звукозаписи составили менее 20 миллиардов долларов (половина от максимума, который был в 2000 году), а доходы Apple составили 215 миллиардов. Больше никого не заботит музыка.

Нечто подобное произошло и с книгами. Amazon занимает половину рынка, электронные книги стали реальным бизнесом (хоть и остались нишевыми), а самиздат стал вертикальным, но я подозреваю, что если бы у Apple был выбор, она не стала бы снова заниматься электронными книгами. Как и в случае с музыкой, здесь нет возможности стратегического давления: общие доходы рынка книг США в прошлом году составили около 25 миллиардов, а доходы Amazon в США 260 миллиардов. Никого в сфере технологий не интересуют онлайн-продажи книг или электронные книги.

Однако в более фундаментальном смысле, с точки зрения музыки и книг, большинство споров и вопросов относятся к индустрии музыки и книг, а не к технологиям или ПО. Spotify судится с Apple по поводу правил комиссий App Store, но во всём остальном все вопросы Spotify связаны с музыкой. Почему исполнители не зарабатывают больше денег на стриминге? Спрашивайте у лейблов. Почему Интернет не убил лейблы или издателей? Спрашивайте у любителей музыки и книг.

Думаю, то же самое происходит сегодня с телевидением и кинематографом. Технологии (а теперь и локдаун) разрушили старую модель и изменили все правила, но вопросы о новых моделях это вопросы о телевидении и кино, а не о программном обеспечении. Что произойдёт с гарантированной долей Тома Круза от выручки фильма, если он стал частью пакета, используемого для продажи подписок на стриминговый сервис? Каков срок жизни шоу на Netflix, кому переходят права на спортивные трансляции, и как будут устроены периоды релизов, когда снова откроются кинотеатры? Не спрашивайте меня всё это вопросы для Лос-Анджелеса, а не для Кремниевой долины. Netflix использовал технологии в качестве рычага для попадания на телевизионный рынок, но, повторюсь, все вопросы о его будущем это вопросы о телевидении. Тем временем, фильмы и телевидение (что бы это сегодня не значило), как и музыка с книгами, имеют ограниченное стратегическое значение для крупных технологических платформ Amazon использует их как мотиватор к покупке подписок Prime, а Apple только как маркетинговый инструмент. Контент больше не главное.

Сегодня телевидение интересно технологическим компаниям не из-за контента или из-за возможности продавать устройства, а потому, что на кону 65 миллиардов долларов, потраченных в США на рекламу, и, в более широком смысле, потому, что бывшие ранее отдельными рынками для рекламы, маркетинга, розничной аренды, доставки и многого другого, теперь становятся существенным общим рынком стоимостью 7-800 миллиардов долларов. Само телевидение интересно не очень многим.

Есть старая шутка о том, что консультанты похожи на чаек они прилетают, наводят шум и хаос, а потом улетают. Примерно то же самое технологии сделали с медиа-индустриями поменяли всё, а потом ушли. Теперь то же происходит с розницей всё то, что технологии, ПО и Интернет сделали с медиа, повторяется и с ретейлерами. Всё это довольно большой бизнес 20 триллионов долларов.

Но после того, как технологии всё изменят, вопросы снова будут касаться в основном розницы, а не технологий. Какой это продукт, как ты о нём узнал, и как его получить? Это вопросы ретейла, бренда и маркетинга. Разумеется, ретейлер, продающий через новый онлайн-канал, должен быть в этом хорош, но тогда он должен быть хорош и в физическом канале. Наличие большого онлайн-опыта это условие для входа на рынок, но благодаря инструментам наподобие Shopify и Stripe он всё больше становится просто слоем в стеке. Однако правильной реализации онлайна недостаточно если бы Netflix показывал бы заново Друзей или Скорую помощь, то дело было бы не в качестве приложения, а Hulu не так популярен, как Netflix, не из-за качества сжатия. Правильная реализация онлайна и необходима, и сложна, но ваш успех будет определяться вопросами ретейла, телевидения или музыки.

На самом деле, то же относится и к Tesla: автономность это определённо вопрос ПО, но с электроприводом не всё так очевидно. Tesla бык в том, что она программная компания, и медведь в том, что автомобильная компания.

В начале статьи я упомянул Walmart как компанию, изменившую лицо рынка ретейла, но она также изменила ретейл благодаря пониманию того, что автомобилями уже владеют массы людей. Вероятно, автомобилестроение создало больше миллионеров в ретейле и недвижимости, чем в автомобильной отрасли производство автомобилей было просто одной из отраслей, но массовое владение автомобилями изменило всё остальное. Часто я думаю, что это хорошая точка зрения на современное состояние технологий: 80% взрослого населения мира имеет сегодня смартфон, что же мы можем с этим сделать? Именно это и означает софт пожирает мир. Но можно ещё и сказать, что Walmart не был создан людьми из автомобильной отрасли, из Детройта. Он был создан ретейлерами. Сэм Уолтон родился на десять лет позже появления Model T, а сегодняшние выпускники MBA родились в год выпуска Netscape. В какой-то момент в этой обстановке будет расти каждый, и все компании будут софтверными, а важные вопросы будут связаны не с ПО.



На правах рекламы


Облачный хостинг для размещения сайтов от маленького блога на Wordpress до серьёзных проектов и порталов с миллионной аудиторией. Создайте собственный тарифный план в пару кликов, максимальная конфигурация 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe!

Подписывайтесь на наш чат в Telegram.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru