3 ポイント 投稿者 GN⁺ 25 일 전 | 1件のコメント | WhatsAppで共有
  • macOS向け Samsung Magician はハードウェア暗号化の設定のためにインストールされたが、正常に動作せず、削除を試みても 削除ボタンが存在しない
  • アプリ内部の クリーンアップスクリプト実行時に500回以上のエラー が発生し、ファイル所有権の変更に失敗して大半のファイルが残る
  • 手動で数十個のフォルダとファイルを削除したが、SIP保護のためカーネル拡張ファイル8個が残り、リカバリモードへの移行が必要
  • SIPの無効化と再有効化のために リカバリモードでの起動を2回実施 し、合計 18ステップの手順 を経てようやく完全削除が可能
  • 単なるディスクユーティリティであるにもかかわらず、過度な複雑さと不要な構成要素 により削除が極めて難しい bloatware 的な形態 である

Samsung Magician削除プロセスの問題点

  • Samsung Magician は外付けSSDの ハードウェア暗号化機能の設定 のためにインストールされたが、正常に動作せず削除が必要になった
  • macOS版には 削除ボタンもドラッグで削除する機能もまったくなく、アプリ内部の深いパスに CleanupMagician_Admin_Mac.sh スクリプトが含まれている
  • そのスクリプトを実行すると 500回以上の chown: Operation not permitted エラー が発生し、ファイル所有権の変更に失敗して削除が行われない
  • スクリプトはエラーを処理せず、すべてのファイルに対して繰り返し実行した後に終了する
  • 結果として大半のファイルがシステムにそのまま残る

手動削除の試行

  • そこで rm -rf コマンド を使い、Samsung関連のフォルダやファイルを直接削除しようとした
    • Application Support、Preferences、Caches、LaunchAgents、LaunchDaemons、Extensions、Logs など複数のパスで手動削除を実施
  • その後 find / -iname "*samsung*magician*" コマンドで確認した結果、依然として 27個の残存ファイル が存在した
    • /Library/StagedExtensions/ および /System/Volumes/Data/Library/StagedExtensions/カーネル拡張ファイル
    • /private/var/db/receipts/パッケージレシートファイル
    • /private/var/folders/.../C/キャッシュプロセスファイル
    • Crash Reporter の一覧 や Application Support 内の Samsung Magician フォルダ など
  • sudo rm -rf コマンドを繰り返したが、8個のカーネル拡張ファイル は依然として削除されなかった

カーネル拡張ファイル削除のためのリカバリモード手順

  • 残ったファイルは SIP(System Integrity Protection) によって保護されており、通常モードでは削除できない
  • Macをシャットダウンしてからリカバリモードで起動 し、csrutil disable コマンドでSIPを無効化した後に再起動する
  • カーネル拡張ファイルを削除した後、再びリカバリモードに入り csrutil enable コマンドでSIPを再有効化する
  • この過程で リカバリモードでの起動2回、合計18ステップの手順 が必要になる
  • たった4個のカーネル拡張ファイルとその複製を削除するためだけに 2回の再起動とリカバリモードへの移行 が求められる

Samsung Magician内部構成の過度な複雑さ

  • プログラム内部には フレーム単位のPNGアニメーション が含まれている
    • 「Health: Good」の状態を表示するために 150個のPNGファイル が使われている
    • 「Health: Critical」、"Gamer" テーマ、指紋認証の進行および成功アニメーションにもそれぞれ別個のPNGセットが存在する
    • 結果として単純なディスクユーティリティに数百個のPNGファイルが含まれている
  • 追加で含まれる構成要素
    • Electronフレームワーク: ディスク容量の円グラフを表示するためにChromiumエンジン全体を内蔵
    • Squirrelフレームワーク: 自動更新機能を含む
    • ReactiveObjCMantle: リアクティブプログラミング用フレームワーク
    • Samsung専用フォント の複数ウェイト(200〜800)を同梱
    • 多言語ローカライズファイル を同梱(日本語、中国語、ドイツ語、フランス語、イタリア語、ロシア語、ポルトガル語、スペイン語、アラビア語、ヒンディー語など)
    • バナー広告画像 (banner_1.jpgbanner_5.jpg) を同梱
    • 10言語のヘルプ文書と40枚以上のスクリーンショット を同梱
  • こうした構成により、このプログラムは 不要な負荷と複雑さ を持つ 過剰なソフトウェア(bloatware) と評価される

