Jailbreak'li iPhone'da Yapay Zekâ CLI Kurulumu ve Kullanımı | Terminal + Tool Calling

  • Konu Sahibi Konu Sahibi murat
  • Başlangıç tarihi Başlangıç tarihi
  • Featured

murat

fânî
Administrator
Katılım
28 Tem 2017
Mesaj
2,295
Tepkime puanı
1,484
Jailbreak'li iPhone'da Terminal Üzerinden AI Asistanı Çalıştırma

Tool Calling • Dosya Erişimi • Terminal Komutları • Theos • Tmux

IMG_4612.webp


Selam arkadaşlar,

Bu konuda jailbreak'li bir iPhone üzerinde doğrudan terminalden çalışan ve yalnızca sohbet etmekle kalmayıp dosya okuyabilen, terminal komutları çalıştırabilen, proje üzerinde değişiklik yapabilen ve Theos üzerinden tweak derleyebilen bir yapay zekâ asistanı kuracağız.

Buradaki amaç herhangi bir "özel Kimi uygulaması" kurmak değil. Hazırladığımız Python istemcisi, tool/function calling destekleyen bir API üzerinden yapay zekâ modeliyle haberleşiyor.

OpenAI uyumlu Chat Completions / tool-calling API sunan servislerde aynı istemci yapısı kullanılabilir. Kimi, GPT, Grok veya uyumlu başka modeller sağlayıcıya göre kullanılabilir.

Claude / Anthropic için önemli not: Anthropic'in kendi API formatı doğrudan OpenAI Chat Completions formatıyla aynı değildir. Claude kullanmak istiyorsanız istemciyi Anthropic API formatına uyarlamanız veya OpenAI uyumlu bir ara katman/proxy kullanmanız gerekir.

Ben bu sistemi jailbreak geliştirme sırasında aktif olarak kullanıyorum. Örneğin terminalden:

ActionButtonFix projesindeki Tweak.m dosyasını incele, derleme hatasını bul, gerekli değişikliği yap ve make package çalıştır. Paket oluşunca kurmadan önce benden onay bekle.

şeklinde bir talimat verdiğinizde model gerekli dosyaları okuyabiliyor, terminal komutlarını çalıştırabiliyor ve komut çıktılarını tekrar değerlendirerek bir sonraki adıma karar verebiliyor.

⚠ ÖNEMLİ GÜVENLİK UYARISI

Bu sistem yapay zekâya cihaz üzerinde gerçek terminal komutları çalıştırma yetkisi verdiği için normal bir sohbet botundan çok daha güçlüdür.

Ne yaptığını bilmediğiniz komutlarda modele sınırsız yetki vermeyin. Özellikle paket kurulumu, dosya silme, chmod/chown, launchctl, killall, respring ve reboot gibi işlemlerde kullanıcı onayı isteyin.



Sistem Nasıl Çalışıyor?

Sistem klasik bir sohbet botundan farklı olarak model ile jailbreak'li cihaz arasında bir araç katmanı oluşturur. Genel akış NewTerm / Terminal → Python AI istemcisi → API sağlayıcısı → AI modeli → Tool Calling → iOS / Theos şeklindedir.

  1. Talimat terminalden verilir: Kullanıcı AI istemcisine ne yapmak istediğini yazar. Bu yalnızca bir soru olabileceği gibi bir dosyayı inceleme, proje analizi veya terminal işlemi de olabilir.
  2. Python istemcisi isteği API'ye gönderir: İstemci konuşma geçmişi, kullanıcı talimatı ve modele tanımlanan araçlarla birlikte isteği kullandığınız API sağlayıcısına gönderir.
  3. Model gerekli aracı seçer: Script modele temel olarak run_command ve read_file araçlarını tanımlar. read_file cihazdaki dosyaları okumak, run_command ise izin verilen terminal komutlarını çalıştırmak için kullanılır.
  4. Cihaz üzerinde işlem yapılır: Model ihtiyaç duyduğunda pwd, ls, grep, cat, make package, dpkg, git veya python3 gibi işlemleri çağırabilir.
  5. Tool sonucu tekrar modele gönderilir: Dosya içeriği veya terminal çıktısı modele geri verilir. Model yeni sonucu değerlendirip bir sonraki adımın gerekli olup olmadığına karar verir.
  6. Gerekirse döngü devam eder: Model yeni bir dosya okuyabilir, başka bir komut çalıştırabilir, sonucu tekrar inceleyebilir ve görev tamamlanana kadar aynı akış içinde ilerleyebilir.
  7. Sonuç kullanıcıya raporlanır: Gerekli tool çağrıları tamamlandığında model elde ettiği sonucu, yaptığı işlemleri veya tespit ettiği problemi kullanıcıya aktarır.

Yani klasik Soru → Cevap mantığından ziyade Talimat → Dosyaları incele → Komut çalıştır → Çıktıyı değerlendir → Gerekirse düzelt → Tekrar test et → Sonucu raporla şeklinde bir ajan / tool-calling akışı oluşur.


Neler Yapılabilir?

Kurulum doğru yapılandırıldığında sistem özellikle jailbreak geliştirme tarafında oldukça kullanışlıdır.

• Kaynak kod inceleme • Theos proje yapısını analiz etme • Theos proje iskeleti oluşturma • Tweak.x / Tweak.m dosyalarını düzenleme • Makefile ve control dosyalarını inceleme • Theos ile derleme ve .deb paketleme • Derleme hatalarını analiz etme • Log ve crash raporlarını inceleme • plist ve yapılandırma dosyalarını okuma • Terminal komutları çalıştırma • Git projelerini indirme ve kaynak kod üzerinde çalışma • Rootless / RootHide paketleme akışlarını inceleme • Oluşan .deb paketlerini ve build çıktılarını kontrol etme

Örneğin yalnızca inceleme yaptırabilirsiniz:
Bu klasördeki Theos projesini incele. Önce dosya yapısını ve tespit ettiğin sorunları raporla. Hiçbir dosyayı değiştirme.

Ardından:
Tespit ettiğin derleme hatasını düzelt. Yalnızca gerekli değişiklikleri yap. make package çalıştır fakat oluşan paketi kurma. Paket yolunu göster ve benden onay bekle.
şeklinde devam edebilirsiniz.

Not: Rootless ↔ RootHide dönüşümünü "tek komutla evrensel dönüşüm" şeklinde düşünmeyin. Paket yolları, dependency'ler, entitlement'lar, dylib injection yöntemi ve kullanılan jailbreak ortamına göre ek işlemler gerekebilir.



Gereksinimler

Temel kullanım için cihaz tarafında birkaç bileşenin hazır olması gerekir:

  1. Python 3: AI istemcisini çalıştırmak için gereklidir. Cihazdaki gerçek konumu which python3 ile kontrol edebilirsiniz.
  2. Tmux: Uzun süren AI oturumlarını terminalden ayrıldıktan sonra da canlı tutmak ve daha sonra aynı çalışan sürece geri dönmek için kullanılır. Konumunu which tmux ile kontrol edebilirsiniz.
  3. Theos + toolchain: Yalnızca tweak geliştirmek veya AI'ya proje derletmek istiyorsanız gereklidir. Çalışan bir Theos/toolchain kurulumu bulunmalıdır.
  4. Yardımcı terminal araçları: Kullanım amacına göre git, curl, wget, make, dpkg, clang, ldid, grep, unzip ve tar gibi araçlara da ihtiyaç duyabilirsiniz.
  5. Doğru binary yolları: Rootless ve RootHide ortamlarında binary yolları aynı olmak zorunda değildir. Bu nedenle rehberdeki yolları doğrudan varsaymak yerine cihazınızdaki gerçek konumları kontrol edin.

Kurulumunuzu hızlıca doğrulamak için which python3, which tmux, which make, which clang ve which ldid komutlarını kullanabilirsiniz.


Temel Kurulum

Kurulum için konu ekindeki kimi.py dosyasını kullanacağız; ayrıca Python dosyası oluşturmanız veya kodu terminale yapıştırmanız gerekmiyor.

Dosyayı Filza ile açtığınızda en üst kısımda buna benzer ayarları göreceksiniz:

API_KEY = "xxx"
ENDPOINT = "https://api.moonshot.ai/v1/chat/completions"
MODEL = "kimi-k3"

Burada temel olarak API_KEY alanına kendi API anahtarınızı girmeniz ve MODEL alanında kullanacağınız modeli seçmeniz yeterlidir. Farklı bir API sağlayıcısı kullanıyorsanız ENDPOINT değerinin de o sağlayıcıya uygun olması gerekir. Aşağıdaki kurulum adımlarında bu alanları düzenleyip dosyayı gerekli konuma taşıyacağız.
Sileo veya Zebra üzerinden Python 3 ve tmux paketlerini kurun.

  1. Konu ekindeki kimi.py dosyasını indirin.
  2. Filza ile dosyayı /var/mobile/ klasörüne taşıyın. Dosyanın yolu bu aşamadan sonra /var/mobile/kimi.py olmalıdır.
  3. /var/mobile/kimi.py dosyasını Filza'nın metin editörüyle açın. Dosyanın başındaki API_KEY = "xxx" alanında bulunan xxx değerini kendi API anahtarınızla değiştirin.
  4. Kullanacağınız modeli MODEL satırından seçin. Örnekte MODEL = "kimi-k3" kullanılıyor. Farklı bir model kullanacaksanız sağlayıcınızın verdiği gerçek model kimliğini yazın. Modelin ve endpoint'in scriptte kullanılan tool/function calling formatıyla uyumlu olması gerekir.
  5. Farklı bir API sağlayıcısı kullanıyorsanız ENDPOINT değerini de sağlayıcınızın kullandığı endpoint ile değiştirin. Kimi/Moonshot kullanıyorsanız örnekteki uygun endpoint'i kullanabilirsiniz.
  6. Düzenlemeleri kaydettikten sonra dosyaya çalıştırma izni verin: chmod +x /var/mobile/kimi.py
  7. Artık istemciyi terminalden python3 /var/mobile/kimi.py komutuyla başlatabilirsiniz.
Kısa Komut Tanımlama

Her seferinde python3 /var/mobile/kimi.py yazmak yerine iki kısa alias tanımlayabilirsiniz.
  1. Normal kullanım için kimi komutunu tanımlayın. Siz herhangi bir isim kullanabilirsiniz. (gpt,qwen,claude vb.)
    echo 'alias kimi="python3 /var/mobile/kimi.py"' >> ~/.zshrc
  2. Tmux ile doğrudan başlatmak için kimi-tmux komutunu tanımlayın. Siz herhangi bir isim kullanabilirsiniz. (tmux-gpt. tmux-claude vb)
    echo 'alias kimi-tmux="tmux -u new -s kimi python3 /var/mobile/kimi.py"' >> ~/.zshrc
  3. Yeni alias'ları mevcut terminal oturumuna yükleyin:
    source ~/.zshrc
Bundan sonra normal AI oturumu için yalnızca kimi, tmux içinde doğrudan başlatmak için ise kimi-tmux yazmanız yeterlidir.

Not: kimi-tmux komutu kimi adında yeni bir tmux oturumu oluşturur. Aynı isimde açık bir tmux oturumu zaten varsa yeni oturum oluşturmak yerine mevcut oturuma dönmek için tmux attach -t kimi kullanabilirsiniz. Konu ekindeki dosyada gerçek API anahtarı bulunmaz; API_KEY alanı xxx olarak bırakılmıştır.


API, Endpoint ve Model Ayarları

İstemcide temel olarak üç önemli değer bulunur:

API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
ENDPOINT = "API_ENDPOINT" MODEL =
"MODEL_NAME"

API_KEY Kullandığınız sağlayıcıdan aldığınız API anahtarıdır. Bu scriptte anahtar doğrudan API_KEY değişkenine yazılır. Forumda veya GitHub'da paylaşırken gerçek anahtar yerine sk-xxxxxxxx... gibi örnek bir değer kullanın.

ENDPOINT İsteklerin gönderileceği API adresidir.

