3 คะแนน โดย GN⁺ 25 일 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Samsung Magician สำหรับ macOS ถูกติดตั้งเพื่อกำหนดค่าการเข้ารหัสฮาร์ดแวร์ แต่ทำงานไม่ปกติ และเมื่อพยายามลบก็ ไม่มีปุ่มลบอยู่เลย
  • เมื่อรัน สคริปต์ทำความสะอาด ภายในแอป จะเกิดข้อผิดพลาดมากกว่า 500 ครั้ง และไฟล์ส่วนใหญ่ยังคงอยู่เนื่องจากเปลี่ยนสิทธิ์ความเป็นเจ้าของไฟล์ไม่สำเร็จ
  • แม้จะลบโฟลเดอร์และไฟล์จำนวนมากด้วยตนเองแล้ว แต่ยังมี ไฟล์ส่วนขยายเคอร์เนล 8 ไฟล์ที่เหลืออยู่เพราะการป้องกัน SIP ทำให้ต้องเข้าโหมดกู้คืน
  • เพื่อปิดและเปิดใช้ SIP อีกครั้ง ต้อง บูตเข้าโหมดกู้คืนสองครั้ง และต้องผ่าน ขั้นตอนทั้งหมด 18 ขั้นตอน จึงจะลบได้หมด
  • แม้จะเป็นเพียงยูทิลิตีดิสก์ธรรมดา แต่กลับมี ความซับซ้อนเกินจำเป็นและองค์ประกอบที่ไม่จำเป็น จนทำให้ลบออกได้ยากมากในลักษณะของ bloatware

ปัญหาในกระบวนการลบ Samsung Magician

  • Samsung Magician ถูกติดตั้งเพื่อใช้ตั้งค่า ฟังก์ชันการเข้ารหัสฮาร์ดแวร์ ของ SSD ภายนอก แต่เนื่องจากทำงานไม่ปกติจึงจำเป็นต้องลบออก
  • เวอร์ชัน macOS ไม่มีทั้งปุ่มลบและความสามารถในการลากไปลบ, และมีสคริปต์ CleanupMagician_Admin_Mac.sh อยู่ในพาธลึกภายในแอป
  • เมื่อรันสคริปต์ดังกล่าว จะเกิดข้อผิดพลาด chown: Operation not permitted มากกว่า 500 ครั้ง ทำให้เปลี่ยนเจ้าของไฟล์ไม่สำเร็จและไม่สามารถลบไฟล์ได้
  • สคริปต์ไม่จัดการข้อผิดพลาด และรันซ้ำกับทุกไฟล์ก่อนจะจบการทำงาน
  • ผลลัพธ์คือไฟล์ส่วนใหญ่ยังคงค้างอยู่ในระบบ

ความพยายามลบด้วยตนเอง

  • จึงลองใช้คำสั่ง 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 และ โฟลเดอร์ Samsung Magician ใน Application Support เป็นต้น
  • แม้จะรัน sudo rm -rf ซ้ำหลายครั้ง แต่ ไฟล์ส่วนขยายเคอร์เนล 8 ไฟล์ ก็ยังลบไม่ได้

ขั้นตอนโหมดกู้คืนเพื่อลบไฟล์ส่วนขยายเคอร์เนล

  • ไฟล์ที่เหลืออยู่ถูกป้องกันโดย SIP(System Integrity Protection) จึงไม่สามารถลบได้ในโหมดปกติ
  • ต้อง ปิดเครื่อง Mac แล้วบูตเข้าโหมดกู้คืน, จากนั้นใช้คำสั่ง csrutil disable เพื่อปิด SIP แล้วรีบูต
  • เมื่อลบไฟล์ส่วนขยายเคอร์เนลแล้ว ต้องเข้าโหมดกู้คืนอีกครั้งและใช้คำสั่ง csrutil enable เพื่อเปิด SIP กลับ
  • กระบวนการนี้ต้องใช้ การบูตเข้าโหมดกู้คืน 2 ครั้ง รวมทั้งหมด 18 ขั้นตอน
  • เพียงเพื่อลบไฟล์ส่วนขยายเคอร์เนล 4 ไฟล์และไฟล์สำเนาของมัน ก็ยังต้อง รีบูตสองครั้งและเข้าโหมดกู้คืน

