Sınıf Dolabındaki Telefonu Tabletten Kontrol Etmek: Termux, ADB ve scrcpy ile Okul Kurulumu
Okulumuzda her sabah telefonları toplayıp bir telefon kutusuna koymamız gerekiyor. Bu kutu daha sonra sınıfımızdan tam 3 kat aşağıda bulunan depoya götürülüyor ve telefonlarımızdan yaklaşık 8 saat boyunca uzak kalıyoruz.
Aslında bu benim için çok büyük bir problem değil. Sosyal medya bağımlısı biri değilim; telefonumda Instagram, TikTok, Facebook gibi uygulamalar yüklü bile değil. Keyfi ekran süremi olabildiğince azaltmaya çalışıyorum.
Fakat beni rahatsız eden ve bu sistemi kurmaya iten çok haklı bir sebebim vardı: Okulda tablet kullanımına izin veriliyordu ve ben teneffüslerde, beden eğitimi veya müzik dersi gibi boş vakitlerde projelerim üzerinde çalışıyordum. Ancak tablet bazı durumlarda tek başına yeterli olmuyordu. Örneğin:
- Geliştirdiğim bir Android uygulamasını gerçek bir telefonda test etmem gerektiğinde,
- Hesaplarıma giriş yaparken telefonuma gelen iki adımlı doğrulama (OTP) kodlarına ihtiyaç duyduğumda.
Telefonum 3 kat aşağıdaki depodayken bu işleri yürütmem imkansızdı. Ben de bu duruma yaratıcı bir mühendislik çözümü üretmeye karar verdim.
Çözüm Mimarisi: Termux, ADB ve scrcpy
Aklıma gelen fikir şuydu: Telefonumu bir şekilde uzaktan kontrol edebilir ve ekranını tabletime yansıtabilir miydim? Kısa bir araştırmadan sonra şu altyapıyı kurdum:
- Termux (Tablet): Android üzerinde Linux terminal ortamı sağlayan Termux uygulamasını tabletime yükledim.
- Kablosuz ADB (Telefon): Telefonumda geliştirici seçeneklerinden "Kablosuz Hata Ayıklama" (Wireless ADB) özelliğini başlattım.
- scrcpy (Yansıtma): Tabletimdeki Termux içerisine kablosuz ADB üzerinden telefona bağlanıp, telefonun ekranını tabletten kontrol etmemi sağlayan açık kaynaklı harika scrcpy yazılımını kurdum.
Bu sayede telefonumun ekranı tamamen tabletimde bir pencere olarak açılacak, klavye ve fare/dokunmatik hareketlerimle telefonu sanki elimdeymiş gibi yönetebilecektim.
Karşıma Çıkan Engeller ve Çözümler
Kurulum kağıt üzerinde harika görünüyordu ancak uygulamaya geçtiğimde ciddi kısıtlamalarla karşılaştım.
1. Ağ ve Mesafe Kısıtlaması
ADB protokolünün çalışabilmesi için her iki cihazın da aynı yerel ağda (LAN) bulunması gerekiyordu. Okulun Wi-Fi ağı güvenlik ve izolasyon nedeniyle cihazların birbirini görmesini engelliyordu.
Bu sorunu telefonumun mobil verisini açıp Hotspot (Kişisel Erişim Noktası) yayını yaparak ve tabletimle bu yayına bağlanarak çözdüm. Ancak yeni bir sorun doğdu: Telefon resmi kutuda ve 3 kat aşağıdaki depodayken mesafe çok uzak olduğu için Wi-Fi sinyali ulaşılamaz hale geliyordu.
Geçici Çözüm: Telefonu kutuya teslim etmek yerine, sınıfın hemen kenarında bulunan kişisel dolabımda saklamaya başladım. Dolap sınıfta olduğu için bağlantı sorunsuz çalışıyordu. Tabii bu yöntemin tam anlamıyla güvenli ve okul kurallarına uygun olmadığının farkındaydım, bu yüzden daha iyi bir çözüm aramaya devam ettim.
2. Değişken Port Problemi
Android'deki kablosuz ADB güvenlik sebebiyle her açılıp kapandığında veya bağlantı koptuğunda rastgele bir port numarası alır (örneğin 192.168.43.1:39485 gibi).
Telefonum dolabın içindeyken bağlantı koptuğunda, telefon ekranına bakıp yeni portun ne olduğunu görmem imkansızdı. Bu da sistemi tamamen kullanışsız hale getiriyordu.
Çözüm: Telefona fiziksel erişimim yokken bile bağlanabilmek için kablosuz ADB portunu tek bir portta sabitlemem gerekiyordu. Termux üzerinden telefonun kablosuz ADB dinleme portunu 5555 (klasik ADB portu) olarak sabitleyen küçük bir script hazırladım. Böylece port değişse bile tabletimden her zaman aynı adrese bağlanabildim:
adb connect 192.168.43.1:5555
scrcpy
Gelecek Yazı: Mesafe Sınırlarını Aşmak (Cliffhanger)
Dolaptaki telefon sorunumu çözmüştü ama hala riskliydi ve telefonumu gerçekten depoya teslim etmek zorunda kalırsam ne yapacaktım?
Telefonum 3 kat aşağıda, tamamen farklı bir katta ve resmi telefon kutusunun içindeyken bile tabletimden sanki yanımdaymış gibi bağlanabilmeyi başardım. Mesafe sınırını tamamen ortadan kaldıran ve internet üzerinden (WAN) güvenli tünelleme ile çalışan bu gelişmiş çözümümü bir sonraki yazımda tüm teknik detaylarıyla anlatacağım. Takipte kalın!