MODEL Kullanılacak modelin API üzerindeki model kimliğidir. Model seçimini Python dosyasının başındaki MODEL satırından yapabilirsiniz. Örneğin MODEL = "kimi-k3". Başka bir modele geçerken sağlayıcınızın verdiği gerçek model kimliğini kullanın; API veya tool-calling formatı farklıysa yalnız model adını değiştirmek yeterli olmayabilir.

Kimi/Moonshot, OpenAI, xAI veya başka bir sağlayıcı kullanıyorsanız güncel endpoint ve model adlarını ilgili sağlayıcının API dokümantasyonundan kontrol edin.

⚠ Önemli:

Her sağlayıcı aynı API formatını kullanmaz ve her model tool/function calling desteklemez.

Yalnızca: MODEL = "başka-model"
şeklinde model adını değiştirmenin her sağlayıcıda çalışacağı garanti değildir.
İstemcinin kullandığınız API'nin mesaj, tool tanımı, tool çağrısı ve tool sonucu formatıyla uyumlu olması gerekir.

⚠ API ANAHTARINIZI PAYLAŞMAYIN

API anahtarınızı forum mesajında, GitHub deposunda, ekran görüntüsünde veya paylaşacağınız script içerisinde açık bırakmayın.
Yanlışlıkla gerçek bir API anahtarı paylaşırsanız ilgili sağlayıcı üzerinden anahtarı iptal edip yenisini oluşturun.



Sohbet Geçmişi ve Oturuma Devam Etme

Hazırlanan istemci sohbet geçmişlerini /var/mobile/kimi_logs/ altında JSON dosyaları olarak saklayabilir ve son oturumları başlangıç ekranında listeler.

  1. Yeni sohbet başlatma: Script açıldığında 0. Yeni Sohbet Başlat seçeneğini kullanın.
  2. Eski sohbete devam etme: Listelenen chat_... oturumlarından istediğinizi seçin. Terminal tamamen kapansa veya cihaz yeniden başlatılsa bile JSON dosyası duruyorsa eski konuşma yeniden yüklenebilir.
  3. Aktif sohbet geçmişini temizleme: İstemci içinde /clear-h kullanabilirsiniz. Bu işlem aktif geçmişi temizleyip yeni sohbet başlatır.
  4. İstemciden çıkma:/quit veya Ctrl+C kullanabilirsiniz.

JSON geçmişi ile tmux aynı şey değildir: JSON dosyaları konuşma içeriğini saklar; tmux ise çalışan Python/AI sürecini canlı tutar. Tmux'tan yalnızca ayrılırsanız aynı çalışan sürece geri dönersiniz. Cihaz yeniden başlarsa canlı tmux süreci sona erer, ancak JSON geçmişi duruyorsa scripti tekrar açıp eski sohbeti seçebilirsiniz.

Araç çağrılarının sonsuz döngüye girmesini önlemek için istemcide MAX_TOOL_ROUNDS = 40 sınırı bulunur. Model aynı komutu veya hatalı işlemi sürekli tekrarlarsa bu sınır işlemi durdurmaya yardımcı olur; tamamen kaldırılması önerilmez.


Tmux Kullanımı – Sohbeti Açık Tutma, Ayrılma ve Geri Dönme