ความซับซ้อนเกินจำเป็นขององค์ประกอบภายใน Samsung Magician

  • ภายในโปรแกรมมี แอนิเมชัน PNG แบบเฟรมต่อเฟรม รวมอยู่ด้วย
    • ใช้ ไฟล์ PNG 150 ไฟล์ เพื่อแสดงสถานะ “Health: Good”
    • ยังมีชุด PNG แยกต่างหากสำหรับ “Health: Critical”, ธีม “Gamer” และแอนิเมชันระหว่างและหลังการสแกนลายนิ้วมือสำเร็จ
    • ส่งผลให้ยูทิลิตีดิสก์ที่ควรเรียบง่ายกลับมีไฟล์ PNG หลายร้อยไฟล์รวมอยู่ภายใน
  • องค์ประกอบเพิ่มเติมที่ถูกรวมมา
    • Electron framework: ฝัง Chromium engine ทั้งชุดเพียงเพื่อแสดงกราฟวงกลมพื้นที่ดิสก์
    • Squirrel framework: รวมฟังก์ชันอัปเดตอัตโนมัติ
    • ReactiveObjC, Mantle: เฟรมเวิร์กสำหรับการเขียนโปรแกรมแบบ reactive
    • รวม ฟอนต์เฉพาะของ Samsung หลายน้ำหนัก (200~800)
    • รวม ไฟล์ localization หลายภาษา (ญี่ปุ่น, จีน, เยอรมัน, ฝรั่งเศส, อิตาลี, รัสเซีย, โปรตุเกส, สเปน, อาหรับ, ฮินดี ฯลฯ)
    • รวม ภาพแบนเนอร์โฆษณา (banner_1.jpg~banner_5.jpg)
    • รวม เอกสารช่วยเหลือ 10 ภาษาและภาพหน้าจอมากกว่า 40 ภาพ
  • ด้วยองค์ประกอบเหล่านี้ โปรแกรมจึงถูกมองว่าเป็น ซอฟต์แวร์ที่เกินความจำเป็น (bloatware) ที่มี ภาระและความซับซ้อนโดยไม่จำเป็น

สรุป 18 ขั้นตอนของการลบ Samsung Magician ออกทั้งหมด

  1. ค้นหาปุ่มลบในแอป (ไม่มี)
  2. พบสคริปต์ทำความสะอาดภายใน app bundle
  3. รันสคริปต์แล้วเกิดข้อผิดพลาด 500 ครั้ง การลบล้มเหลว
    4~14. ลบด้วยตนเองซ้ำ ๆ จาก Application Support, Preferences, Caches, LaunchAgents, LaunchDaemons, Extensions, Receipts, Folders เป็นต้น
  4. ใช้คำสั่ง find เพื่อตรวจพบไฟล์ที่ถูกป้องกันโดย SIP จำนวน 8 ไฟล์
  5. ปิดเครื่อง Mac แล้วบูตเข้าโหมดกู้คืนเพื่อปิด SIP
  6. ลบไฟล์ส่วนขยายเคอร์เนลที่ถูกป้องกัน
  7. รีบูตเข้าโหมดกู้คืนอีกครั้งเพื่อเปิด SIP กลับ
  • โดยรวมแล้วต้องใช้ 18 ขั้นตอนและการรีบูตเข้าโหมดกู้คืน 2 ครั้ง ซึ่งเป็นขั้นตอนที่มากเกินไปสำหรับการลบยูทิลิตีดิสก์ธรรมดา
  • สรุปแล้ว Samsung Magician เป็น ซอฟต์แวร์ที่ลบออกได้ยากมากและมีโครงสร้างซับซ้อนเกินจำเป็น

