3 puan yazan GN⁺ 25 일 전 | 1 yorum | WhatsApp'ta paylaş
  • macOS için Samsung Magician, donanım şifrelemesini ayarlamak amacıyla kurulmuştu; ancak düzgün çalışmadığı için kaldırılmak istendiğinde silme düğmesinin hiç bulunmadığı görüldü
  • Uygulamanın içindeki temizleme betiği çalıştırıldığında 500'den fazla hata oluşuyor ve dosya sahipliği değiştirilemediği için dosyaların çoğu yerinde kalıyor
  • Elle onlarca klasör ve dosya silinmesine rağmen, SIP koruması nedeniyle 8 çekirdek uzantısı dosyası kaldı ve kurtarma moduna girilmesi gerekti
  • SIP'yi devre dışı bırakıp yeniden etkinleştirmek için iki kez kurtarma modunda önyükleme yapıp toplam 18 adımlık bir prosedür izlemek gerekiyor ve ancak bu şekilde tam kaldırma mümkün oluyor
  • Basit bir disk yardımcı programı olmasına rağmen, aşırı karmaşıklık ve gereksiz bileşenler yüzünden kaldırılması son derece zor olan bir bloatware türü olarak değerlendiriliyor

Samsung Magician kaldırma sürecindeki sorunlar

  • Samsung Magician, harici SSD'nin donanım şifreleme özelliğini ayarlamak için kurulmuştu; ancak düzgün çalışmadığı için kaldırılması gerekti
  • macOS sürümünde silme düğmesi ya da sürükleyip silme işlevi hiç yok ve uygulamanın derin bir iç yolunda CleanupMagician_Admin_Mac.sh betiği yer alıyor
  • Bu betik çalıştırıldığında 500'den fazla chown: Operation not permitted hatası oluşuyor, dosya sahipliği değiştirilemiyor ve silme işlemi gerçekleşmiyor
  • Betik hataları ele almadan tüm dosyalar üzerinde tekrar tekrar çalışıp sonra sonlanıyor
  • Sonuç olarak dosyaların büyük kısmı sistemde olduğu gibi kalıyor

Elle silme denemesi

  • Bunun üzerine rm -rf komutu kullanılarak Samsung ile ilgili klasör ve dosyalar doğrudan elle silinmeye çalışıldı
    • Application Support, Preferences, Caches, LaunchAgents, LaunchDaemons, Extensions, Logs gibi çeşitli yollarda elle silme yapıldı
  • Ardından find / -iname "*samsung*magician*" komutuyla kontrol edildiğinde hâlâ 27 artık dosya bulunduğu görüldü
    • /Library/StagedExtensions/ ve /System/Volumes/Data/Library/StagedExtensions/ içindeki çekirdek uzantısı dosyaları
    • /private/var/db/receipts/ içindeki paket makbuz dosyaları
    • /private/var/folders/.../C/ içindeki önbellek işlem dosyaları
    • Crash Reporter listesi ile Application Support içindeki Samsung Magician klasörü gibi kalıntılar
  • sudo rm -rf komutu tekrar tekrar çalıştırıldı, ancak 8 çekirdek uzantısı dosyası yine de silinemedi

Çekirdek uzantısı dosyalarını silmek için kurtarma modu prosedürü

  • Kalan dosyalar SIP (System Integrity Protection) tarafından korunduğu için normal modda silinemiyor
  • Mac kapatılıp kurtarma modunda açılıyor, ardından csrutil disable komutuyla SIP devre dışı bırakılıyor ve sistem yeniden başlatılıyor
  • Çekirdek uzantısı dosyaları silindikten sonra tekrar kurtarma moduna girilip csrutil enable komutuyla SIP yeniden etkinleştiriliyor
  • Bu süreçte 2 kez kurtarma modunda önyükleme ve toplam 18 adımlık prosedür gerekiyor
  • Sadece dört çekirdek uzantısı dosyası ve bunların kopyalarını silmek için bile iki yeniden başlatma ve kurtarma moduna giriş gerekiyor

Samsung Magician'ın iç yapısındaki aşırı karmaşıklık

  • Programın içinde kare kare PNG animasyonları bulunuyor
    • “Health: Good” durumunu göstermek için 150 PNG dosyası kullanılıyor
    • “Health: Critical”, “Gamer” teması, parmak izi işleminin ilerleme ve başarı animasyonları için de ayrı PNG setleri bulunuyor
    • Sonuç olarak basit bir disk yardımcı programının içinde yüzlerce PNG dosyası yer alıyor
  • Ayrıca şu bileşenler de eklenmiş
    • Electron framework: disk alanı pasta grafiğini göstermek için tüm Chromium motorunu gömüyor
    • Squirrel framework: otomatik güncelleme işlevi içeriyor
    • ReactiveObjC, Mantle: reaktif programlama için framework'ler
    • Birden çok kalınlıkta Samsung'a özel yazı tipleri (200~800)
    • Çok dilli yerelleştirme dosyaları (Korece, Japonca, Çince, Almanca, Fransızca, İtalyanca, Rusça, Portekizce, İspanyolca, Arapça, Hintçe vb.)
    • Banner reklam görselleri (banner_1.jpg~banner_5.jpg)
    • 10 dilde yardım belgeleri ve 40'tan fazla ekran görüntüsü
  • Bu yapı nedeniyle program, gereksiz yük ve karmaşıklık taşıyan aşırı şişirilmiş bir yazılım (bloatware) olarak değerlendiriliyor