Mobilde uzun süren AI işlemlerinde NewTerm'den çıkmak veya terminal penceresini kapatmak çalışan sohbeti yarıda bırakabilir. Tmux, terminal oturumunu arka planda canlı tutup daha sonra aynı çalışan AI sürecine geri dönmenizi sağlar.

  1. Tmux oturumunu başlatın: Terminalde tmux new -s ai çalıştırın. Ardından aynı oturum içinde kimi komutuyla AI istemcisini açın.
  2. Sohbeti kapatmadan tmux'tan ayrılın:Ctrl+B tuşlarına basıp bırakın, ardından D tuşuna basın. Kısaca Ctrl+B → bırak → D. Bu işlem AI'yı kapatmaz; yalnızca tmux oturumundan detach olursunuz ve Python/AI süreci arka planda çalışmaya devam eder.
  3. Açık oturumları kontrol edin:tmux ls komutuyla mevcut tmux oturumlarını görebilirsiniz. Listede ai görünüyorsa oturum hâlâ açıktır.
  4. Aynı canlı sohbete geri dönün:tmux attach -t ai veya kısa biçimiyle tmux a -t ai kullanın. Bu işlem JSON geçmişinden yeni bir sohbet açmaz; hâlâ çalışan aynı Python sürecine bağlanır.
  5. AI istemcisini sonlandırın: İstemci içindeyken /quit veya Ctrl+C kullanabilirsiniz. Ctrl+C Python sürecine SIGINT gönderir; o sırada uzun bir API isteği veya terminal komutu çalışıyorsa mevcut işlemi de kesebilir.
  6. Tmux oturumunu normal kapatın: AI istemcisinden çıktıktan sonra shell'de exit yazın. Son tmux penceresi de kapanırsa oturum sona erer.
  7. Oturumu dışarıdan zorla kapatın: Gerektiğinde tmux kill-session -t ai kullanabilirsiniz. tmux kill-server ise açık olan tüm tmux oturumlarını kapatır; bu nedenle dikkatli kullanın.

Kısaca: Ctrl+B → D sohbeti kapatmaz, yalnızca oturumdan ayırır. tmux attach -t ai aynı canlı sürece geri döndürür. Ctrl+C veya /quit AI istemcisini sonlandırır. Cihaz tamamen yeniden başlatılırsa tmux içindeki çalışan süreçler sona erer; ancak JSON sohbet geçmişi duruyorsa kimi komutunu yeniden çalıştırıp eski konuşmayı menüden yükleyebilirsiniz.


AI'ya Nasıl Talimat Verilmeli?

Bu sistemde en önemli noktalardan biri modele verdiğiniz talimatların sınırlarını açık şekilde belirlemektir. AI terminal ve dosya sistemiyle çalışabildiği için yalnızca ne yapmasını istediğinizi değil, neye dokunmaması gerektiğini, hangi aşamada duracağını ve hangi işlemler için onay bekleyeceğini de belirtmek daha kontrollü sonuç verir.

  1. Önce hedefi ve çalışma alanını belirtin: Hangi klasör, proje, dosya veya log üzerinde çalışacağını açıkça söyleyin. Mümkünse ilk aşamada yalnızca inceleme yapmasını isteyin. Örneğin: Bu klasördeki dosya yapısını incele. Önce ne bulunduğunu ve tespit ettiğin sorunları raporla; hiçbir şeyi değiştirme.
  2. İlk aşamada değişiklik yetkisini sınırlayın: Doğrudan Tweak'i düzelt. demek yerine önce sorunun kök nedenini bulmasını ve raporlamasını isteyin. Tweak örneği: Önce mevcut projeyi incele. Dosya yapısını ve sorunun kök nedenini raporla. Ben onay vermeden hiçbir dosyayı değiştirme, derleme veya paket kurulumu yapma.
  3. Değişiklik yapılacaksa kapsamı açıkça belirleyin: Modelin gereksiz refactor veya proje genelinde değişiklik yapmasını istemiyorsanız bunu özellikle yazın. İnceleme tamamlandıktan sonra örneğin: Yalnızca tespit ettiğin problemi düzelt. Gereksiz refactor yapma. make package ile derle ve .deb oluştur fakat KURMA. Paket yolunu göster ve dur.
  4. Dosya inceleme görevlerinde salt-okunur başlayın: Kaynak kod, plist, yapılandırma veya metin dosyalarını analiz ettirirken önce yalnızca okumasını isteyebilirsiniz. Örneğin: Bu klasördeki plist ve yapılandırma dosyalarını oku. Kullanılan preference domain'lerini, yolları ve önemli anahtarları raporla; hiçbir dosyada değişiklik yapma.
  5. Log ve hata analizinde önce kanıt toplatın: Modelin ilk gördüğü hataya göre rastgele değişiklik yapması yerine ilgili logları, build çıktısını veya crash raporunu incelemesini isteyin. Örneğin: Bu crash logunu ve ilgili proje dosyalarını incele. Önce hatanın muhtemel kaynağını ve bunu destekleyen satırları raporla. Ben onay vermeden düzeltme yapma.
  6. Terminal araştırmalarında komut sınırı koyun: Sistem hakkında bilgi toplatırken yalnızca okuma/inceleme amaçlı komutlarla başlamasını söyleyebilirsiniz. Örneğin: Bu cihazdaki Python, tmux, Theos, clang ve ldid yollarını kontrol et. Yalnızca bilgi topla; paket kurma/kaldırma, dosya değiştirme veya servis işlemi yapma.
  7. Git veya kaynak proje incelemesinde önce yapıyı çıkarttırın: Bir projeyi doğrudan değiştirmek yerine hangi dosyaların önemli olduğunu ve build sisteminin nasıl çalıştığını raporlatabilirsiniz. Örneğin: Bu Git projesini incele. Ana kaynak dosyalarını, build sistemini, dependency'leri ve giriş noktalarını özetle. Şimdilik hiçbir dosyayı değiştirme ve build çalıştırma.
  8. Derleme görevlerinde bitiş noktasını belirleyin: Modelin derlemeden sonra paketi otomatik kurmasını istemiyorsanız bunu talimatta açıkça yazın. Örneğin: Projeyi derle. Hata çıkarsa build logunu analiz et ve yalnız gerekli düzeltmeyi yap. Derleme başarılı olduğunda oluşan .deb dosyasının yolunu doğrula; paketi kurma, respring yapma ve benden onay bekle.
  9. Dosya oluşturma veya düzenleme işlerinde mevcut yapıyı korumasını söyleyin: Örneğin: Mevcut dosya yapısını ve isimlendirmeyi koru. Yalnız gerekli dosyayı düzenle; çalışan bölümleri yeniden yazma, gereksiz yeni dosya oluşturma ve değişiklik sonunda hangi satırlara dokunduğunu raporla.
  10. Uzun görevleri aşamalara bölün: Tek prompt içinde sınırsız hareket alanı vermek yerine inceleme → raporlama → onay → değişiklik → doğrulama şeklinde ilerlemek daha kontrollüdür. Böylece modelin yanlış bir varsayımla arka arkaya çok sayıda tool çağrısı yapmasının da önüne geçebilirsiniz.
  11. Riskli işlemler için açık onay sınırı koyun: Paket kurulumu/kaldırılması, dosya silme, izin/sahiplik değiştirme, servis yönetimi, respring ve reboot gibi işlemlerde modele önceden durmasını söyleyin. Örneğin: rm, dpkg ile kurulum/kaldırma, chmod/chown, launchctl, killall, respring veya reboot gerektiren bir aşamaya gelirsen komutu çalıştırma; ne yapmak istediğini ve komutu bana gösterip onay bekle.
  12. Sonuçta ne raporlayacağını da belirtin: İşlem sonunda yalnızca "tamamlandı" demesi yerine yapılan değişiklikleri, çalıştırılan önemli komutları, build sonucunu ve oluşan dosya yolunu raporlamasını isteyin. Örneğin: İşlem sonunda değiştirdiğin dosyaları, yaptığın değişiklikleri, doğrulama sonucunu ve varsa oluşan paket/dosya yolunu kısa şekilde raporla.

Daha güvenli bir çalışma akışı:

  1. Projeyi, klasörü veya problemi incele.
  2. Sorunu ve mevcut durumu raporla.
  3. Değişiklik gerekiyorsa ne yapacağını açıkla ve onay bekle.
  4. Yalnız gerekli değişikliği yap.
  5. Gerekliyse derle veya ilgili testi çalıştır.
  6. Komut/build sonucunu kontrol et.
  7. Oluşan dosya, paket veya sonucu doğrula.
  8. Kurulum, silme, servis işlemi, respring/reboot gibi riskli aşamalar için tekrar onay bekle.

Özellikle jailbreak geliştirmesinde bu yaklaşım gereksiz değişiklikleri, hatalı paket kurulumlarını ve API/token tüketimini azaltabilir. Aynı yöntem yalnız tweak geliştirmede değil; kaynak kod inceleme, log analizi, plist/yapılandırma kontrolü, Git proje analizi, build hatası araştırma ve genel terminal görevlerinde de kullanılabilir.