Samsung Magician完全削除の18ステップ要約

  1. アプリ内の削除ボタンを探す(存在しない)
  2. アプリバンドル内部のクリーンアップスクリプトを発見
  3. スクリプト実行後に500回のエラーが発生し、削除失敗
    4〜14. Application Support、Preferences、Caches、LaunchAgents、LaunchDaemons、Extensions、Receipts、Folders などで手動削除を繰り返す
  4. find コマンドで8個のSIP保護ファイルを確認
  5. Macをシャットダウン後、リカバリモードで起動してSIPを無効化
  6. 保護されたカーネル拡張ファイルを削除
  7. リカバリモードで再起動し、SIPを再有効化
  • 全体として 18ステップと2回のリカバリモード再起動 が必要であり、単純なディスクユーティリティの削除としては過剰な手順が求められる
  • 結果としてSamsung Magicianは 削除が極めて難しく、不必要に複雑な構造を持つソフトウェア である

1件のコメント

 
GN⁺ 25 일 전
Hacker News のコメント
  • 90年代に PartitionMagic というディスクユーティリティを開発していた
    このプログラムは、パーティションを動的に調整できる最初期のツールの1つだった
    サムスンの製品名はここから着想を得たのかもしれないと思った
    インストールが単に copy . to /、アンインストールが delete / で終わっていた時代が懐かしい

    • Macで普通のアプリが単にドラッグでインストールできないなら、それは大きな警告サインだ
      そういうアプリは避けて、Macをきちんと理解している会社の代替を探すだろう
      以前、Chrome のインストーラーが管理者権限を要求し、システムを起動不能にしたこともあった
      システムユーティリティやドライバは例外だが、PartitionMagic は本当に素晴らしかった
    • 「PartitionMagic」のおかげで個人ユーザーは大いに助けられた
      組織内の否定的フィードバック文化が技術統合の問題につながるのか、探る価値があると思う
      「18段階のインストール手順」は明らかに問題で、サムスン内部で優先課題として扱うべき事案に見える
      「Magician」という名前がサムスンの企業文化を比喩的に表しているようだ、という冗談も添えていた
    • タイトルを見て「『ディスクユーティリティ』? PartitionMagic みたいなものか?」と思ったが、まさにその話でうれしかった
      本当に素晴らしいソフトだった
    • PartitionMagic は単なるユーティリティではなく、その時代を代表するツールだった
    • 昔はあらゆる技術者の必携ツールボックスに PartitionMagic が入っていた
      信じられないほど安定していて、多くの時間を節約してくれた
  • Macで単に削除したいだけなのに、復旧モードに入る → csrutil disable → 再起動 → カーネル拡張を削除 → もう一度復旧モードに入る → csrutil enable → また再起動……
    ただ死んだファイルをいくつか消すためだけに、こんな手順を踏まなければならなかった
    これは完全にAppleの責任だ。root 権限ですら完全な管理者権限ではないようにしたのは Apple なのだから

    • だがシステムはユーザーのものではなく Apple のもの
      Apple 製デバイスを買うのは構わないが、彼らがオープンなシステムを約束したことはない
      アップデートで機能が消えても、それは権利ではなく、単に許されていた機能にすぎない
    • 面倒なら、その保護機能を一度オフにしておけばいい
      ほとんどのパワーユーザーも、セキュリティ上の理由で普段は有効にしている
    • こうした手順は面倒ではあるが、結局は悪意ある行為から守るための安全装置だ
    • これは設計どおりに動作しているのであり、むしろ良い方向
      root(uid=0) がシステムの深い部分を好き勝手に変更できないようにすべきだ
      カーネルレベルの変更は日常的な権限では不可能であるべきで、これが System Integrity Protection の核心だ
      もっと良いやり方があるなら Apple に提案すべきだが、こうした保護機構を無視してはならない
  • 以前 macOS 向け製品を配布していたが、アンインストール時にゴミ箱エラーが発生した
    当時の Finder には拡張 API がなかったため、メニューを追加するには Finder をリバースエンジニアリングしてコード注入する必要があった
    その結果 Finder がアプリバンドルを開いたままにし続け、再起動するまで削除できなかった
    その後 Finder 拡張 API ができて解決したが、macOS にもそれなりの内部的な複雑さがある

    • Raymond Chen によれば、Shell 拡張は Explorer クラッシュの最も一般的な原因だ
      macOS にその API がなかったのは、むしろ良い設計判断だったのかもしれない
    • macOS は Unix ベースなので、開いているファイルでも削除できるはずだが、Finder が別途チェックしていたのだろうかと気になる
    • こうした問題は macOS のせいというより、Windows でもよくあるファイルハンドルの問題
    • 実際には OS を責めるより、アプリがシステムに異常な干渉をした結果のように見える
    • 10年以上 Mac を使っているが、Finder はほぼAirDrop ボタンをクリックするためにしか使っていない
  • macOS はカメラやバックグラウンド実行などの権限要求ポップアップはあふれているのに、
    肝心の産業パートナーがシステムのあちこちに削除できないファイルをばらまくのは防がない

    • こうしたセキュリティは実質的にユーザーの制御力を下げ、企業のロックイン効果を強めるための芝居にすぎない
      結果としてユーザーの権限は減り、Apple/MS/Google はより大きな権限を持つ
    • 昔は .pkg ファイルを扱うユーティリティにコマンドライン削除オプションがあったが、今は消えている
      最近は PearCleaner のようなオープンソースのアンインストールツールを好んで使っている
    • 権限要求ダイアログの目的自体が曖昧なことも多い
      「プログラミング言語がアクセスを要求しています」のような奇妙な文言が出ることもある
  • 10年ほど前に低価格帯のSamsung TVを買ったが、可変オーディオ遅延があった
    合う日もあれば、数百 ms 遅れる日もあった
    こんな製品を売ったことが信じられず、二度とサムスン製品は買わないと決めた

    • 当時、もしかして Electron で音声処理をしていたのではないか、という冗談を言っていた
  • 読んでいると笑えるが、実際には悲劇的な現実
    今後もソフトウェアの肥大化(bloat) はさらに悪化していきそうだ
    なぜ大企業が Web 技術に執着し、ディスクユーティリティですらWeb 開発者に任せるのか疑問だ

    • その理由は、非開発者の HR が採用を主導しているからだ
      彼らは技術力よりも流行の Web スタックのキーワードを見て人を採る
      結局 React 開発者ばかりになり、実際に目的に合ったソフトウェアを作れる人がいなくなる
  • 個人的にサムスン製品を避けているが、その結果いろいろな問題を回避できてきたわけだ

    • 義父が買ったサムスン製 TV でメニュー広告を見て、即座に嫌悪感を覚えた
      ハワイでサムスン製洗濯機を使ったが、アプリ接続用の DOWNLOAD モード があった
      洗濯前に服を振って検知するのに数分を費やし、水はほとんど使わなかった
      また店で見たサムスン製冷蔵庫は、ドアに付いたタブレットがフリーズしていた
      この3度の経験で、サムスン製品は完全に見限った
  • 「ディスク使用量の円グラフ」を1つ表示するために、Electron フレームワーク丸ごとを入れたのか
    「RAM は安い、使われていない RAM は無駄だ」――サムスン経営陣の哲学のようだ

  • Samsung Magician をファームウェア更新のためにインストールしようとしている人への助言
    実はこのプログラムがなくても安全にファームウェア更新は可能だ

    • 具体的な方法を尋ねる質問が続いた
  • 韓国製ソフトウェアを知っていれば、これもすべて理解できる
    ボタンがJPEG 画像になっていることも珍しくない