3P by GN⁺ | ★ favorite | 댓글 1개
  • Universal Android Debloater GUI는 기존 UAD project를 Rust로 완전히 다시 작성한 도구로, 불필요하거나 잘 알려지지 않은 Android 시스템 앱을 제거해 프라이버시와 배터리 성능 개선을 목표로 함
  • 루트 없이 시스템 패키지를 제거/비활성화하고 복원/활성화할 수 있으며, 멀티 유저·멀티 디바이스·선택 항목 내보내기/가져오기·작업 로그를 지원함
  • 패키지는 가능한 한 문서화되어 있어 삭제 가능 여부를 판단하도록 돕지만, 부팅에 필요한 필수 시스템 패키지를 제거하면 부트루프가 발생할 수 있음
  • 루트 없는 기기에서는 시스템 앱을 실제로 완전히 제거할 수 없으며, OEM 업데이트 후 일부 “제거된” 시스템 앱이 다시 설치될 수 있어 도구를 다시 실행해야 함
  • 지원 목록은 Google/Facebook/Amazon/Microsoft, AOSP, OEM, 통신사, Qualcomm/Mediatek 등을 포함하며, 제조사와 통신사별 debloat list가 별도로 제공됨

Universal Android Debloater GUI의 목적

  • Universal Android Debloater GUI는 UAD projectRust로 완전히 재작성한 프로젝트임
  • 목표는 불필요하고 잘 알려지지 않은 시스템 앱을 제거해 프라이버시와 배터리 성능을 개선하는 것임
  • 시스템 앱 제거는 공격 표면을 줄여 보안 개선에도 기여할 수 있음
  • 프로젝트는 아직 초기 개발 단계이며, 이슈 확인과 기여를 권장함

안전성과 주요 경고

  • 사용은 본인 책임이며, 휴대폰에 발생할 수 있는 일에 대해 프로젝트는 책임지지 않음
  • 패키지는 삭제 가능 여부를 더 잘 이해할 수 있도록 가능한 한 문서화되어 있음
  • 가장 나쁜 문제는 부팅에 필요한 필수 시스템 패키지를 제거해 부트루프가 발생하는 경우임
    • 약 5회 부팅 실패 후 휴대폰은 자동으로 복구 모드로 재부팅됨
    • 이 경우 공장 초기화를 수행해야 함
    • 먼저 백업을 해야 함
  • 이 소프트웨어로 기기를 brick할 수는 없다고 명시함
  • 루트 없이 시스템 앱은 실제로 완전히 제거될 수 없으며, 자세한 내용은 FAQ를 참고해야 함

지원 기능

  • 시스템 패키지 Uninstall/DisableRestore/Enable 지원
  • 업무 프로필 앱 같은 멀티 유저 지원
  • 선택 항목을 uad_exported_selection.txt로 내보내기/가져오기 가능
  • 여러 휴대폰을 동시에 연결하는 멀티 디바이스 지원
  • 모든 작업이 로그로 남아 사용자가 수행한 작업을 잊지 않도록 함

Debloat 목록 범위

  • Universal Debloat Lists는 다음 범주를 포함함
    • GFAM: Google, Facebook, Amazon, Microsoft
    • AOSP
    • 제조사(OEM)
    • 통신사
    • Qualcomm, Mediatek, 기타
  • 제조사 debloat list는 Asus, LG, Google, Fairphone, Huawei, Motorola, Nokia, OnePlus, Oppo, Realme, Samsung, Sony, Tecno, Unihertz, Vivo/iQOO, Xiaomi, ZTE 등을 지원함
  • Archos, Blackberry, Gionee, iQOO, HTC, TCL, Wiko는 제조사 목록에서 아직 체크되지 않음
  • 통신사 debloat list는 다음 국가와 통신사를 포함함
    • France: Orange, SFR, Free, Bouygues
    • USA: T-Mobile, Verizon, Sprint, AT&T
    • Germany: Telekom
    • UK: EE