Komut Güvenliği

Paylaşılan scriptte SAFE_CMDS şeklinde izin verilen komutları kontrol eden bir yapı kullanılabilir. Ancak bunun gerçek bir güvenlik sandbox'ı olmadığını özellikle belirtmek gerekiyor.

  1. SAFE_CMDS tam bir sandbox değildir: Scriptte izin verilen komutların listelenmesi riski azaltmaya yardımcı olabilir ancak bunu aşılmaz bir güvenlik katmanı olarak değerlendirmeyin.
  2. shell=True kullanımına dikkat edin: Python tarafında subprocess.run(..., shell=True) kullanılıyorsa basit bir komut allowlist/filtreleme sistemi tek başına güçlü bir izolasyon sağlamaz.
  3. Riskli komutları kontrolsüz bırakmayın:rm, dpkg, chmod, chown, launchctl ve killall gibi komutlar yanlış kullanıldığında ciddi sonuçlara yol açabilir.
  4. Paket işlemlerinde onay isteyin: Modele Paket kurulumu yapmadan önce benden onay al. gibi açık bir sınır koyabilirsiniz.
  5. Dosya silme işlemlerini sınırlandırın:Hiçbir dosyayı benim onayım olmadan silme. şeklinde talimat vererek silme işlemlerinde durmasını sağlayabilirsiniz.
  6. Sistem ve servis işlemlerini onaya bağlayın:Respring, reboot, killall veya launchctl komutlarını onaysız çalıştırma. şeklinde bir kural belirleyebilirsiniz.
  7. Çalışma alanını sınırlandırın:Proje klasörü dışındaki dosyalarda değişiklik yapmadan önce bana sor. gibi bir talimat modelin proje dışına kontrolsüz şekilde çıkmasını önlemeye yardımcı olur.
  8. Root şifresini script veya prompt içine yazmayın: Root şifrenizi modele veya script içine hard-code etmeyin. Şifre gerektiren işlemler için script içerisinde doğrudan root şifresi saklamak güvenli bir yöntem değildir.

Önemli: AI'nın terminal erişimine sahip olması, verdiğiniz sınırların gerçek bir işletim sistemi sandbox'ı olduğu anlamına gelmez. Özellikle dosya silme, paket yönetimi, izin/sahiplik değiştirme, servis yönetimi, respring ve reboot gibi işlemlerde kullanıcı onayı kullanmak daha güvenlidir.


Sık Karşılaşılan Sorunlar

Permission denied chmod +x /var/jb/usr/bin/kimi

kimi: command not found which kimi echo $PATH
Script PATH dışında bulunuyorsa tam dosya yoluyla çalıştırabilirsiniz.

API HTTP 401 / 403
Genellikle API anahtarı, endpoint, hesap yetkisi veya sağlayıcı tarafındaki erişim ayarlarıyla ilgilidir.

Model tool çağırmıyor
Kullandığınız model tool/function calling desteklemiyor veya istemcinin gönderdiği tool formatı API sağlayıcısıyla uyumlu olmayabilir.

API cevapları yarıda kesiliyor MAX_TOKENS ve context ayarlarını kullandığınız modelin desteklediği sınırlar doğrultusunda kontrol edin.
Yüksek değer her zaman daha iyi değildir; maliyet ve context kullanımı da artabilir.

Tmux oturumu zaten mevcut
Yeni oturum oluşturmak yerine: tmux attach -t ai kullanın.
Mevcut oturumları görmek için: tmux ls

Tmux'a bağlanırken "sessions should be nested with care" benzeri uyarı alıyorum
Zaten bir tmux oturumunun içindeyken tekrar tmux attach çalıştırıyor olabilirsiniz. Önce mevcut oturumdan Ctrl+B → D ile ayrılın veya yeni terminal penceresinden bağlanın.

Ctrl+B → D yaptım, sohbet kapandı mı?
Hayır. Bu yalnızca tmux oturumundan ayırır. tmux ls ile oturumun açık olduğunu kontrol edip tmux attach -t ai ile geri dönebilirsiniz.

