213 lines
13 KiB
Markdown
213 lines
13 KiB
Markdown
# Old iPad — iOS 9.3.5: IPA Sources & App Shortlist
|
||
|
||
**Date:** 2026-09-21
|
||
**Device target:** iPad 2 / iPad 3 / iPad mini 1 / iPhone 4S (iOS 9.3.5–9.3.6 max)
|
||
**Status:** research complete, sources verified, nothing downloaded yet
|
||
|
||
---
|
||
|
||
## 1. Where the IPAs actually are
|
||
|
||
| Source | Size | Notes |
|
||
|---|---|---|
|
||
| **archive.org → `iOSObscura`** | **17,652 IPA** | iPhoneOS Obscura Project. Real files, HTTP 206 works. **Primary source.** |
|
||
| archive.org → `legacyiosapparchive` | 680 IPA | Smaller, older-version-first naming |
|
||
| archive.org → `ios-ipa-collection` | ~10k | DISCONTINUED upstream, but files still served |
|
||
| mtmdev.org | Momentum Store | Forum-gated. Installer webapp only works for iOS 4/5/6 — **not useful for 9.3.5** |
|
||
| ipatool (github qnblackcat gist) | — | Needs an Apple ID that *owns* the app. Gets last-compatible version. Cleanest legal path. |
|
||
|
||
### Warning: network pitfall on this Mac
|
||
`archive.org` **does not resolve** on the home network — the router DNS (192.168.1.1) blocks it.
|
||
`dig @1.1.1.1` returns an IP, but the system resolver fails → `curl: Could not resolve host`.
|
||
|
||
Workaround used successfully:
|
||
```bash
|
||
# metadata list
|
||
curl -s --resolve archive.org:443:207.241.224.2 "https://archive.org/metadata/iOSObscura"
|
||
|
||
# downloads 302 to dn####.ca.archive.org - that host must ALSO be pinned
|
||
DN=$(curl -sI --resolve archive.org:443:207.241.224.2 "$URL" | grep -i ^location | sed 's/^[Ll]ocation: //')
|
||
HOST=$(echo "$DN" | sed -E 's#https://([^/]+)/.*#\1#')
|
||
IP=$(dig +short "$HOST" @1.1.1.1 | tail -1)
|
||
curl -L --resolve archive.org:443:207.241.224.2 --resolve "$HOST:443:$IP" -O "$URL"
|
||
```
|
||
Verified: DM1 IPA returns `HTTP 206`, `file` → `iOS App Zip archive data`. **Downloads are live.**
|
||
|
||
**Ready-made downloader:** [`scripts/fetch-ios935-ipas.sh`](scripts/fetch-ios935-ipas.sh)
|
||
— curated 25-file shortlist (all music picks + utility), handles the double `--resolve`,
|
||
validates each file is a real zip. Run: `bash scripts/fetch-ios935-ipas.sh ./ipas935`
|
||
|
||
Download URL form (note the `%20` for spaces — URLs contain literal spaces otherwise):
|
||
```
|
||
https://archive.org/download/iOSObscura/<iOS N>/<bundle-id>/<App>-(<bundle-id>)-<ver>-(iOS_x.y)-<hash>.ipa
|
||
```
|
||
|
||
### Warning: install requirement
|
||
These IPAs are unsigned/cracked. Installing on a non-jailbroken iOS 9.3.5 device needs
|
||
**AppSync Unified** (Cydia) — i.e. the iPad must be **jailbroken**. iOS 9.3.5 jailbreak: Phoenix
|
||
(32-bit). Without it, only the App Store "download last compatible version" route works.
|
||
|
||
---
|
||
|
||
## 2. MIDI / music apps present in iOSObscura
|
||
|
||
All paths below are relative to `https://archive.org/download/iOSObscura/`.
|
||
|
||
### Synthesizers
|
||
| App | iOS build in archive |
|
||
|---|---|
|
||
| **Korg iMS-20** | `iOS 4/jp.co.korg.iMS-20/…-1.5.2-(iOS_4.2)…` ← best version |
|
||
| **Korg iELECTRIBE** | `iOS 4/jp.co.korg.iELECTRIBE/…-1.5.2-(iOS_4.2)…` |
|
||
| **Korg iPolysix** | `iOS 5/jp.co.korg.iPolysix/…-146-(iOS_5.1)…` |
|
||
| **Korg iKaossilator** | `iOS 5/jp.co.korg.ikaossilator/…-2.3.0-(iOS_5.1)…` |
|
||
| **Moog Animoog** | `iOS 5/com.moogmusic.animoog/…-2.1.1-(iOS_5.0)…` |
|
||
| **Moog Filtatron** | `iOS 5/com.moogmusic.filtatron/…-1.2.0-(iOS_5.0)…` |
|
||
| **Arturia iMini** | `iOS 5/com.arturia.imini/…-1.1-(iOS_5.1)…` |
|
||
| **Sunrizer** | `iOS 5/com.giku.Horizon/…-3.0-(iOS_5.0)…` |
|
||
| **Yamaha TNR-i (Tenori-on)** | `iOS 4/jp.co.yamaha.emi.tenopad/…-1.2.1-(iOS_4.3)…` |
|
||
| **PulseCode Modular** | `iOS 6/com.pulsecodeinc.ModularSynthesizer/…-1.04-(iOS_6.0)…` |
|
||
| **NLog PRO** | `iOS 4/com.temporubato.NLogPro/…-3.4-(iOS_4.0)…` |
|
||
|
||
### DAWs / sequencers / drum machines
|
||
| App | Build |
|
||
|---|---|
|
||
| **GarageBand** | `iOS 8/com.apple.mobilegarageband/…-3417.29-(iOS_8.0)…` ← best (Apple, iOS 8) |
|
||
| **Steinberg Cubasis** | `iOS 8/com.steinberg.cubasis/…-2.2.0.8-(iOS_8.3)…` ← best |
|
||
| **Intua BeatMaker 2** | `iOS 5/net.intua.beatmaker2/…-2.5.4-(iOS_5.0)…` |
|
||
| **Fingerlab DM1 (drum machine)** | `iOS 8/net.fingerlab.beat/…-01-(iOS_8.0)…` |
|
||
| **Fingerlab Musyc** | `iOS 6/net.fingerlab.musyc/…-017-(iOS_6.0)…` |
|
||
| **Propellerhead Figure** | `iOS 7/se.propellerheads.figure/…-341-(iOS_7.0)…` |
|
||
| **Blip NanoStudio** | `iOS 5/co.uk.blipinteractive.NanoStudio/…-1.43-(iOS_5.0)…` |
|
||
| **Seline Ultimate** | `iOS 5/com.amidio.seline.hd/…-2.2-(iOS_5.0)…` |
|
||
| **Beatwave** | `iOS 7/com.collect3.beatwave/…-2.6.1.2-(iOS_7.0)…` |
|
||
| **Patatap** | `iOS 7/com.patatap.iphone/…-1.1-(iOS_7.1)…` |
|
||
| **iZotope iDrum** | `iPhoneOS 2/com.izotope.iphone.idrum.*` |
|
||
|
||
### Audio routing / live / guitar
|
||
| App | Build |
|
||
|---|---|
|
||
| **Audiobus** (inter-app audio routing) | `iOS 5/us.audiob.Audiobus/…-1.0.2.5-(iOS_5.0)…` |
|
||
| **Traktor DJ** | `iOS 6/com.native-instruments.traktordj/…-1.3.3.383-(iOS_6.1)…` |
|
||
| **AmpliTube** (many variants) | `iOS 7/com.ikmultimediaus.amplitubefull/…-35-(iOS_7.1)…` |
|
||
| **ThumbJam** | `iOS 5/com.sonosaurus.thumbjam/…-2.4.2-(iOS_5.0)…` |
|
||
| **iGrand Piano** | `iOS 5/com.ikmultimediaus.igrandpadfull/…-1.0.1-(iOS_5.1)…` |
|
||
| **Galileo** (organ) | `iOS 5/com.bodunov.galileo/…-2.5.2-(iOS_5.0)…` |
|
||
|
||
### Best picks if you only take 5
|
||
1. **Korg iMS-20** — the killer app for this era, full MS-20 patchable semi-modular
|
||
2. **Moog Animoog** — best-sounding iPad synth of its generation, expressive touch
|
||
3. **GarageBand (iOS 8 build)** — DAW, still Apple, most stable
|
||
4. **Audiobus** — glue that lets the above talk to each other
|
||
5. **Fingerlab DM1** — drum machine, instantly fun
|
||
|
||
---
|
||
|
||
## 3. General-purpose top picks for an old iPad
|
||
|
||
The archive also has the utility media stack. Relative paths under `iOSObscura/`:
|
||
|
||
| Need | App | Build |
|
||
|---|---|---|
|
||
| Video player | **VLC / VLC Streamer / ProPlayer / AVPlayerHD** | `VLC-v2.6.6--iOS6.1…`, `iOS 4/ProPlayer/`, `iOS 4/AVPlayerHD…` |
|
||
| Local media + file manager | **Documents** | `iOS 4/com.EZYPages.USBFlashDisk/Documents-…-4.0-(iOS_4.3)…` |
|
||
| Browser | **Puffin** (cloud-rendered, still fast on old HW), Dolphin, Mercury | `Puffin-v4.7.3--iOS6.0…`, `iOS 5/com.cloudmosa.puffin/…-10265` |
|
||
| Remote desktop | **VNC Viewer, TeamViewer, RDP** | `VNC Viewer-v2.3.5--iOS5.1.1…`, `TeamViewer-v10.0.37492…` |
|
||
| Kodi control | **Kodi Remote** | `Kodi Remote-v1.5.5--iOS5.1.1…` |
|
||
| Comics / PDF | **Comic Zeal, Comic Touch, GoodPlayer** | `iOS 4/Ff2lqVpcZ2.ComicZeal4/…` |
|
||
|
||
### What still works / doesn't (community consensus, 2023–2025)
|
||
- Works: Puffin, Alook, Snowbunny (browsers, shared WebKit), Byline (RSS), Readder (Reddit),
|
||
iBooks/PDFs, VLC, Amazon Prime Video, Amazon Music, SoundCloud, YouTube *via Safari*, Flipboard
|
||
- Dead: Netflix app, YouTube app, most streaming apps, anything updated past 2019
|
||
- Trick: Google `site:apps.apple.com ios 9.0 <keyword>` to find still-compatible App Store apps
|
||
- App Store route: if you ever *purchased* the app, iOS offers "download last compatible version"
|
||
automatically
|
||
|
||
---
|
||
|
||
## 5. Ableton Live — подключается ли современный
|
||
|
||
**Короткий ответ: да, но не как «Ableton на iPad».** Live на iOS нет и не было. Реально только
|
||
три роли, и все три работают с Live 12.
|
||
|
||
### Роль A — MIDI-контроллер (главный сценарий, проверено)
|
||
iPad шлёт MIDI по Wi-Fi, Live его слушает. Канал — **RTP-MIDI / Network MIDI Session**,
|
||
встроен в macOS (Audio MIDI Setup → Window → Show MIDI Window → двойной клик «Network»),
|
||
в Live появляется порт «Network MIDI» в Link/MIDI Preferences. Ableton рекомендует свой
|
||
виртуальный MIDI-нетворк напрямую.
|
||
Source: https://help.ableton.com/hc/en-us/articles/209071169-Setting-up-a-virtual-MIDI-network
|
||
|
||
**TouchOSC 1.9.3 МОЖНО поставить на iOS 9.3.5** — verified:
|
||
```
|
||
https://archive.org/download/iOSObscura/iOS 4/net.hexler.TouchOSC/TouchOSC-(net.hexler.TouchOSC)-1.9.3-(iOS_4.3)-05de0867bd95aa0ef230bf4604b48414.ipa
|
||
```
|
||
HTTP 206, валидный IPA. TouchOSC — самый лёгкий вариант, UI + коммуникация, без хостинга
|
||
плагинов; именно его советуют для древнего железа в r/ableton. Шлёт **OSC**, не MIDI —
|
||
чтобы Live понял, нужен мост.
|
||
|
||
Мост для TouchOSC → Live:
|
||
- **Osculator** (macOS, платный) — Ableton официально называет эту связку
|
||
- на Mac OSC→MIDI можно и без Osculator: **OSCulator альтернатива** / Max for Live / IAC-шина
|
||
|
||
### Роль B — генератор звука, синхронизированный по Link
|
||
Ableton Link = tempo/timing по сети, встроен в Live и в кучу iOS-приложений.
|
||
Но: **все Link-совместимые сборки в архиве — это iOS 5–8**, всё что новее требует iOS 10+.
|
||
Workaround: MIDI Clock через Network MIDI (Ableton: «если приложение умеет Link —
|
||
используй Link, иначе MIDI clock»). Или обновить iPad до чего-то с iOS 10+, чего он не может.
|
||
|
||
### Роль C — тяжёлые фирменные контроллеры (НЕ на iOS 9)
|
||
Ableton официально перечисляет: **LK (ex-LIVKONTROL), TouchOSC+Osculator, V-Control Pro,
|
||
Knobbler (Live 12 + Max for Live), touchAble, DAW Control, 7III Tap**.
|
||
Source: https://help.ableton.com/hc/en-us/articles/209071989
|
||
**Ни один не поддерживает iOS 9.** touchAble в архиве только версия 1.3.3 (iOS 3.2, 2010) —
|
||
это прадед текущей, вряд ли совместим по протоколу с Live 12.
|
||
|
||
### Вердикт
|
||
| Сценарий | Реально? | Чем |
|
||
|---|---|---|
|
||
| iPad как лёгкий контроллер (слайдеры, кнопки, XY, transport) | **Да** | TouchOSC 1.9.3 + Osculator/OSC-MIDI мост |
|
||
| iPad как MIDI-клавиатура / пэды в Live | **Да** | TouchOSC или любой CoreMIDI-app + Network MIDI |
|
||
| iPad гонит звук в Live синхронно | Криво | только MIDI Clock, Link невозможен (iOS 9 < 10) |
|
||
| Тяжёлые контроллеры (LK, touchAble Pro, V-Control) | **Нет** | требуют iOS 10+ |
|
||
| Запустить сам Ableton на iPad | **Нет** | не существует |
|
||
|
||
### Риск, который надо принять
|
||
r/ableton: «A program like that will smoke an iPad 2», «trying to get one of these apps on my
|
||
old iPad mini — so slow I decided it wasn't worth it». Железо iPad 2 (512 МБ RAM) на пределе.
|
||
TouchOSC — единственный, который заведомо не сожрёт всё.
|
||
**Практический выбор:** если iPad это iPad 2 — только TouchOSC и очень простой лейаут.
|
||
Если iPad 3 (1 ГБ RAM) — терпимо.
|
||
|
||
### Проверено vs требует проверки
|
||
- ✅ Проверено: TouchOSC 1.9.3 скачивается из iOSObscura (HTTP 206)
|
||
- ✅ Проверено: Ableton официально описывает Network MIDI + TouchOSC/Osculator
|
||
- ⚠️ НЕ проверено: факт запуска TouchOSC 1.9.3 под iOS 9.3.5 на конкретном девайсе
|
||
- ⚠️ НЕ проверено: живой ли Osculator под текущую macOS (проект старый) — надо тестить
|
||
|
||
---
|
||
|
||
## 6. Open questions / next steps
|
||
- [ ] Is the iPad jailbroken? (determines whether IPA route or App Store route)
|
||
- [ ] Which model exactly (iPad 2 vs 3 vs mini 1 — affects RAM, iMS-20 stability)
|
||
- [x] Bulk-download script for a chosen shortlist → `scripts/fetch-ios935-ipas.sh` (written, not yet run)
|
||
- [ ] Check `ios-ipa-collection` + `legacyiosapparchive` for anything missing above
|
||
|
||
---
|
||
|
||
## 5. Session log
|
||
|
||
**2026-09-21 — initial research pass.** Enumerated `iOSObscura` via
|
||
`curl --resolve archive.org:443:207.241.224.2 https://archive.org/metadata/iOSObscura | jq -r '.files[].name'`.
|
||
Two keyword sweeps over the 18,332 unique IPA filenames (music/MIDI terms, then
|
||
utility/media/browser/remote terms) produced the shortlists in sections 2 and 3.
|
||
Verified a live download end-to-end on `DM1` (HTTP 206 + valid zip header).
|
||
Nothing downloaded to disk; no config touched.
|
||
|
||
**Discovery order that worked** (reuse for the other collections):
|
||
1. `curl --resolve` the `/metadata/<identifier>` endpoint → JSON `files[].name`
|
||
2. `jq -r '.files[].name'` → one filename per line
|
||
3. `grep -iE '<terms>'` the filename list — filenames carry bundle-id + iOS version,
|
||
so version targeting needs no extra API calls
|
||
4. URL = `https://archive.org/download/<identifier>/<path>` with spaces → `%20`
|
||
5. `curl -I` first to catch the redirect host, then pin it
|