사용 절차와 제약

  • 먼저 FAQ를 읽고 데이터를 백업해야 함
  • 스마트폰에서 Developer Options를 활성화하고, 개발자 패널에서 USB Debugging을 켜야 함
  • 설정에서 OEM 계정 연결을 해제해야 함
    • OEM 계정 패키지를 삭제하면 휴대폰이 사용자의 신원을 더 이상 연결하지 못해 잠금 화면에서 막힐 수 있음
  • ADB 설치가 필요함
    • Linux는 배포판별 패키지 관리자로 android-sdk-platform-tools 또는 android-tools를 설치함
    • macOS는 Homebrewandroid-platform-tools를 설치함
    • Windows는 android platform tools를 내려받아 압축을 풀고 PATH에 추가하거나 UAD를 같은 디렉터리에서 실행해야 함
    • Windows에서는 기기용 USB drivers를 설치하고 adb devices로 감지 여부를 확인함
  • 운영체제용 최신 UAD GUI 릴리스는 releases에서 받을 수 있음
    • 기본 Vulkan 백엔드 버전이 실행되지 않을 때만 opengl 버전을 사용함
  • 중국 휴대폰 사용자는 일부 기본 앱 제거에 AOSP list가 필요할 수 있음
    • 특히 Xiaomi와 Huawei 같은 중국 제조사가 자체 수정·폐쇄소스 앱에 AOSP 패키지 이름을 사용해왔기 때문임
  • OEM이 휴대폰에 업데이트를 배포하면 일부 “제거된” 시스템 앱이 다시 설치될 수 있어 이 소프트웨어를 다시 실행해야 함

기여

  • 프로젝트는 커뮤니티 프로젝트이며, 기여 방법은 How to contribute에 정리되어 있음

댓글과 토론