Ctrl+C yaptım, sohbet gitti mi?
Ctrl+C çalışan Python/AI sürecini durdurur. Script geçmişi JSON'a kaydettiyse istemciyi yeniden başlatıp eski sohbeti seçebilirsiniz. Ancak çalışan canlı süreç sona ermiş olur.

Derleme komutu timeout oldu
İstemcide terminal komutları için timeout kullanılıyorsa make package gibi uzun işlemler belirlenen süreyi aşabilir.
Bu durumda build logunu ve oluşan paketleri ayrıca kontrol edin.

Model aynı komutu sürekli tekrarlıyor
Tool-round sınırının devrede olduğundan emin olun: MAX_TOOL_ROUNDS = 40
Gerekirse işlemi durdurup modele mevcut hatayı yeniden değerlendirmesini söyleyin.



"Sınırsız AI" Değil

Bu sistem herhangi bir AI modelini "sınırsız" hale getirmez.

Kullandığınız API sağlayıcısının:

• API kotası • Token limiti • Context limiti • Rate limit'i • Kullanım politikaları • Ücretlendirmesi > aynen geçerlidir.

Buradaki asıl avantaj model sınırlarının ortadan kalkması değil, AI modelinin jailbreak'li cihazın terminali ve dosya sistemiyle tool calling üzerinden etkileşim kurabilmesidir.



Örnek Kullanım Senaryosu

Örneğin bir Theos projesinde derleme hatası aldığınızı düşünelim.

AI istemcisini proje klasöründe açıp:
Önce bu projeyi incele. Dosya yapısını, Makefile'ı ve kaynak kodu kontrol et. Hiçbir değişiklik yapmadan derleme hatasının olası nedenini raporla.
diyebilirsiniz.

Model gerekli dosyaları okuyup incelemesini yaptıktan sonra:
Tespit ettiğin problemi düzelt ve make package çalıştır. Başka dosyalarda gereksiz değişiklik yapma. Derleme başarılı olursa oluşan .deb dosyasının yolunu göster. Paketi KURMA ve benden onay bekle.
talimatını verebilirsiniz.

Akış:
AI ↓ Projeyi inceler ↓ Kaynak kodu okur ↓ Makefile'ı kontrol eder ↓ Sorunu tespit eder ↓ Gerekli değişikliği yapar ↓ make package ↓ Build çıktısını inceler ↓ .deb paketini bulur ↓ Kullanıcı onayını bekler
şeklinde ilerler.



Sonuç

Bu kurulumla jailbreak'li iPhone üzerinde doğrudan terminal tabanlı, tool-calling destekli bir AI geliştirme ortamı oluşturabilirsiniz.

NewTerm + Python + tmux + Theos + tool-calling destekli AI birleşimi özellikle:

• Tweak geliştirme • Kaynak kod inceleme • Derleme • Hata ayıklama • Log analizi • Paket oluşturma • Terminal otomasyonu

gibi işlemlerde oldukça kullanışlı hale geliyor.

Ancak AI'nın terminal erişimine sahip olduğunu unutmamak gerekiyor.

Özellikle sistem dosyalarını değiştirme, paket yükleme/kaldırma, dosya silme, izin değiştirme, servis yönetimi, respring ve reboot gibi işlemlerde insan onayı kullanılması en sağlıklı yöntemdir.

Rootless / RootHide üzerinde deneyenler kullandıkları jailbreak, iOS sürümü, AI modeli ve elde ettikleri sonuçları konu altında paylaşırsa güzel bir bilgi havuzu oluşturabiliriz.



⚠ SON UYARI – API ANAHTARI

Scripti forumda veya GitHub üzerinde paylaşmadan önce gerçek API anahtarınızı mutlaka kaldırın.

Paylaşılacak örnekte yalnızca:

API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

şeklinde placeholder bırakın.

Gerçek API anahtarınızın bulunduğu bir scripti veya ekran görüntüsünü kesinlikle paylaşmayın.
 
Son düzenleme:
Geri
Üst