MacBook M2 işlemcili bilgisayarda UYAP Doküman Editörü üzerinden e-imza atmaya çalışırken Java kilitleniyor, Rosetta ile denedim sonuç aynı, nasıl çözerim?
2 Cevap
MacBook Apple Silicon (M1/M2/M3 - ARM64) işlemcili sistemlerde UYAP Doküman Editörü'nün imzalama aşamasında kilitlenmesi, tipik bir ikili mimari (binary architecture) ve JNI (Java Native Interface) kütüphane uyuşmazlığı sorunudur. UYAP Doküman Editörü bir Java Swing uygulamasıdır; ancak imzalama butonuna bastığınız anda akıllı kart çipine ulaşabilmek için işletim sistemindeki yerel PKCS#11 dinamik kütüphanesini (TÜBİTAK AKİS için libakisp11.dylib veya SafeSign için libaetpkss.dylib) belleğe yüklemeye (dlopen) çalışır.
Eğer bilgisayarınızda yerel ARM64 Java (örneğin ARM64 Zulu OpenJDK veya Apple Silicon için derlenmiş Java) çalışıyorsa ve sisteminizdeki AKİS sürücüsü eski Intel x86_64 derlemesi ise (veya tam tersi bir durum söz konusuysa), 64-bit ARM Java sanal makinesi x86_64 mimarisindeki bir dinamik kütüphaneyi kendi adres uzayına bağlayamaz. Bu durum yakalanamayan yerel bir JNI kilitlenmesine (thread deadlock) yol açar ve kullanıcı arayüzü tamamen donar. Rosetta ile sadece uygulamanın başlatıcısını açmak, arka planda çağrılan Java Virtual Machine (JVM) mimarisini değiştirmediği sürece bu kilidi çözmez.
Sorunu kesin olarak çözmek için iki farklı mimari yapılandırma yolundan birini tercih edebilirsiniz:
- Yöntem 1: Yerel Apple Silicon (ARM64) Mimarisine Geçiş (En Kararlı Yöntem):
- Eski AKİS ve kart sürücülerini tamamen kaldırın. TÜBİTAK Kamu SM veya e-imza sağlayıcınızın destek sayfasından macOS Apple Silicon (M1/M2 ARM64) için özel olarak derlenmiş güncel AKİS 2.0+ paketini indirip kurun. Bu paket,
/Library/OpenSC/lib/libakisp11.dylibveya/usr/local/lib/libakisp11.dylibyoluna yerel ARM64 ikili dosyasını yerleştirir. - Bilgisayarınıza yerel Apple Silicon uyumlu Azul Zulu JRE 8 (ARM64) sürümünü kurun.
- Terminal üzerinden
file /usr/local/lib/libakisp11.dylibvefile $(which java)komutlarını çalıştırarak her iki dosyanın da Mach-O 64-bit arm64 çıktısı verdiğinden emin olun. Mimariler eşitlendiğinde UYAP kilitlenmeden imzayı atacaktır.
- Eski AKİS ve kart sürücülerini tamamen kaldırın. TÜBİTAK Kamu SM veya e-imza sağlayıcınızın destek sayfasından macOS Apple Silicon (M1/M2 ARM64) için özel olarak derlenmiş güncel AKİS 2.0+ paketini indirip kurun. Bu paket,
- Yöntem 2: Uçtan Uca Rosetta 2 (x86_64) Emülasyonu:
- Eğer sağlayıcınız henüz yerel ARM64 PKCS#11 sürücüsü yayınlamadıysa, Java'nın kendisini de Rosetta altında çalıştırmalısınız.
- Azul Zulu'nun macOS x86 64-bit JRE 8 sürümünü indirin.
- Terminal uygulamasını açın ve UYAP Editör'ü bizzat x86_64 mimarisine zorlayarak şu komutla çalıştırın:
arch -x86_64 /Library/Java/JavaVirtualMachines/zulu-8.jre/Contents/Home/bin/java -jar /Applications/UyapEditor.jar
- macOS Akıllı Kart Servis İzinleri: Sistem Ayarları > Gizlilik ve Güvenlik altından UYAP Editör ve Java'ya gerekli disk ve cihaz erişim izinlerini verin. Terminal'de
pcsctestkomutunu çalıştırarak akıllı kart okuyucunun işletim sistemininpcscdarka plan servisi tarafından tanındığını doğrulayın.
Mevzuat ve Hukuki Nitelik: 5070 Sayılı Elektronik İmza Kanunu'nun 4. maddesi ile 6100 Sayılı Hukuk Muhakemeleri Kanunu'nun (HMK) 445. maddesi uyarınca; adli bilişim altyapısı olan UYAP üzerinde oluşturulan dava dilekçeleri, tensip zaptları ve itiraz evrakları ancak 'Güvenli Elektronik İmza' ile imzalandığında ıslak imza ile eşdeğer hukuki bağlayıcılık kazanır. İstemci taraflı mimari kütüphane kilitlenmeleri nedeniyle imzalanamayan evraklar, yasal hak düşürücü sürelerin ve itiraz sürelerinin kaçırılması riskini doğurur. Doğru mimari derlemenin kullanılması sistem güvenilirliğini ve imza geçerliliğini teminat altına alır.
Meslektaşlarımın M2 Mac cihazlarda duruşma öncesi sıklıkla karşılaştığı bu acil durum için alternatif bir adli çözüm aktarmak isterim. Eğer UYAP Editör içindeki Java kilitlenmesini duruşma ya da süre saati öncesi çözemediyseniz:
Evrakınızı UYAP Editör'de hazırlayıp .udf formatında kaydedin. Ardından Safari veya Chrome üzerinden UYAP Avukat Portal'a giriş yapın. Portal üzerinde 'Doküman Gönder' adımında web tabanlı imzalama istemcisi (ArkSigner / UYAP İmza Uygulaması) devreye girer. Bu harici imzalama servisleri genellikle arka planda yerel port dinlediği için yerel editörün Swing kilitlenmesine takılmadan .udf dosyanızı doğrudan portal üzerinden imzalamanıza olanak tanır.