Hacker News 의견들
  • 최근 친척에게 중급 Samsung 휴대폰을 정가로 사줬는데, 기본 탑재 앱이 믿기 어려울 정도로 많았음
    여러 소셜 네트워크와 쇼핑 앱이 미리 깔려 있었고, Google 앱 묶음을 어설프게 중복하는 Samsung 앱도 잔뜩 있었음
    초기 설정 과정 전체가 최대한 많은 데이터를 빼내도록 설계된 다크 패턴으로 가득해서, 일반 사용자가 뭔가 놓치지 않고 통과하긴 어려워 보였음

    • 처음 Samsung 휴대폰을 썼을 때, 약 2주 뒤에 내가 어떤 앱에 입력하든 모든 단어가 제3자에게 수집·전송되고 있다는 걸 알게 됨
      그 회사의 개인정보 처리방침에는 관심사, 사회생활, 지능 수준과 학력 추정에 쓰고, “시장 조사” 등을 위해 데이터를 판매한다고 적혀 있었음
      휴대폰에 기본으로 들어 있는 키보드가 문자와 이메일을 제3자에게 읽히게 할 거라고는 사용자가 의심하기 어려움
      우연히 키를 길게 눌러 “about samsung keyboard” 창을 띄우고, 거기서 개인정보 처리방침을 따라가다 어떤 회사로 키 입력을 보내는지 확인한 뒤에야 알게 됨
      바로 오픈소스 키보드로 바꿨고, 모든 사용자의 입력을 모은 덕분인지 Samsung 키보드의 맞춤법 검사와 예측 입력은 정말 좋긴 했음
    • 미국 한정 현상일 수도 있음
      최근 세 대는 EU에서 판매된 Samsung S 시리즈였는데, “제3자 기본 탑재 앱”이라고 볼 만한 건 Facebook과 MS Office 정도였고 둘 다 쉽게 제거 가능했음
      Samsung 대체 앱은 취향 문제라서, Google “원본”보다 더 쓰기 편하다고 느꼈음
      다른 브랜드 휴대폰도 가볍게 써본 기준으로는 Samsung이 소프트웨어와 사용자 경험 면에서 Android 선택지 중 꽤 좋은 편임
    • 기본 키보드에 Grammarly가 박혀 있어서 동의 없이 모든 키 입력을 보내고 있다는 걸 알고 화가 났음
      1200달러짜리 플래그십 기기에서 이런 건 창피한 일임
    • Sony 휴대폰에는 Microsoft SwiftKey 키보드가 기본 설치돼 있었음
      “Android 기기에서 Microsoft SwiftKey Account 사용을 선택하지 않았다면, Microsoft SwiftKey가 생성한 모든 개인·언어 데이터는 기기에 로컬로 저장되며 전송되지 않는다”는 설명이 있음
      활성화된 언어 사이를 자연스럽게 전환해 줘서 쓰고 있고, “meet me at Østerport Station” 같은 문장도 부드럽게 입력 가능함
    • Samsung 플래그십은 하드웨어가 가장 좋고, OneUI도 TouchWiz 시절에 비하면 아주 좋아졌다고 느낌
      다만 기본 탑재 앱이 문제라서, Samsung 휴대폰을 사면 가장 먼저 pm uninstall –k ––user 0 를 실행함
      링크된 도구도 같은 일을 더 사용하기 쉽게 해 주지만, Samsung 계정이나 Knox 관련 항목처럼 커스텀 ROM을 올리지 않으면 여전히 제거할 수 없는 것들이 있음
  • 이 프로젝트는 1년째 유지보수되지 않고 있음
    최신 유지보수 포크는 https://github.com/Universal-Debloater-Alliance/universal-an...에서 볼 수 있음

  • 이 프로젝트에서 쓰는 Android 대응 명령은 대략 이렇음
    dpkg --get-selections: adb shell pm list packages | sort
    dpkg -r : adb shell pm uninstall -k --user 0
    상태 표시줄 아이콘을 숨기려면 버전에 따라 adb shell dumpsys activity service SystemUIService를 실행하고, “icon slots: ”를 찾아 이름을 확인한 뒤 adb shell settings put secure icon_blacklist battery,wifi,clock, ...처럼 설정할 수 있음
    이 명령은 기존 차단 목록을 새 목록으로 덮어씀

    • 이런 명령으로 할 수 있는 문서화되지 않은 설정이 많고, 개발자들이 자기 필요 때문에 넣어둔 것들이 있음
      예를 들어 Google의 Android와 Pixel 핵심 팀 대부분은 Wi-Fi와 데이터 토글을 따로 쓰는 걸 알지만, 실제 제품에는 둘을 합친 빠른 설정 타일 하나만 내보냈음
      그래도 숨은 설정으로 두 타일 모드를 되살릴 수 있는데, Google에서 왜 이런 일이 자주 생기는지 모르겠음
  • 몇 주 전부터 모바일 기기용 오픈소스 자유 소프트웨어 운영체제 개발은 어떻게 된 건지 생각하고 있었음
    GrapheneOS, CalyxOS 같은 운영체제가 왜 Alphabet Inc가 만든 휴대폰에서만 쓰이고 다른 기기에서는 안 되는지, 예전 Linux식 개발처럼 다양한 하드웨어 변형을 모아 거의 모든 장치에 드라이버와 지원을 제공하는 운영체제는 어디 갔는지 의문임
    모바일 컴퓨터 하드웨어 산업이 너무 겁먹고 잠겨 있어서, 사용자가 자기 기기를 소유하지 못하고 다른 주체가 소유한 기기를 쓰는 꼴이 된 건지 궁금함
    아니면 여러 기기를 지원하는 운영체제가 없는 데 다른 이유가 있는 건지, 내가 뭔가 놓친 건지도 모르겠음

    • 모바일에는 오픈소스 운영체제가 없다고 봐야 함
      GrapheneOS나 CalyxOS도 필수 드라이버에 접근할 수 없어서, 원본 이미지에서 바이너리 덩어리를 가져와 함께 배포함
      그래서 이런 프로젝트들은 닫힌 소스 커널 드라이버로 가득하고, 그 바이너리 드라이버를 쓰기 위해 특정 커널 버전에 묶임
      결국 오픈소스 버전이 할 수 있는 최대치는 다른 “시스템 앱” 묶음을 고르는 정도이고, 실제로는 테마 바꾸기보다 조금 나은 수준에 가깝다는 주장임
      특정 기기 X를 지원하려면 루트 취약점으로 바이너리 덩어리를 확보하면 되고, 그다음엔 그 기기에 배포할 수 있음
    • 예를 들어 https://androidauthority.com/grapheneos-3287030/에서 “Pixel 전용 요구사항을 감수하더라도”라고 하는데, 그걸 전혀 감수할 생각이 없음
      https://grapheneos.org/faq#supported-devices도 받아들일 수 없음
      기억이 맞다면 Alphabet/Google은 Android 운영체제를 배포하도록 자금을 받았고, 한때 하드웨어 휴대폰도 내놓다가 사라진 뒤 다른 회사들이 이어가게 했고, 나중에 다시 나타나 다른 제조사들의 노력을 이용해 앞서나간 것처럼 보임
      그런데 운영체제가 Google 휴대폰에만 있고 다른 기기에는 없다면 이게 정상인지 모르겠고, 남의 노력을 비겁하게 가로챈 것처럼 느껴짐
      https://calyxos.org/#Devices의 기기 목록은 예전 http://web.archive.org/web/20230605161332/https://calyxos.or...보다 조금 늘었지만, OpenWRT, HyperWRT, DD-WRT, Tomato 같은 것과는 비교가 안 됨
      그래서 GrapheneOS나 CalyxOS를 신뢰하지 않고, Wi-Fi 라우터에서 여러 오픈소스 펌웨어가 다양한 기기를 지원했던 것과 비슷한 흐름을 휴대폰에서도 보고 싶음
  • 공장 초기화한 Xiaomi에서 이런 목록 중 하나를 적용해 봤다가 재부팅 후 바로 망가졌음
    로그인 직후 즉시 충돌해서 사용할 수 없었고, 결국 고치긴 했지만 조심해야 한다는 걸 배웠음
    한 모델에서는 필수인 항목이 다른 모델에서는 기본 탑재 앱일 수 있음

    • 어떤 패키지를 제거했을 때 그런 문제가 났는지 로그를 공유해 줄 수 있는지 궁금함
  • 왜 이게 필요한지 모르겠음
    휴대폰 설정에서 바로 앱을 비활성화할 수 있는데, 이 도구가 그보다 뭘 더해 주는지 불명확함
    FAQ에는 사용자 프로필에서 추가로 “제거”하고 캐시·데이터를 삭제한다는 얘기가 있지만, 그게 정확히 무슨 뜻인지 잘 모르겠음

    • 일부 제조사 기본 탑재 앱은 Android 사용자 인터페이스에서는 비활성화할 수 없지만, ADB로는 비활성화 가능함
    • Android TV에서는 ADB 없이는 광고가 가득한 기본 런처를 비활성화하거나 제거할 수 없음
    • 더 빠르고, 초기 설정 전에 실행할 수 있으며, 표준 패키지 인터페이스로는 제거할 수 없는 항목도 지울 수 있음
  • 루팅하지 않은 Amazon Fire 태블릿을 ADB로 정리하고 커스터마이즈하는 비슷한 GUI 도구가 있음
    https://xdaforums.com/t/windows-linux-tool-fire-toolbox-v33-...

  • 왜 소스에서 완전히 깨끗한 Android를 컴파일해 휴대폰에 직접 설치할 수 없는지 궁금함
    무엇이 그걸 막고 있는 건가

    • 일반적으로는 가능함
      다만 부트로더 잠금 해제가 가능한 휴대폰이어야 하고, 제조사가 많은 부분의 소스를 제공하지 않기 때문에 제조사의 정확히 같은 이미지로는 만들 수 없음
      하드웨어가 지원된다면 LineageOS 같은 커뮤니티 유지보수 운영체제를 설치할 수는 있음
      단점은 Google Pay 같은 앱이 더 이상 동작하지 않을 수 있다는 건데, Google의 SafetyNet 증명 시스템을 통과해야 하기 때문임
      우회 방법이 있기도 하지만 항상 불안정한 해킹처럼 보였음
    • 닫힌 소스 장치 드라이버 때문임
      휴대폰 시장은 90년대 데스크톱 시장과 비슷함
    • x86 PC 플랫폼에서는 부팅 과정과 하드웨어 탐색이 잘 표준화돼 있고, 운영체제가 실행 중이어도 커널을 덮어쓸 수 있어서 가능함
      PC가 아닌 컴퓨터에서는 이런 것들이 보장되지 않음
    • Google Pixel 휴대폰에서는 그걸 할 수 있는 것으로 알고 있음
      쉽다는 뜻은 아니지만 소스 코드는 다 있음
    • 하드웨어 지원 때문임
  • Android 기기에서 기본 탑재 앱을 제거하려면 직접이든 간접이든 ADB가 유일한 선택지임
    예전에 쓰던 싸구려 10인치 Mediacom 태블릿도 어떤 도구를 써도 루팅이 안 됐는데, 불필요한 서비스와 항목을 제거하는 건 ADB로 쉬워졌음
    다만 꽤 위험해서 결국 Google 서비스는 더 이상 못 돌리지만, 이메일을 쓰게 설득하지 못한 7~8명과 연락할 Whatsapp은 되고 F-Droid에서 내려받기도 가능해서 내겐 충분함

  • Android 기기의 알기 어려운 패키지들에 대해, 각각이 실제로 무엇을 하는지와 비활성화·제거했을 때 영향이 무엇인지 알려주는 최신 목록을 어디서 찾을 수 있는지 궁금함
    특히 겉보기엔 무관해 보이는 패키지 하나를 제거했는데 다른 것이 망가지는 식의 패키지 의존성이 알고 싶음