Samsung Magician'ı tamamen kaldırmanın 18 adımlık özeti

  1. Uygulama içinde silme düğmesi arandı (yok)
  2. Uygulama paketi içinde temizleme betiği bulundu
  3. Betik çalıştırıldıktan sonra 500 hata oluştu, silme başarısız oldu
    4~14. Application Support, Preferences, Caches, LaunchAgents, LaunchDaemons, Extensions, Receipts, Folders vb. konumlarda elle silme tekrarlandı
  4. find komutuyla SIP korumalı 8 dosya doğrulandı
  5. Mac kapatıldı, kurtarma modunda açıldı ve SIP devre dışı bırakıldı
  6. Korumalı çekirdek uzantısı dosyaları silindi
  7. Kurtarma modunda yeniden başlatılıp SIP tekrar etkinleştirildi
  • Genel olarak 18 adım ve kurtarma modunda 2 yeniden başlatma gerekiyor; basit bir disk yardımcı programını kaldırmak için aşırı bir prosedür söz konusu
  • Sonuçta Samsung Magician, kaldırılması son derece zor ve gereksiz yere karmaşık bir yapıya sahip bir yazılım olarak öne çıkıyor

1 yorum

 
GN⁺ 25 일 전
Hacker News yorumları
  • 90'larda PartitionMagic adlı bir disk yardımcı programı geliştirmiştim
    Bu program, bölümleri dinamik olarak yeniden boyutlandırabilen ilk araçlardan biriydi
    Samsung'un ürün adının buradan ilham almış olabileceğini düşünüyorum
    Kurulumun sadece copy . to /, kaldırmanın da delete / olduğu günleri özlüyorum

    • Mac'te sıradan bir uygulama sürükleyerek kurulmuyorsa bu büyük bir uyarı işaretidir
      Böyle uygulamalardan uzak durur, Mac'i gerçekten anlayan bir şirketin alternatifini ararım
      Eskiden Chrome yükleyicisinin yönetici izni isteyip sistemi önyüklenemez hale getirdiği de olmuştu
      Sistem yardımcı programları ya da sürücüler istisna ama PartitionMagic gerçekten harikaydı
    • “PartitionMagic” sayesinde bireysel kullanıcılar çok fayda gördü
      Bir organizasyon içindeki olumsuz geri bildirim kültürünün teknik entegrasyon sorunlarına yol açıp açmadığını incelemeye değer buluyorum
      “18 adımlı kurulum süreci” açıkça bir sorun ve Samsung içinde öncelikli ele alınması gereken bir konu gibi görünüyor
      “Magician” adının Samsung'un kurum kültürünü mecazi olarak yansıttığına dair bir şaka da eklenmiş
    • Başlığı görünce “'disk utility'? PartitionMagic gibi bir şey mi?” diye düşündüm, tam da bundan bahsedildiğini görmek hoşuma gitti
      Gerçekten harika bir programdı
    • PartitionMagic basit bir yardımcı program değil, o dönemin simge araçlarından biriydi
    • Eskiden her teknisyenin vazgeçilmez araç çantasında PartitionMagic bulunurdu
      İnanılmaz derecede kararlıydı ve çok zaman kazandırırdı
  • Mac'te sadece silme işlemi yapmak istedim ama kurtarma moduna gir → csrutil disable → yeniden başlat → kernel extension'ı sil → tekrar kurtarma moduna gir → csrutil enable → yine yeniden başlat...
    Sadece birkaç ölü dosyayı silmeye çalışırken bütün bunları yapmak zorunda kaldım
    Bu tamamen Apple'ın suçu. Root yetkisini bile artık tam yönetici yetkisi olmaktan çıkaran Apple oldu

    • Ama sistem Apple'ın mülkü, kullanıcının değil
      Apple cihazı satın almakta sorun yok ama hiçbir zaman açık bir sistem vaat etmediler
      Bir güncellemeyle bir özellik kaybolursa bu bir hak kaybı değil, sadece önceden izin verilen bir şeyin kaldırılmasıdır
    • Uğraştırıyorsa o korumayı bir kez kapatıp öyle bırakabilirsin
      Çoğu ileri düzey kullanıcı bile güvenlik nedeniyle varsayılan olarak açık tutuyor
    • Bu prosedür can sıkıcı olsa da sonuçta kötü niyetli eylemlere karşı koruma için var olan bir emniyet mekanizması
    • Bu, tasarlandığı gibi çalışıyor ve hatta iyi bir yönde
      Root'un (uid=0) sistemin derin kısımlarını keyfine göre değiştirememesi gerekir
      Kernel düzeyindeki değişiklikler gündelik yetkilerle yapılamamalı; System Integrity Protection'ın özü de bu
      Daha iyi bir yöntem varsa Apple'a önerilmeli ama bu tür korumalar görmezden gelinmemeli
  • Eskiden macOS için bir ürün dağıtıyorduk ve kaldırma sırasında çöp kutusu hatası çıkıyordu
    O zaman Finder için bir extension API yoktu; menü eklemek istiyorsanız Finder'ı reverse engineer edip kod enjekte etmeniz gerekiyordu
    Bunun sonucunda Finder uygulama bundle'ını sürekli açık tutuyor, yeniden başlatılana kadar silme işlemi yapılamıyordu
    Daha sonra Finder extension API'si gelince sorun çözüldü ama macOS'un da kendine özgü iç karmaşıklığı var

    • Raymond Chen'e göre Shell extension'lar Explorer çökmelerinin en yaygın nedenidir
      macOS'ta böyle bir API'nin olmaması aslında iyi bir tasarım kararı olmuş olabilir
    • macOS Unix tabanlı olduğu için açık dosyalar da silinebiliyor; acaba Finder ayrıca kontrol mü yapıyordu diye merak ediyorum
    • Bu sorun macOS'tan çok, Windows'ta da sık görülen bir file handle sorunu gibi
    • Aslında bunu OS'ten çok, uygulamanın sistemi alışılmadık biçimde kurcalamasının sonucu gibi görüyorum
    • 10 yıldan fazladır Mac kullanıyorum ama Finder'ı neredeyse sadece AirDrop düğmesine tıklamak için kullanıyorum
  • macOS, kamera ya da arka planda çalışma gibi izin isteme pencereleriyle dolup taşıyor ama
    iş sanayi ortaklarının sistemin dört bir yanına silinemeyen dosyalar saçmasına gelince bunu engellemiyor

    • Bu güvenlik yaklaşımı aslında kullanıcının kontrolünü azaltan ve şirketlerin lock-in etkisini güçlendiren bir gösteriden ibaret
      Sonuçta kullanıcı daha az kontrol sahibi oluyor, Apple/MS/Google ise daha fazla yetki kazanıyor
    • Eskiden .pkg dosyalarını işleyen yardımcı programda komut satırından kaldırma seçeneği vardı ama artık yok
      Bu günlerde PearCleaner gibi açık kaynak kaldırma araçlarını tercih ediyorum
    • İzin isteme pencerelerinin amacının ne olduğu bile çoğu zaman belirsiz
      “Programlama dili erişim istiyor” gibi garip ifadeler bile çıkabiliyor
  • Yaklaşık 10 yıl önce uygun fiyatlı bir Samsung TV almıştım ve değişken ses gecikmesi sorunu vardı
    Bazı günler senkron tutuyordu, bazı günlerse ses yüzlerce ms gecikiyordu
    Böyle bir ürünün satılmış olmasına inanamadım ve bir daha Samsung ürünü almamaya karar verdim

    • Acaba o zaman ses işleme kısmını Electron ile mi yapmışlardı diye şaka yapıyor
  • Okurken komik ama aslında trajik bir gerçeklik
    Yazılımdaki şişkinliğin (bloat) gelecekte daha da kötüleşeceğini düşünüyorum
    Büyük şirketlerin neden web teknolojilerine bu kadar takıntılı olup bir disk yardımcı programını bile web geliştiricilerine emanet ettiğini merak ediyorum

    • Sebebi, işe alımı yazılım dışı HR ekiplerinin yönlendirmesi
      Teknik yetkinlikten çok gözde web stack anahtar kelimelerine bakarak insan alıyorlar
      Sonunda her yer React geliştiricisi doluyor ama gerçekten amaca uygun yazılım yapmayı bilen kimse kalmıyor
  • Ben şahsen Samsung ürünlerinden kaçınıyorum ve görünen o ki bu sayede çeşitli sorunlardan da kaçınmış oldum

    • Kayınpederimin aldığı Samsung TV'de menü reklamları görünce anında soğudum
      Hawaii'de bir Samsung çamaşır makinesi kullanmıştım; uygulamaya bağlanmak için DOWNLOAD modu vardı
      Yıkamadan önce kıyafetleri sallayıp algılamak için dakikalar harcıyor, suyu ise neredeyse hiç kullanmıyordu
      Bir mağazada gördüğüm Samsung buzdolabında da kapaktaki tablet donmuştu
      Bu üç deneyimden sonra Samsung ürünlerinden tamamen vazgeçtim
  • Sırf bir disk alanı pasta grafiği göstermek için bütün Electron framework'ünü dahil etmişler
    “RAM ucuzdur, kullanılmayan RAM israftır” — sanki Samsung yöneticilerinin felsefesi gibi

  • Samsung Magician'ı firmware güncellemesi için kurmayı düşünenlere bir tavsiye veriliyor
    Aslında bu program olmadan da güvenli şekilde firmware güncellemesi yapmak mümkün

    • Bunun nasıl yapılacağına dair ayrıntı sorusu geliyor
  • Kore yazılımını bilen biri için tüm bunlar anlaşılır
    Düğmelerin JPEG görselleri olması gayet olağan bir durumdur