117 lines
6.5 KiB
Markdown
117 lines
6.5 KiB
Markdown
# AITURK Mobil — Android geliştirme sürümü 0.1.1
|
||
|
||
Bu bir **geliştirme paketi**; planın tamamlanmış ürün/kapalı beta kabulü değildir.
|
||
Android uygulaması, IDE adaptörü ve hesap doğrulamalı bağlantı servisi kodlandı.
|
||
Google Live ve gerçek telefon/ağ doğrulaması henüz yapılmadı. Canlı
|
||
turkservis.online veya kurulu IDE bu kaynak değişiklikleriyle güncellenmedi.
|
||
|
||
## Çalışan ve test edilen parçalar
|
||
|
||
- Capacitor 8.5.1 Android projesi; Türkçe erişilebilir kurulum ve yazılı kullanım.
|
||
- Mevcut AITURK hesap API anahtarı ve cihaz sırrıyla hesap/cihaz doğrulaması.
|
||
Telefonun eşleşmesini hedef bilgisayar kendi cihaz tokenıyla onaylar.
|
||
- WebRTC DTLS/SCTP veri kanalı; büyük Unicode mesajları sınırlı parçalara bölme.
|
||
- Mevcut IDE `/api/sessions` ve JSON-RPC adaptörü. Konuşma ve seçili model
|
||
gönderimden önce doğrulanır. Model listesi icat edilmez.
|
||
- Görevden önce diske yazılan tekrar gönderim kaydı. Kabul sonucu belirsizse
|
||
ikinci kez çalıştırılmaz. Telefonun bekleyen gönderimi Android kasasında kalır.
|
||
- Gerçek IDE onay kimliği ve redakte edilmiş tam komutla yalnız `once`/`deny`.
|
||
Sürekli/genel izin, sudo/UAC veya ses modeli üzerinden onay yolu yoktur.
|
||
- Google anahtarı Windows `safeStorage`, hesap cihaz sırrı Android Keystore
|
||
AES-GCM kullanır. Android yedekleme ve cihazlar arası veri taşıma kapatılır.
|
||
- Anahtardan kısa ömürlü, model/araç/sistem talimatı kısıtlı Google Live token
|
||
üretme kodu; doğrudan Google WebSocket, PCM mikrofon/oynatma ve kapatma kodu.
|
||
- Ses görüşmesini kapatma IDE'ye interrupt göndermez. Görünür görev gönder
|
||
düğmesi ve ayrı IDE durdur düğmesi vardır.
|
||
|
||
## Geliştirme kurulumu
|
||
|
||
Node 22+, JDK 21 ve Android API 36 gerekir. Bu çalışma sırasında araçlar
|
||
`%LOCALAPPDATA%/aiturk-mobile-tools` altına kuruldu; kullanıcı sistem PATH'i
|
||
veya yönetici ayarları değiştirilmedi.
|
||
|
||
```powershell
|
||
# Bu klasörde; kök depodaki kurulumu etkilemeyen Android kurulumu
|
||
npm ci --workspaces=false --ignore-scripts
|
||
npm test --workspaces=false
|
||
npm run android:sync --workspaces=false
|
||
# JAVA_HOME ve ANDROID_HOME kendi araç yollarınızı göstermeli
|
||
.\android\gradlew.bat -p android assembleDebug assembleRelease lintDebug
|
||
```
|
||
|
||
`app-debug.apk` geliştirici anahtarıyla imzalanır. `app-release-unsigned.apk`
|
||
üretim imzası içermez ve kurulabilir sürüm olarak paylaşılmamalıdır. Özel üretim
|
||
imza anahtarı oluşturulmadı; mağaza hesabı veya ücretli hizmet açılmadı.
|
||
|
||
## Uyumlu IDE ve bağlantı servisi
|
||
|
||
Bu kaynak ağacındaki masaüstü paketini normal masaüstü build süreciyle derleyin.
|
||
Derlenmiş IDE'yi `--aiturk-mobile` parametresiyle açın. IDE zaten açıksa parametre
|
||
mobil bağlantı penceresini açar; çalışmakta olan konuşma kapatılmaz.
|
||
Mobil pencere açılmadan uzaktan erişim etkinleşmez.
|
||
|
||
1. Bilgisayardaki mobil pencerede AITURK hesap API anahtarını kaydedin.
|
||
2. Bilgisayarı hesapla eşleştirin; açılan mevcut portal sayfasında kodu onaylayın.
|
||
3. Android'de aynı hesap anahtarıyla eşleştirme kodu oluşturun.
|
||
4. Telefondaki kimlik/kodu bilgisayardaki mobil pencerede açıkça onaylayın.
|
||
5. Bilgisayarda “Mobil bağlantıyı aç”, telefonda “Bilgisayarları bul” ve “Bağlan”.
|
||
6. Gerçek IDE konuşmasını seçin. Yazılı görevi görünür önizlemeden gönderin.
|
||
7. Google anahtarını telefondaki ayrı güvenli girişten bilgisayara aktarın.
|
||
Veri/ücret bilgisini kabul ettikten sonra Google görüşmesini başlatın.
|
||
|
||
Gateway eş değişikliği `portal/routes_mobile.py` ve `router_gateway.py` içindedir.
|
||
Mevcut member guard korunur. Üretim kurulumu ve TURN koşulları eş gateway
|
||
deposunun `docs/aiturk-mobile-operations.md` dosyasında açıklanır.
|
||
|
||
## Doğrulama ve sınırlar
|
||
|
||
`npm test`: davranış, tekrar gönderim, onay sınırı, ses temizliği ve token kısıtları.
|
||
`scripts/browser-smoke.mjs`: yeni test tarayıcısında gerçek DTLS veri kanalı,
|
||
240.000 karakter Unicode aktarımı, dar ekran taşması ve dokunma hedefi.
|
||
`scripts/electron-smoke.mjs`: gerçek Electron IPC ve Windows safeStorage turu;
|
||
yalnız sentetik bir test anahtarı kullanır.
|
||
|
||
Gerçek IDE yolunun testi, kök dizinden zorunlu test sarmalayıcısıyla çalışır:
|
||
|
||
```bash
|
||
scripts/run_tests.sh tests/tui_gateway/test_mobile_runtime_integration.py -q
|
||
```
|
||
|
||
Bu test gerçek IDE HTTP, WebSocket, konuşma veritabanı, prompt.submit ve
|
||
message.complete yolunu çalıştırır. Ücretli çıkarım servisi yerine yerel
|
||
deterministik sağlayıcı kullanılır. Aynı görev ikinci defa gönderildiğinde IDE
|
||
geçmişinde yalnız bir kullanıcı görevi oluşur. Gerçek Google/iş modeli kalite
|
||
ve maliyet testi olarak sayılmaz.
|
||
|
||
Henüz tamamlanmayanlar:
|
||
|
||
- Fiziksel Android'de kurulum, mikrofon, kesme, Keystore ve arka plan testi.
|
||
- Kullanıcıya ait test anahtarıyla Google Live doğrulaması ve Türkçe konuşma
|
||
senaryoları. Sıfır gerçek Google çağrısı yapıldı; ücret oluştuğu iddia edilmiyor.
|
||
- Canlı gateway/TURN kurulumu, ayrı mobil ve bilgisayar ağlarıyla tam akış.
|
||
- QR tarama ve tek dokunuşla hesap girişi; ilk sürüm kod/hesap anahtarı kullanır.
|
||
- Açık talimatla prepare_task/submit_task devri ve görev kimlikli terminal
|
||
olayları kodlandı. 25 Node testi ve üç görevli gerçek yerel IDE bağlantı
|
||
testi geçti. Canlı Google transkript sırası ve Türkçe kalite kabulü henüz yok.
|
||
- Yeniden bağlantı bounded IDE olay tamponunu okuyarak kaçırılan görev
|
||
sonucunu alır. Tampon kaybı/backend yeniden başlaması durumunda sonuç
|
||
bilinmiyor kalabilir; iş otomatik tekrar çalıştırılmaz.
|
||
- Doğrulanmış maliyet tahmini/ayarlanabilir bütçe. Yerel görüşme süresi ve
|
||
10 dakikalık oturum sınırı Google kotası veya fatura üst sınırı değildir.
|
||
- Bağımsız güvenlik incelemesi ve sinyalleşme sunucusuna karşı doğrulanmış
|
||
kalıcı eş parmak izi. WebRTC standart şifrelemesi vardır; eş kimliğinin
|
||
sinyalleşme hizmetine güven sınırı gizlenmez.
|
||
- Üretim imzası, kapalı beta kabulü ve turkservis.online indirme yayını.
|
||
|
||
Capacitor CLI'nin kullanılmayan iOS araç zincirinde `xcode → uuid` üzerinden
|
||
3 moderate geliştirme bağımlılığı uyarısı mevcut; Android runtime audit sonucu
|
||
ayrıca kontrol edilir. Bunları gizlemek için `npm audit fix --force` uygulanmadı.
|
||
|
||
## Resmî dayanaklar
|
||
|
||
- https://capacitorjs.com/docs/getting-started/environment-setup
|
||
- https://ai.google.dev/gemini-api/docs/live-api/ephemeral-tokens
|
||
- https://ai.google.dev/api/live
|
||
- https://ai.google.dev/gemini-api/docs/pricing
|
||
- https://github.com/coturn/coturn/blob/master/README.turnserver
|