1 ความคิดเห็น

 
GN⁺ 25 일 전
ความเห็นจาก Hacker News
  • ในยุค 90 เคยมีการพัฒนายูทิลิตีดิสก์ชื่อ PartitionMagic
    โปรแกรมนี้เป็นหนึ่งในเครื่องมือแรก ๆ ที่สามารถ ปรับขนาดพาร์ทิชันแบบไดนามิก ได้
    เลยคิดว่าชื่อผลิตภัณฑ์ของ Samsung อาจได้รับแรงบันดาลใจมาจากตรงนี้
    คิดถึงสมัยที่การติดตั้งคือแค่ copy . to / และการลบคือ delete / จบเลย

    • บน Mac ถ้าแอปทั่วไป ไม่ได้ติดตั้งด้วยการลากวางง่าย ๆ นั่นคือสัญญาณอันตรายชัดเจน
      ผมจะหลีกเลี่ยงแอปแบบนั้น แล้วหาแอปทางเลือกจากบริษัทที่เข้าใจ Mac จริง ๆ
      เมื่อก่อนตัวติดตั้ง Chrome เคยขอสิทธิ์ผู้ดูแลระบบแล้วทำให้ระบบ บูตไม่ขึ้น มาแล้ว
      ยูทิลิตีระบบหรือไดรเวอร์อาจเป็นข้อยกเว้น แต่ PartitionMagic นี่เยี่ยมมากจริง ๆ
    • ผู้ใช้ทั่วไปได้รับประโยชน์มากจาก “PartitionMagic”
      ผมคิดว่าน่าศึกษาว่าวัฒนธรรม ไม่รับฟังฟีดแบ็กเชิงลบ ภายในองค์กรนำไปสู่ปัญหาการรวมเทคโนโลยีหรือไม่
      “กระบวนการติดตั้ง 18 ขั้นตอน” เป็นปัญหาชัดเจน และดูเป็นเรื่องที่ Samsung ควรให้ความสำคัญภายในองค์กร
      ยังแซวต่ออีกว่าชื่อ “Magician” ดูเหมือนเป็นภาพเปรียบเทียบของ วัฒนธรรมองค์กร ของ Samsung ด้วย
    • เห็นพาดหัวแล้วผมคิดว่า “ยูทิลิตีดิสก์? แบบ PartitionMagic เหรอ?” แล้วก็ยินดีที่เป็นเรื่องนั้นจริง ๆ
      มันเป็นโปรแกรมที่ยอดเยี่ยมมาก
    • PartitionMagic ไม่ใช่แค่ยูทิลิตีธรรมดา แต่เป็น เครื่องมือระดับตำนานของยุคนั้น
    • เมื่อก่อน PartitionMagic อยู่ใน กล่องเครื่องมือประจำตัวของช่างเทคนิค ทุกคน
      มันเสถียรจนน่าเหลือเชื่อและช่วยประหยัดเวลาได้มาก
  • บน Mac ผมแค่พยายามจะ ลบ มันธรรมดา ๆ แต่กลับต้องเข้าโหมดกู้คืน → csrutil disable → รีบูต → ลบ kernel extension → เข้าโหมดกู้คืนอีกครั้ง → csrutil enable → รีบูตอีกรอบ…
    ทั้งหมดนี้ก็แค่เพื่อลบไฟล์ตาย ๆ ไม่กี่ไฟล์
    นี่เป็นความรับผิดชอบของ Apple ล้วน ๆ เพราะ Apple เป็นคนทำให้แม้แต่สิทธิ์ root ก็ไม่ใช่สิทธิ์ผู้ดูแลระบบเต็มรูปแบบอีกต่อไป

    • แต่ระบบนี้ เป็นของ Apple ไม่ใช่ของผู้ใช้
      จะซื้ออุปกรณ์ Apple ก็ไม่เป็นไร แต่พวกเขาไม่เคยสัญญาว่าจะเป็นระบบเปิด
      ต่อให้มีอัปเดตแล้วฟีเจอร์บางอย่างหายไป นั่นก็ไม่ใช่สิทธิ์ของคุณ เป็นแค่สิ่งที่เคยได้รับอนุญาตให้ทำเท่านั้น
    • ถ้ารำคาญก็แค่ ปิดการป้องกันนั้นทิ้งไว้ครั้งเดียว ก็พอ
      ผู้ใช้ระดับ power user ส่วนใหญ่ก็ยังเปิดไว้เป็นค่าเริ่มต้นเพราะเหตุผลด้านความปลอดภัย
    • ขั้นตอนแบบนี้แม้จะน่าหงุดหงิด แต่สุดท้ายก็เป็นมาตรการป้องกันเพื่อ ปกป้องจากพฤติกรรมอันตราย
    • นี่ทำงานตรงตามที่ออกแบบไว้ และจริง ๆ แล้วเป็น ทิศทางที่ดี
      root (uid=0) ไม่ควรสามารถแก้ไขส่วนลึกของระบบได้ตามใจ
      การเปลี่ยนแปลงระดับเคอร์เนลไม่ควรทำได้จากสิทธิ์ใช้งานทั่วไป และนี่คือแก่นของ System Integrity Protection
      ถ้ามีวิธีที่ดีกว่า ก็ควรเสนอให้ Apple แต่ไม่ควรมองข้ามชั้นป้องกันแบบนี้
  • ผมเคยแจกจ่ายผลิตภัณฑ์สำหรับ macOS และตอนถอนการติดตั้งจะเกิด ข้อผิดพลาดเกี่ยวกับถังขยะ
    ตอนนั้น Finder ยังไม่มี extension API ดังนั้นถ้าจะเพิ่มเมนู ต้อง รีเวิร์สเอนจิเนียร์ Finder และทำ code injection
    ผลคือ Finder เปิด app bundle ค้างไว้ตลอด ทำให้ลบไม่ได้จนกว่าจะรีสตาร์ต
    หลังจากนั้นพอมี Finder extension API ก็แก้ปัญหาได้ แต่ macOS เองก็มี ความซับซ้อนภายใน ในแบบของมัน

    • ตามที่ Raymond Chen บอก Shell extension คือสาเหตุที่ Explorer ล่มบ่อยที่สุด
      การที่ macOS ไม่มี API แบบนั้นในตอนแรก อาจกลับเป็น การตัดสินใจด้านการออกแบบที่ดี ก็ได้
    • macOS เป็น Unix-based เลยลบไฟล์ที่ยังเปิดอยู่ได้ จึงสงสัยว่า Finder ไปตรวจเช็กแยกเองหรือเปล่า
    • ปัญหาแบบนี้ไม่ใช่ความผิดของ macOS เท่าไร แต่เป็น ปัญหา file handle ที่เจอได้บ่อยใน Windows ด้วย
    • จริง ๆ แล้วแทนที่จะโทษ OS มันดูเหมือนเป็นผลจากแอปไป แตะต้องระบบในแบบผิดปกติ มากกว่า
    • ผมใช้ Mac มาเกิน 10 ปีแล้ว แต่แทบใช้ Finder แค่ไว้ กดปุ่ม AirDrop เท่านั้น
  • macOS มี ป๊อปอัปขอสิทธิ์ เต็มไปหมด ทั้งเรื่องกล้องหรือการทำงานเบื้องหลัง
    แต่กลับไม่ขัดขวางพาร์ตเนอร์ฝั่งอุตสาหกรรมที่เอาไฟล์ลบไม่ออกไปโปรยไว้ทั่วระบบ

    • ความปลอดภัยแบบนี้จริง ๆ แล้วเป็นแค่ละครที่ ลดอำนาจควบคุมของผู้ใช้ และเสริม ผลของการล็อกอินกับระบบนิเวศ ให้บริษัทมากขึ้น
      สุดท้ายผู้ใช้คุมได้น้อยลง ขณะที่ Apple/MS/Google มีอำนาจมากขึ้น
    • เมื่อก่อนยูทิลิตีสำหรับจัดการไฟล์ .pkg เคยมี ตัวเลือกลบผ่านบรรทัดคำสั่ง แต่ตอนนี้หายไปแล้ว
      ทุกวันนี้ผมเลยชอบเครื่องมือถอนการติดตั้งแบบ โอเพนซอร์ส อย่าง PearCleaner มากกว่า
    • บ่อยครั้งแม้แต่จุดประสงค์ของหน้าต่างขอสิทธิ์ก็ยังไม่ชัดเจน
      บางทีก็มีข้อความประหลาดอย่าง “ภาษาการเขียนโปรแกรมกำลังขอเข้าถึง” โผล่มา
  • ราว 10 ปีก่อนผมซื้อ Samsung TV รุ่นราคาประหยัดเครื่องหนึ่ง แล้วเจอ อาการหน่วงเสียงแบบแปรผัน
    บางวันภาพกับเสียงตรงกัน บางวันเสียงช้ากว่าไปหลายร้อยมิลลิวินาที
    ผมไม่อยากเชื่อเลยว่าเขากล้าขายสินค้าที่เป็นแบบนี้ และก็ตัดสินใจว่าจะไม่ซื้อของ Samsung อีก

    • มีคนแซวว่า ตอนนั้นเขาเอา Electron มาประมวลผลเสียงหรือเปล่า
  • อ่านแล้วเหมือนขำ ๆ แต่จริง ๆ มันคือ ความจริงที่น่าเศร้า
    ต่อไปซอฟต์แวร์ บวมเทอะทะ (bloat) ก็คงแย่ลงเรื่อย ๆ
    สงสัยว่าทำไมบริษัทใหญ่ ๆ ถึงหมกมุ่นกับเว็บเทคโนโลยีจนแม้แต่ยูทิลิตีดิสก์ยังให้ นักพัฒนาเว็บ มาทำ

    • เหตุผลคือ ฝ่าย HR ที่ไม่ใช่นักพัฒนา เป็นคนนำการจ้างงาน
      พวกเขาจ้างคนจาก คีย์เวิร์ดเว็บสแต็กที่กำลังฮิต มากกว่าความสามารถทางเทคนิคจริง
      สุดท้ายก็มีแต่คนทำ React เต็มไปหมด แต่ไม่มีคนที่ทำ ซอฟต์แวร์ให้เหมาะกับจุดประสงค์จริง เป็น
  • ส่วนตัวผม หลีกเลี่ยงผลิตภัณฑ์ Samsung อยู่แล้ว ซึ่งพอมองย้อนกลับไปก็เหมือนเลี่ยงปัญหาได้หลายอย่าง

    • ผมเห็น โฆษณาในเมนู บนทีวี Samsung ที่พ่อตาซื้อมา แล้วก็รู้สึกต่อต้านทันที
      เคยใช้เครื่องซักผ้า Samsung ที่ฮาวาย และมันมีโหมด DOWNLOAD สำหรับเชื่อมแอป
      มันใช้เวลาหลายนาทีในการเขย่าเสื้อผ้าเพื่อเซนส์ก่อนซัก และแทบไม่ใช้น้ำเลย
      แล้วยังมีตู้เย็น Samsung ที่เห็นในร้านซึ่ง แท็บเล็ตบนประตูค้าง อีก
      แค่สามประสบการณ์นี้ก็ทำให้ผมเลิกกับสินค้า Samsung ไปเลย
  • แค่จะโชว์ กราฟวงกลมพื้นที่ดิสก์ อันเดียว แต่กลับยัด เฟรมเวิร์ก Electron ทั้งชุด เข้ามา
    “RAM มันถูก และ RAM ที่ไม่ได้ใช้ก็คือของเสีย” — ฟังดูเหมือนเป็น ปรัชญาของผู้บริหาร Samsung

  • มีคำแนะนำถึงคนที่คิดจะติดตั้ง Samsung Magician เพื่ออัปเดตเฟิร์มแวร์
    จริง ๆ แล้วสามารถอัปเดตเฟิร์มแวร์ได้อย่าง ปลอดภัยโดยไม่ต้องใช้โปรแกรมนี้

    • แล้วก็มีคนถามต่อว่าทำอย่างไรแบบเจาะจง
  • ถ้าคุณรู้จักซอฟต์แวร์เกาหลี เรื่องทั้งหมดนี้ก็เข้าใจได้ทันที
    การทำปุ่มเป็น ภาพ JPEG เป็นเรื่องที่พบได้บ่อย