- 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
Tool Calling • Dosya Erişimi • Terminal Komutları • Theos • Tmux
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.
- 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.
- 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.
- Model gerekli aracı seçer: Script modele temel olarak
run_commandveread_filearaçlarını tanımlar.read_filecihazdaki dosyaları okumak,run_commandise izin verilen terminal komutlarını çalıştırmak için kullanılır. - Cihaz üzerinde işlem yapılır: Model ihtiyaç duyduğunda
pwd,ls,grep,cat,make package,dpkg,gitveyapython3gibi işlemleri çağırabilir. - 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.
- 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.
- 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:
- Python 3: AI istemcisini çalıştırmak için gereklidir. Cihazdaki gerçek konumu
which python3ile kontrol edebilirsiniz. - 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 tmuxile kontrol edebilirsiniz. - Theos + toolchain: Yalnızca tweak geliştirmek veya AI'ya proje derletmek istiyorsanız gereklidir. Çalışan bir Theos/toolchain kurulumu bulunmalıdır.
- Yardımcı terminal araçları: Kullanım amacına göre
git,curl,wget,make,dpkg,clang,ldid,grep,unzipvetargibi araçlara da ihtiyaç duyabilirsiniz. - 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.
- Konu ekindeki kimi.py dosyasını indirin.
- Filza ile dosyayı
/var/mobile/klasörüne taşıyın. Dosyanın yolu bu aşamadan sonra/var/mobile/kimi.pyolmalıdır. /var/mobile/kimi.pydosyasını Filza'nın metin editörüyle açın. Dosyanın başındakiAPI_KEY = "xxx"alanında bulunanxxxdeğerini kendi API anahtarınızla değiştirin.- Kullanacağınız modeli
MODELsatırından seçin. ÖrnekteMODEL = "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. - Farklı bir API sağlayıcısı kullanıyorsanız
ENDPOINTdeğerini de sağlayıcınızın kullandığı endpoint ile değiştirin. Kimi/Moonshot kullanıyorsanız örnekteki uygun endpoint'i kullanabilirsiniz. - Düzenlemeleri kaydettikten sonra dosyaya çalıştırma izni verin:
chmod +x /var/mobile/kimi.py - Artık istemciyi terminalden
python3 /var/mobile/kimi.pykomutuyla başlatabilirsiniz.
Her seferinde
python3 /var/mobile/kimi.py yazmak yerine iki kısa alias tanımlayabilirsiniz.- Normal kullanım için
kimikomutunu tanımlayın. Siz herhangi bir isim kullanabilirsiniz. (gpt,qwen,claude vb.)
echo 'alias kimi="python3 /var/mobile/kimi.py"' >> ~/.zshrc - Tmux ile doğrudan başlatmak için
kimi-tmuxkomutunu 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 - Yeni alias'ları mevcut terminal oturumuna yükleyin:
source ~/.zshrc
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.- Yeni sohbet başlatma: Script açıldığında
0. Yeni Sohbet Başlatseçeneğini kullanın. - 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. - Aktif sohbet geçmişini temizleme: İstemci içinde
/clear-hkullanabilirsiniz. Bu işlem aktif geçmişi temizleyip yeni sohbet başlatır. - İstemciden çıkma:
/quitveyaCtrl+Ckullanabilirsiniz.
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.
- Tmux oturumunu başlatın: Terminalde
tmux new -s aiçalıştırın. Ardından aynı oturum içindekimikomutuyla AI istemcisini açın. - Sohbeti kapatmadan tmux'tan ayrılın:
Ctrl+Btuşlarına basıp bırakın, ardındanDtuşuna basın. KısacaCtrl+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. - Açık oturumları kontrol edin:
tmux lskomutuyla mevcut tmux oturumlarını görebilirsiniz. Listedeaigörünüyorsa oturum hâlâ açıktır. - Aynı canlı sohbete geri dönün:
tmux attach -t aiveya kısa biçimiyletmux a -t aikullanın. Bu işlem JSON geçmişinden yeni bir sohbet açmaz; hâlâ çalışan aynı Python sürecine bağlanır. - AI istemcisini sonlandırın: İstemci içindeyken
/quitveyaCtrl+Ckullanabilirsiniz.Ctrl+CPython sürecine SIGINT gönderir; o sırada uzun bir API isteği veya terminal komutu çalışıyorsa mevcut işlemi de kesebilir. - Tmux oturumunu normal kapatın: AI istemcisinden çıktıktan sonra shell'de
exityazın. Son tmux penceresi de kapanırsa oturum sona erer. - Oturumu dışarıdan zorla kapatın: Gerektiğinde
tmux kill-session -t aikullanabilirsiniz.tmux kill-serverise 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.
- Ö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. - İ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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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.
- 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. - 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ışı:
- Projeyi, klasörü veya problemi incele.
- Sorunu ve mevcut durumu raporla.
- Değişiklik gerekiyorsa ne yapacağını açıkla ve onay bekle.
- Yalnız gerekli değişikliği yap.
- Gerekliyse derle veya ilgili testi çalıştır.
- Komut/build sonucunu kontrol et.
- Oluşan dosya, paket veya sonucu doğrula.
- 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.- 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.
- 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. - Riskli komutları kontrolsüz bırakmayın:
rm,dpkg,chmod,chown,launchctlvekillallgibi komutlar yanlış kullanıldığında ciddi sonuçlara yol açabilir. - Paket işlemlerinde onay isteyin: Modele
Paket kurulumu yapmadan önce benden onay al.gibi açık bir sınır koyabilirsiniz. - 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. - 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. - Ç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. - 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/kimikimi: command not found
which kimi echo $PATHScript 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 lsTmux'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 = 40Gerekirse 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: