- Всего лишь меняем модель эмулятора Android устройства
- Пролог
- Дисклеймер
- Зачем это нужно?
- Достаем build.prop
- Редактируем build.prop
- Запускаем эмулятор с доступом на перезапись системных файлов
- Активируем доступ на перезапись системных файлов
- Редактируем правильный build.prop
- Подводим итоги
- Лучшие приложения для 3D-моделирования на планшетах iPad и Android
- Shapr3D: лучший параметрический инструмент
- Sculptura: великолепный инструмент для 3d скульптинга
- Putty 3D: Бюджетная скульптура
- uMake: Модный выбор
- AutoCAD: исключительный
- Luna Display: другой подход
Всего лишь меняем модель эмулятора Android устройства
Пролог
Казалось бы, на первый взгляд весьма простая задача. Некоторые читатели могли еще в те бородатые времена лазить по всяким 4пда, рутить свой сенсорный самсунг, менять содержимое файла build.prop и показывать наивным ламерам свой iPhone 15+ Max Pro. Однако, как оказалось, и как оно часто бывает, не все так просто и здесь есть свои подводные камни. Статья призвана помочь простым работягам избежать все кочки да ямы на пути к своей цели!
Дисклеймер
Сразу предупрежу, что люблю писать подобные статьи довольно подробно, не ради объема и многобукав, а ради максимального погружения в проблему и способ ее решения. Обратите внимание, что я работаю на macOS, поэтому все команды в терминале будут ориентированы под данную ОС. Также, следует отметить, что проворачиваю все это для API 30, то есть для самого последнего на момент написания статьи. Как говорят интернеты, сложности по этой теме начались с API 29.
Зачем это нужно?
Предполагаю, что у вас, дорогой читатель, есть на это своя веская причина, иначе не стали бы вы этим заниматься. Наиболее вероятно, что у вас, как и у меня есть программная проверка на модель устройства с которого запущено приложение, примерно как здесь. К слову, таким образом можно будет проверять результат наших трудов. Второй же, и более простой способ проверки модели эмулятора будет через настройки девайса в разделе сведений об устройстве:
Ради контекста вкратце расскажу зачем это понадобилось мне. Я получил .apk с багом где-то внутри приложения. Однако пройти дальше первого экрана в этом приложении я не смог. Дело в том, что при запуске, с сервера приходит список разрешенных для запуска устройств и ни мой народный Ксяоми, ни мой эмулятор в этот список не входит. Вот и додумался поменять имя модели устройства на одно из разрешенных. Рутить свой личный телефон не хотелось, поэтому решил шаманить с эмулятором.
Экран не пустивший меня дальше
Достаем build.prop
Как уже говорилось в начале статьи, за имя производителя и модель устройства отвечает системный файл build.prop, который находится в корне устройства в папке system/. Однако при попытке просмотреть его, не говоря уже о редактировании, мы получим отказ в доступе:
Для решения этой проблемы необходимо в терминале обратиться к adb и запросить root права следующей командой: adb root . И вот и первый подводный камень, а именно вывод следующего сообщения: adbd cannot run as root in production builds . Это из-за того что при создании эмулятора мы выбрали вариант с установленными Google сервисами:
Простое решение — создать эмулятор без установленных Google сервисов, после чего повторить команду adb root . После чего в консоли должно появиться сообщение: restarting adbd as root что говорит об успешном проведении операции. Естественно если с самого начала у вас был эмулятор без Google сервисов, то скорее всего с adb root и выше описанной проблемой вы не столкнулись.
Отлично, теперь мы видим содержимое файла build.prop:
Редактируем build.prop
Сохраним файл build.prop в любое удобное место для дальнейшего редактирования выделенной красным области на скриншоте выше. Я сохранил прямо на рабочий стол:
Вносим необходимые изменения. Просмотрев логи запросов и ответов предоставленного мне .apk я нашел приходящий с сервера список разрешенных устройств. То есть, для моих целей нужно поменять два значения на PIXEL 3A XL (как вы поняли, здесь вы можете указывать необходимую именно вам модель):
Сохраняем изменения и заливаем файл обратно на эмулятор. Делается это при помощи команды adb push (кстати, скачать файл с эмулятора можно при помощи adb pull если у вас вдруг аллергия на GUI).
Вводим команду в терминал: adb push build.prop system/
И получаем ошибку:
adb: error: failed to copy ‘build.prop’ to ‘system/build.prop’: remote couldn’t create file: Read-only file system
Вот здесь и начинается самое интересное! По умолчанию эмулятор запускается в режиме чтения системных файлов, без возможности делать записи. Следовательно, что либо поменять без прав на запись у нас не выйдет. Для этого нам необходимо запустить эмулятор в ручном режиме с доступом на запись системных файлов.
Запускаем эмулятор с доступом на перезапись системных файлов
Для этого нужно выполнить следующую команду в терминале (чтобы скорее всего получить еще одну ошибку):
emulator -avd Pixel3XLAPI30 -writable-system -no-snapshot -nocache
итак здесь Pixel3XLAPI30 — это название нашего эмулятора который мы будем запускать в режиме записи, получить это имя можно выполнив команду emulator -list-avds
-writable-system — собственно тот самый флаг и виновник торжества.
-no-snapshot -nocache — просто советую ввести чтобы избавиться от любого возможного мусора, который может помешать нашему плану-капкану.
После у нас либо запустится эмулятор (несколько секунд запускается, так что если тупит то так и должно быть) либо получаем ошибку следующего типа:
PANIC: Missing emulator engine program for ‘x86’ CPU.
Что бы и нам решить с этим нужно в файле .bash-profile (или если у вас zsh то в файле .zshenv) находящийся в корне вашего профиля macOS, добавить дополнительные пути. Вот как это выглядит у меня:
есть такая переменная ANDROIDHOME и с ее участием редактируем переменную PATH:
Чтобы изменения вступили в силу перезапускаем терминал (или вводим source
/.bash_profile ) (или source
/.zshenv ). Результат можно проверить выполнив команду echo $PATH и убедиться что в переменной PATH появился добавленный нами путь.
Пробуем запустить эмулятор еще раз.
emulator -avd Pixel3XLAPI30 -writable-system -no-snapshot -nocache
Теперь он должен был успешно запустится.
Активируем доступ на перезапись системных файлов
Из описания флага -writable-system:
-writable-system make system & vendor image writable after ‘adb remount’
делаем вывод что теперь нам нужно выполнить adb remount . Для этого открываем новое окно терминала и выполняем сначала команду adb root , что бы adb remount сработало.
После adb remount , будет сообщение что эмулятор нужно перезапустить. Сделать это можно командой adb reboot. Но и здесь не все так просто. Очередной подводный камень об который мы разбили еще один ноготь на пальцах ног. Если сделать adb reboot то все просто напросто зависает НАВСЕГДА. Настолько навсегда, что придется удалять эмулятор и создавать его заново. Интернет и с этим столкнулся и даже баг создали на гуглов. И благо нашлось решение. Чтобы эмулятор не зависал нужно добавить пару команд до adb remount .
Итак по порядку:
Делаем adb root
Теперь делаем adb shell avbctl disable-verification
Если вы вдруг остались в shell то введите exit
Перезагружаем эмулятор adb reboot и ждем
Снова делаем adb root
И вот теперь можно делать adb remount
Ура! Теперь мы можем записывать файлы в системную папку нашего эмулятора. Можем пушнуть наш отредактированный build.prop файл: adb push build.prop system/ . Сделаем adb reboot и убеждаемся что ничего не поменялось… Имя модели не изменилось.
Редактируем правильный build.prop
Вернемся к началу и заметим, что значения ro.product.product.name и ro.product.product.model не соответствует тому, что отображается в настройках устройства. Изучив структуру системных папок я заметил, что существует несколько файлов build.prop, которые располагаются в папках: system, system_ext, vendor и product. Эмпирическим методом я скачивал, редактировал и пушил обратно каждый из этих файлов. В конце концов ключевым оказался файл в папке product. Отредактировав его я наконец-то смог изменить название модели эмулятора устройства!
Подводим итоги
Наконец-то я смогу запустить приложение и воспроизвести баг. Подумал я…
Теперь я уперся в то, что запускаю приложение якобы с рутованого девайса (ну да есть такой грешок). И дело даже не в команде adb root , ведь команда adb unroot не помогла. Что ж, опускать руки уже поздно, придется что-то придумать.
О том, как я обходил проверку на рутованность устройства я расскажу в следующей своей статье. Немного реверс инжиниринга и даже такая популярная библиотека как RootBeer не проблема.
Данной статьей я стремился собрать как можно больше проблем по этому вопросу и изложить все в форме step-by-step. Спасибо за ваше внимание и очень надеюсь, что статья оказалась полезной!
Источник
Лучшие приложения для 3D-моделирования на планшетах iPad и Android
Быстрый поиск покажет, что существует множество мобильных приложений, созданных для 3D-моделирования. Все становится сложнее, когда вы понимаете, что большинство приложений для 3D-дизайна нацелены на визуализацию или развлечения, а не на разработку моделей для 3D-печати. К счастью, нам удалось найти некоторые из лучших приложений для 3D-дизайна на мобильных устройств. В дополнение к этому мы выбрали только те, которые подходят для повседневного использования для 3D-печати.
Shapr3D: лучший параметрический инструмент
- Платформа: iOS
- Доступна бесплатная версия: Нет, только пробная версия (технически бесплатно навсегда, но версия ограничена)
- Стоимость: $ 19,99 / месяц
Начнем с тяжеловеса: электростанция параметрического моделирования, Shapr3D. Это приложение, имеющее почти четыреста отзывов в App Store и 4,5-звездочный средний показатель, работает на том же движке моделирования, что и профессиональное программное обеспечение для моделирования Solidworks.
Не нужно много просматривать его пользовательский интерфейс и набор функций, чтобы увидеть, что это приложение предназначено для профессиональных инженеров и промышленных дизайнеров. Shapr3D позволяет создавать концепции на ходу, концепции, которые можно экспортировать в настольное программное обеспечение для более детального редактирования в любое время.
Короче говоря, если вы ищете приложение для полупрофессионального варианта использования, не смотрите дальше. Shapr3D — одно из самых функциональных и надежных мобильных приложений для параметрического моделирования.
Sculptura: великолепный инструмент для 3d скульптинга
- Платформы: iOS, Android, Mac
- Доступна бесплатная версия: Нет
- Стоимость: 9,99 $
Это довольно интуитивно понятный инструмент для скульптинга, похожий на Sculptris, настольное программное обеспечение, которое обычно называют «облегченной версией ZBrush». Простой набор инструментов, доступных в Sculptura, делает его наиболее подходящим для создания базовых сеток, которые затем экспортируются в программное обеспечение для настольного моделирования для более детального редактирования.
Интерфейс чистый, а производительность плавная. Это опыт моделирования, явно оптимизированный для мобильных устройств, поэтому, если функциональность соответствует вашему рабочему процессу, вы не будете разочарованы. И если ценник пугает вас, мы предоставляем вам следующее приложение.
Putty 3D: Бюджетная скульптура
- Платформа: iOS
- Доступна бесплатная версия: Нет
- Стоимость: 4,99 $
Лучший способ подвести итог Putty3D — это «более дешевая скульптура». Конечно, у него не так много оценок, но он выполняет свою работу примерно за половину цены Sculptura. Имейте в виду, что его инструменты моделирования более ограничены. Таким образом, если вы относительно продвинутый скульптор, вы можете перейти сразу к Sculptura. С Putty3D вы по-прежнему получаете оптимизированное для мобильных устройств моделирование, экспорт файлов в настольные приложения и чистый пользовательский интерфейс, который вам понравился бы в Sculptura, поэтому, если вам важен бюджет, у вас есть шанс поработать над базовыми сетками.
uMake: Модный выбор
- Платформа: iOS
- Доступна бесплатная версия: Да
UMake — это одно из приложений, которое всегда появляется в списке приложений 3D-дизайна . Это знаковое приложение использует уникальный подход к моделированию благодаря сенсорному вводу. Вы в основном используете 2D-эскизы для формирования 3D-фигур, но опыт почему-то больше напоминает 2D-рисование с добавленной размерной переменной, а не традиционное параметрическое моделирование с плоскостями и эскизами. Это сложно объяснить словами, просто попробуйте сами.
Приятным бонусом uMake является возможность просматривать ваши 3D-проекты в дополненной реальности. Вы можете буквально спроецировать концепцию своего суперкара на видео в реальном времени на ваш гараж, чтобы увидеть, подойдет ли он (рядом с вашим воображаемым Porsche 911).
Совет:
Возможно, именно так разработан интерфейс, но uMake естественным образом предлагает создавать органические формы, хотя сам по себе это не инструмент для скульптинга. Это подводит нас к важному аспекту, который следует учитывать при рассмотрении этого приложения: оно больше подходит для концептуальной работы и визуализации, чем для использования с 3D-печатью.
Конечно, вы можете экспортировать 3D-файлы, которые вы разрабатываете с помощью uMake, в более продвинутое программное обеспечение для 3D-моделирования, такое как Fusion 360 и Meshmixer, но параметры импорта намекают на более ориентированную на дизайн (а не на производственную) цель.
Photoshop, Procreate, Autodesk Sketchbook и другие популярные 2D-приложения для рисования входят в число поддерживаемых источников импорта. Это может указывать на намерение разработчиков сделать приложение uMake для художников-концептов, работающих в основном с 2D-набросками и визуализациями.
AutoCAD: исключительный
- Платформы: iOS, Android, Windows
- Доступна бесплатная версия: Да
Этот популярный DWG-просмотрщик и редактор — довольно солидный вариант для архитектуры или функций, связанных с BIM, но имейте в виду, что вы не будете использовать его, если вам интересно сделать для 3D-принтера. Мобильное приложение AutoCAD предназначено для просмотра и легкого редактирования файлов DWG, распространенного формата файлов в строительной отрасли. Это довольно хорошо для его предназначенной функции, но эта функция не 3D-печать.
По правде говоря, мы не хотели упоминать AutoCAD из-за его дурной славы в области 3D-дизайна. Он находится в совершенно другой категории, чем другие приложения, упомянутые здесь, но по крайней мере, теперь вы не примете его в качестве опции 3D-моделирования для ваших нужд печати.
Luna Display: другой подход
- Платформа : iOS
- Доступна бесплатная версия : нет (требуется покупка оборудования)
- Стоимость: $ 79,99
А сейчас нечто совершенно другое.
Представьте себе: ваш блестящий iPad с его чувствительностью к нажатию и впечатляющей поддержкой стилуса, с программным обеспечением для настольного моделирования. Это описывает реальность, созданную Luna Display , решением, которое позволяет вашему iPad функционировать в качестве второго дисплея и метода ввода для вашего компьютера Mac.
Сначала вы подключаете крошечные ключи к iPad и компьютеру, что устанавливает беспроводное соединение между двумя компьютерами. Благодаря этому iPad отображает экран вашего рабочего стола и вы можете использовать сенсорный ввод iPad с вашими любимыми приложениями для моделирования на рабочем столе, такими как, например, ZBrush . Прелесть этого подхода заключается в том, что он сочетает в себе аппаратное обеспечение iPad, подходящее для моделирования, с мощью программного обеспечения для настольных ПК, которое по функциональности превосходит мобильные приложения.
Что поистине выдающегося в этом решении, так это то, что с iPad-интерфейсом Luna Display доступны и специальные функции iPad, такие как чувствительность к давлению, а это означает, что ваш iPad превращается в стильный планшет для рисования для настольных программ. Вы едва можете себе представить, насколько гладко выглядит скульптура в настольном программном обеспечении, когда вы используете самые современные аппаратные средства iPad.
Предыдущий вариант
Создатели Luna Display предлагают еще одно решение, похожее по функции: Astropad . Astropad делает то же самое, что и Luna Display, за исключением того, что он работает с большим количеством версий iPad и использует WiFi или USB-соединение вместо пары ключей.
Источник