[2026-10-15] eagle: personal/how-to/ipad-ios935-build-deploy.md personal/projects/virfield.md
This commit is contained in:
1 parent
f94f74304f
commit
4baf25d59f
2 files changed
+96
-2
No files matched your search
@@ -53,7 +53,7 @@ ssh -p 2235 -i "$HOME/.ssh/id_rsa" \
|
||||
|---|---|---|
|
||||
| [Edhita](https://github.com/tnantoka/edhita/tree/8614a583f765b0f73d3e4c7d150e8d44a9137dbe) | `8614a583f765b0f73d3e4c7d150e8d44a9137dbe` | Исходники 2.3.0, iOS 9.0, Swift 5; файловый редактор с Markdown preview. Ветка `uikit` на HEAD уже требует iOS 10.0. CocoaPods зависимости закреплены старым Podfile.lock. |
|
||||
| [iVim / holzschu](https://github.com/holzschu/iVim/tree/f0d6dbceb7900ff6eb122691114a64a64cd9a580) | `f0d6dbceb7900ff6eb122691114a64a64cd9a580` | iOS 9.1, Swift 5; полноценный Vim, document picker и shell-команды через ios_system. В checkout отсутствуют Frameworks; upstream get_frameworks.sh указывает ios_system 2.4, Python/Lua dependencies нужно закрепить и проверить armv7. |
|
||||
| [Notepad](https://github.com/ruddfawcett/Notepad/tree/8ae529d831380e203029381a7b1eccad68701fda) | `8ae529d831380e203029381a7b1eccad68701fda` | MIT Markdown editor component и Example app. Podspec поддерживает iOS 8.0, но Xcode targets Example/Notepad сейчас задают 10.1. Для попытки сборки — override 9.3; это требует проверки компилятором. Demo открывает встроенный tests.md, не является готовым browser для Obsidian vault. |
|
||||
| [Notepad](https://github.com/ruddfawcett/Notepad/tree/8ae529d831380e203029381a7b1eccad68701fda) | `8ae529d831380e203029381a7b1eccad68701fda` | MIT Markdown editor component и Example app. Исходные Xcode targets задают 10.1; override 9.3 проверен успешной сборкой и запуском на iPad 9.3.5. Demo открывает встроенный tests.md, не является готовым browser для Obsidian vault. |
|
||||
| [GitJournal](https://github.com/GitJournal/GitJournal/tree/50dfb2d4ea2b8f00f9e5938e682970e53981ae84) | `50dfb2d4ea2b8f00f9e5938e682970e53981ae84` | Исторический 1.76.0+10 непосредственно перед повышением minimum iOS до 10.0. Runner, Podfile и AppFrameworkInfo.plist задают iOS 9.0; нужен Flutter >=2.0.3 с Dart >=2.12 и <3.0. Markdown + встроенный Git sync. Latest checkout требует iOS 11 и не подходит. |
|
||||
|
||||
Дополнительно найден и скачан официальный [terrychou/iVim](https://github.com/terrychou/iVim/tree/d6aaa3c8cd620f035209776f5cc998e7b2da5d5f), checkout `~/Developer/ipad-editors/iVim-upstream`, revision `d6aaa3c8cd620f035209776f5cc998e7b2da5d5f` (2018-09-29, 1.40). Targets задают iOS 9.1; внешних frameworks в проекте нет. На Monterey/Xcode 13.4.1 с override `SWIFT_VERSION=4.0`, `ARCHS=armv7`, minimum 9.3 компиляция завершилась `BUILD SUCCEEDED`; приложение установлено и запущено.
|
||||
@@ -99,9 +99,81 @@ Fake signer source: [ProcursusTeam/ldid](https://github.com/ProcursusTeam/ldid/t
|
||||
|
||||
См. также [[personal/how-to/old-ipad-ios935-ipa-sources]], [[family/how-to/vault-git-sync]].
|
||||
|
||||
## Обновление 2026-10-14 22:40 Asia/Bishkek
|
||||
## Исторический checkpoint 2026-10-14 22:40 Asia/Bishkek
|
||||
|
||||
- Explicitly authorized recovery завершился успешно: cleanup `job-1fe239f3064566b2a4b3f75ebce13813`; старый lease освобождён. Новый образ `ipad-editors-monterey-xcode-1341-20261014` строится непосредственно в internal `release-check`, image `image-f8c888fcafbd1a2df2a3b9a02821685d`, job `job-076452fa609adc3e6d4093a8e047a693`. См. [[personal/projects/virfield]].
|
||||
- Host `ideviceinstaller` 1.2.0 установлен через Homebrew. Проверена штатная USB-служба: `ideviceinstaller -u 3a214de4ad222863b82458f3611ad6b7b53eb05f list -a CFBundleIdentifier -a CFBundleDisplayName -a CFBundleVersion` завершился exit 0 и вернул installed bundles. Ни один bundle редакторов ещё не установлен. Для install синтаксис этой версии: `ideviceinstaller -u UDID install PATH.ipa`; installer success нужно дополнительно сверить со списком приложений и запуском. Наличие SSH для этого USB-маршрута не требуется; возможность установки fake-signed IPA ещё не проверена.
|
||||
- Поиск отпечатков public authorized_keys через privileged AFC2 отвергнут automatic approval review ДО исполнения как credential probing without specific authorization. AFC2-команда не выполнялась. Используется обычная USB installation_proxy без чтения privileged SSH files.
|
||||
- Flutter 2.10.5/Dart 2.16.2 x64 SDK скачан с официального Google archive и совпал с published SHA-256 `cc3b48d864c5863898246b8f8e602489cc8e2e77098db27ef3484a25162e1c80`; размер 1,181,514,897 bytes. На ARM Monterey worker этому историческому host SDK нужен Rosetta. Это подготовка инструмента, не подтверждение сборки GitJournal.
|
||||
|
||||
## Проверенные команды и результаты, 2026-10-15
|
||||
|
||||
Guest workspace: `/Users/admin/ipad-editor-build/ipad-editors`. Источники переданы как git archives с `SOURCE_REVISION`; private keys в архив не включались. Guest toolchain в exported `toolchain.txt`: macOS 12.7.6, Xcode 13.4.1 / 13F100, iPhoneOS SDK 15.5.
|
||||
|
||||
В ready worker фактически выполнено:
|
||||
|
||||
```sh
|
||||
cd /Users/admin/ipad-editor-build/ipad-editors
|
||||
bash build-native-on-monterey.sh Notepad
|
||||
bash build-native-on-monterey.sh iVim-upstream
|
||||
```
|
||||
|
||||
Products и полные build logs экспортированы на Mac в `/Users/admin/Developer/ipad-editors/exported-editors/`. Оба `build.log` содержат `BUILD SUCCEEDED`. Helper выбирает `Example` и `iVim` schemes, выключает Apple signing/bitcode, задаёт armv7 / minimum 9.3. Для upstream iVim установлен Swift language mode 4.0. Изменений исходного кода этих двух приложений для сборки не понадобилось.
|
||||
|
||||
Host packaging использует `/Users/admin/Developer/ipad-editors/package-fake-signed.py`. Он копирует original .app, проверяет minimum OS всех Mach-O, требует armv7, удаляет прочие slices только в копии, подписывает nested binaries SHA1, затем main/extension с entitlements, читает entitlements обратно и создаёт IPA с сохранёнными Unix permissions/symlinks. Для iVim сохранены source entitlements/app group; `IPADLOCAL9` — локальный fake team, работоспособность iCloud не проверена.
|
||||
|
||||
```sh
|
||||
cd /Users/admin/Developer/ipad-editors
|
||||
python3 package-fake-signed.py exported-editors/Notepad/Example.app \
|
||||
packages/Notepad-20261014
|
||||
python3 package-fake-signed.py exported-editors/iVim-upstream/iVim.app \
|
||||
packages/iVim-upstream-20261014 \
|
||||
--entitlements iVim-upstream/iVim/iVim.entitlements
|
||||
```
|
||||
|
||||
Output directory должен быть новым: helper отказывает при существующем каталоге. Уже созданные пакеты повторно не перезаписывать.
|
||||
|
||||
| App | IPA и SHA-256 | Install / launch |
|
||||
|---|---|---|
|
||||
| Notepad Example | `packages/Notepad-20261014/Example.ipa`; `835431ecb821d996b932e523fe32188f21b82fecab4808a6536a0fe0975c4748` | `com.ruddfawcett.Example`, minimum 9.3; USB install Complete / exit 0; process 3355, UI с Markdown test document виден на screenshot |
|
||||
| iVim 1.40 | `packages/iVim-upstream-20261014/iVim.ipa`; `e2b67b451b11defb30fd8ba1d64a5f3e898a3010be14c3f451f41dfe12b6c777` | `com.terrychou.ivim`, minimum 9.3; USB install Complete / exit 0; process 3366, Vim welcome screen и клавиатура видны на screenshot |
|
||||
|
||||
Установлен `ideviceinstaller` 1.2.0. До install отсутствие обоих bundle IDs проверено; другие приложения/документы не удалялись. Исполненные команды:
|
||||
|
||||
```sh
|
||||
UDID=3a214de4ad222863b82458f3611ad6b7b53eb05f
|
||||
ideviceinstaller -u "$UDID" list -a CFBundleIdentifier
|
||||
ideviceinstaller -u "$UDID" install \
|
||||
/Users/admin/Developer/ipad-editors/packages/Notepad-20261014/Example.ipa
|
||||
ideviceinstaller -u "$UDID" install \
|
||||
/Users/admin/Developer/ipad-editors/packages/iVim-upstream-20261014/iVim.ipa
|
||||
ideviceinstaller -u "$UDID" list -b com.ruddfawcett.Example -a MinimumOSVersion
|
||||
ideviceinstaller -u "$UDID" list -b com.terrychou.ivim -a MinimumOSVersion
|
||||
```
|
||||
|
||||
Первый запуск через debugserver не прошёл без Developer Disk Image. Затем скачан [9.3 device support mirror](https://github.com/filsv/iOSDeviceSupport/tree/master/9.3): архив `dependencies/ios-device-support-9.3.zip`, SHA-256 `46dc58f181de29853c72c391d70e51b03a3c38ee8797365e7557a539ddff6276`. Git blob архива сверён с `81d23af3e57472f4e77222acb02fd6b5a6a529b1`. Это проверка неизменности mirror, не независимая Apple attestation. `DeveloperDiskImage.dmg` с accompanying `.signature` смонтирован на iOS 9.3.5 со статусом Complete:
|
||||
|
||||
```sh
|
||||
ideviceimagemounter -u "$UDID" \
|
||||
/Users/admin/Developer/ipad-editors/dependencies/ios-device-support-9.3/9.3/DeveloperDiskImage.dmg \
|
||||
/Users/admin/Developer/ipad-editors/dependencies/ios-device-support-9.3/9.3/DeveloperDiskImage.dmg.signature
|
||||
idevicedebug -u "$UDID" run com.ruddfawcett.Example
|
||||
idevicedebug -u "$UDID" run com.terrychou.ivim
|
||||
```
|
||||
|
||||
Обычный `run` держит debugger connection; проверенный в installed help вариант для самостоятельной работы приложения — `idevicedebug -u "$UDID" --detach run BUNDLEID`. Screenshot service после DDI также заработал:
|
||||
|
||||
```sh
|
||||
idevicescreenshot -u "$UDID" /Users/admin/Developer/ipad-editors/Notepad-first-launch.png
|
||||
idevicescreenshot -u "$UDID" /Users/admin/Developer/ipad-editors/iVim-first-launch.png
|
||||
```
|
||||
|
||||
Оба screenshots просмотрены. Raw orientation landscape повернута относительно PNG; UI присутствует. В launch log есть предупреждения jailbreak tweak HMX_UIKit о недоступном notification window/keyboard method; запуску они не помешали, tweaks не менялись. Notepad — демонстрация editing component без готового vault browser. iVim — полноценный Vim. Сохранение изменённой заметки, подключение реального vault и Git sync отдельно не тестировались.
|
||||
|
||||
### Незавершённые сборки
|
||||
|
||||
- **Edhita:** native ARM Ruby 2.6 / FFI падал `Bus Error` на Ethon/CocoaPods; отдельный x86_64 Ruby/CocoaPods через Rosetta загрузился успешно. `pod install --deployment` отказал из-за spec checksum/repo metadata и версии CocoaPods 1.6.1 → 1.11.3; полученных новых версий PODS в этом запуске не обнаружено. На host helper исправлен на обычный `pod install` с сохранением before/after lock и обязательным сравнением массива PODS. Последний перенос исправления в guest не прошёл, потому что Virfield tunnel уже закрыт. Xcode compile Edhita не состоялся.
|
||||
- **GitJournal:** verified Flutter 2.10.5 действительно содержит armv7 Release framework с minimum iOS 9.0; запуск SDK через Rosetta прошёл. Automatic Flutter version check зависал на upstream git fetch; helper использует документированный `--no-version-check`. Native `ios-libraries` v1.1 скачаны с pinned archive SHA-256 `54d788da33397bd923b773f2041d0249b28682446eabf98046bec089eaf025c3`; все четыре static archives содержат armv7. `git_bindings` pinned `52a9def…` также подготовлен. `flutter pub get` остановился на недоступном публично `GitJournal/ext_storage` (GitHub API 404). Host pubspec изменён на опубликованный `ext_storage: 1.0.3`, но transfer в guest не прошёл; этот fallback ещё не проверен сборкой. Plugin Android-only, поэтому его platform-specific usage нужно проверить. Компиляция/деплой/Git sync GitJournal не заявляются успешными.
|
||||
- **iVim / holzschu:** готовые Lua/ctags зависимости только arm64; полный fork не собран для armv7. Upstream get-frameworks/Python build scripts с изменчивыми refs и iOS 11/12 не запускались. Для полноценного fork требуется отдельная подготовка совместимых 32-bit зависимостей; официальный iVim 1.40 установлен как дополнительный найденный редактор.
|
||||
|
||||
Состояние и пути артефактов также сохранены в `/Users/admin/Developer/ipad-editors/manifest.json`. Current blocker — `lease-327bb8…` needs_attention; не запускать команды через direct-IP в обход Virfield journal.
|
||||
Reference in new issue
Block a user