나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2024-12-13 14:49:01

Android/문제점

Stagefright에서 넘어옴

파일:상위 문서 아이콘.svg   상위 문서: Android
1. 개요2. 지적 재산권(특허) 문제3. 버전 업그레이드 문제4. 마켓의 질과 손쉬운 불법 복제 문제
4.1. 마켓의 악성 앱
4.1.1. 악성 코드가 내장된 애플리케이션
4.1.1.1. 시스템 업데이트 사칭 소프트웨어 판매
5. 보안 및 개인정보 관련 문제
5.1. Stagefright5.2. 전체 디스크 암호화 관련5.3. 저장소 샌드박스5.4. 변경 불가능한 Widevine ID
6. 구글에 관한 문제
6.1. 구글의 사후 보장과 법적 책임 문제6.2. 구글의 독점
7. 좁아지는 선택지(한국 한정)8. 소프트웨어와 하드웨어의 부조화
8.1. 파편화: 다양한 플랫폼에서 오는 문제
8.1.1. 하드웨어의 파편화8.1.2. 소프트웨어의 파편화8.1.3. ESD(마켓)의 파편화
8.2. 안드로이드를 수정하는 이유8.3. 안드로이드 트레블(Android Treble)8.4. 기타 문제8.5. 버그 목록

1. 개요

Google스마트폰/태블릿 컴퓨터운영체제 Android에서 크게 이슈가 되는 문제에 대해 정리한 페이지. 해결된 문제도 있고 해결되지 않은 문제도 있는데, 기술적인 문제는 버전업을 통해서 해결되고 있으나 몇몇은 운영 체제의 고질적인 문제이거나 후발 주자 입장에서 나오는 특허 문제이며 이런 문제들은 단기간에 해결될 것으로 보이지 않는다. 안드로이드의 성능이 떨어지는 문제는 아니고, 누구나 쉽게 접근해서 입맛대로 개량하고 여기저기 탑재할 수 있는 개방적 플랫폼이 필연적으로 가지고 있을 수 밖에 없는 한계인 셈.

2. 지적 재산권(특허) 문제

안드로이드는 커널부터 SDK까지 소스가 공개된 오픈소스 운영체제로 어떤 제조사든 가져다 사용할 수 있다. 하지만 안드로이드의 몇몇 부분은 다른 회사의 특허가 사용되기 때문에 안드로이드 기기를 제조 및 판매를 하기 위해서는 특허료를 지불해야 한다.

안드로이드는 오픈소스라고 하지만 그 소스 공개라는 것은 안드로이드의 기반이 되는 AOSP을 의미하는 것으로 안드로이드는 엄연히 저작권과 상표권이 있는 운영체제이다. 즉 AOSP를 마음대로 이용할 수 있으나 'Android'라는 이름으로 기기를 판매하려면 당연히 구글의 인증이 필요하다. 인증 조건은 기기 사양이다. 구글 인증을 받아야 Google Play 등의 구글 앱들이 포함된 GApps를 사전 탑재하여 출시할 수 있다. 단 중국 정부 방침에 따라 중국 내수용은 구글 앱들이 포함된 GApps를 사전 탑재하여 중국 내에서 출시하지 못한다.

Java의 경우 오라클 측에서 Java API 37개 소스 코드를 무단 복제하여 사용했다는 이유로 구글을 상대로 소송을 제기하면서 오라클와 구글의 Java 저작권 분쟁이 시작되었다. 1심에서는 오라클의 패소로 끝났으나 오라클 측이 항소하여 항소심에서 승소하였고 구글은 불복하여 연방대법원에 상고하여 구글의 오라클 자바 API 사용이 공정 이용(Fair Use)에 해당되는지에 대해 심리가 필요하다는 연방대법원의 판단에 의해 사건은 지방법원으로 파기환송되었다.

이후 공정 이용에 대한 소송에서 1심에서 오라클이 패소했으나 항소심에서 또 다시 구글이 패소하였다. 구글이 다시 불복해 연방대법원에 상고하였다. 2021년 4월 5일에 연방 대법원은 구글의 오라클 Java API 저작물 사용이 공정 이용에 해당된다고 판단하여 판결이 뒤집어져 구글의 승소로 최종 확정되었다.

Java 외에 마이크로소프트사 특허가 사용되어 제조사들에게 로얄티를 받았었지만[1] 2018년 이후 마소의 안드로이드 관련 특허는 로얄티 프리화 되어 무료화 되었다.[2]

2011년 당시 광고 회사인 구글은 안드로이드를 무료로 뿌리고 광고(구글 검색, 앱 광고)로 수익을 얻는데 안드로이드를 좀더 널리 퍼뜨리려 수익을 더 늘리려면 제조사에 안드로이드의 이점을 어필할 필요가 있었다. 그 중 하나가 사용료가 없다는 것인데, 특허료 명목으로 한 푼 두 푼 떼기 시작하면 보급형 단말기의 이윤이 그만큼 줄어든다.

구글 측도 이에 대한 대응을 꾸준히 하고 있는데 킷캣부터는 안드로이드의 탈자바를 위해 달빅 VM을 대체하는 안드로이드 런타임(ART)을 개발하여 내장하였고 롤리팝부터 달딕 VM를 빼고 ART로 완전히 대체했다. 또한 JetBrains코틀린(Kotlin)을 안드로이드 공식 개발 언어로 확정했다. 그리고 구글은 안드로이드 개발자들에게 자바에서 코틀린으로 이행을 유도하고 있다. 또한 구글 역시 Go라는 자체 언어를 개발해 자바의 의존도를 떨어뜨리려고 노력하고 있다.

FAT 파일 시스템의 경우 기존의 ROM을 용도별로 파티션을 나누고 내장 스토리지와 외장 스토리지(SD카드)를 각기 따로 파티션으로 마운트하는 방식에서 3.0 Honeycomb 부터 하나의 파티션의 구조를 취하며 내장 스토리지 및 외장 스토리지(SD카드)의 경우 가상의 경로로 마운트 하는 방식으로 바꿈에 따라 FAT32 파일 시스템을 마운트해서 쓰지 않는 구조로 바꾸면서 대응했다. 4.4 킷캣의 경우 SD카드를 읽기 전용으로 설정하면서 논란을 일으켰다.[3]

EAS(Exchange Active Sync)의 경우도 구글 측에서 대안을 찾고 있는 상황. 다만 EAS의 경우는 기업 솔루션과 이통사 요구 조건에 밀접하게 연계될 수 밖에 없기 때문에 가시적인 성과가 나올지는 미지수다. 실제로 G메일 등에서 구글이 스스로 EAS 지원를 포기하는 방식으로 행동을 취했고 유저들은 호환성에 관련된 문제를 제기했지만... 그냥 그런 일이 있었는지 조차도 모르고 넘어간 분위기이다.

2013년 12월 10일자로 유럽에서 FAT에 대한 특허가 제1심에서 무효 판결을 받았다는 기사가 떴다. 관련 기사 해당 판결이 확정되면 유럽지역 특허료 액수 산정에서 상당한 단가 조정이 불가피할 것으로 보인다.

3. 버전 업그레이드 문제

다른 운영 체제도 그렇지만 안드로이드도 지속적으로 버전 업이 진행되면서 기존 버전의 문제를 지속적으로 해결하고 있고, 그 결과 버전이 올라갈수록 속도와 성능 면에서도 비약적인 향상을 보이고 있다. 또한 새 버전의 운영 체제가 등장하면 신기술을 이용한 애플리케이션이 등장하고, 해당 애플리케이션은 구버전의 운영 체제를 가진 안드로이드 폰에서는 사용할 수 없을 가능성이 높다. 따라서 안드로이드 폰의 성능을 결정하는 핵심적인 요소는 바로 신규 버전의 운영 체제를 사용하는 것이라고 말해도 과언은 아니다.

대부분의 제조사에서 자사 스마트폰에 운영체제로 안드로이드를 넣으려면 구글에서 배포하는 AOSP 소스코드를 받아 커널[4]을 수정하고 드라이버도 추가하고 GApps를 탑재하고 기본 앱을 추가하는 작업이 필요하다. 또한 삼성과 엔비디아 같은 자사 AP로 스마트폰을 만드는 업체의 경우 사용하는 AP를 구글에서 기본적으로 지원해주지 않는다면 기본 커널을 사용하지 않고 해당 AP에서 작동하는 커널에서 작업해야 하는데, 이들 커널은 common kernel에 비해 작업의 속도가 뒤쳐진다. 다만 안드로이드의 common kernel 역시 리눅스 기본 커널에 따라가는 것이기 때문에 AP 업체들도 리눅스 기본 커널에 자사 AP에 대한 수정사항을 먼저 적용한 후 새 버전 안드로이드 커널이 나오면 안드로이드 커널에서 변경된 부분만 패치하는 방법으로 작업하므로 시간 지연이 크지 않을 편이다.

종종 안드로이드 기본 커널에 삼성, 테그라 등의 AP에 종속적인 부분을 이식해야 하는 경우도 있는데 삼성이나 엔비디아 등의 AP 제조 업체 혹은 협력 업체(이미지네이션 등)가 오브젝트 형식의 바이너리만을 제공하는 경우[5] 제조사에서 할 수 있는 버전업에는 한계가 있다. 또 드라이버들이 소스코드가 공개되어 있더라도 새 커널 버전에서 작동하도록 호환성 작업이 필요하다. 그 과정에 휴대폰 벤더가 설계한 하드웨어에 버그가 있다면 그 이슈를 해결하기 위한 소프트웨어 패칭도 필요하다.[6] 대부분의 스마트폰 업체들은 이 과정을 100% 자체적으로 해결할 능력이 없고 Workaround도 힘들어 일정은 AP 업체의 포팅 계획에 크게 의존할 수밖에 없으며 AP 업체의 추후 일정이 불확실할 경우 단말 제조사도 그 영향을 고스란히 받을 수밖에 없다. 설령 AP 업체에서 업그레이드된 커널과 프레임워크 소스를 공개했다고 해도 구형 AP의 경우에는 신형 AP만큼 개발 지원을 원활하게 받을 수 있다는 보장도 없고 추가적인 시간이 필요하다는 것을 의미한다.

때문에 '구글의 운영 체제 업그레이드 속도는 지나치게 빠른데 벤더의 업그레이드가 느리다는 점'이다. 현재로서 사용자가 직접 운영 체제를 업그레이드하는 것은 현실적으로 어렵고 스마트폰 벤더가 업데이트 해주길 기대해야 한다. 구글의 계속되는 운영 체제 업그레이드와 이를 따라가지 못하는 제조사, 애플리케이션 개발자, 소비자가 존재하는 한 이러한 문제는 앞으로도 계속될 것이다. 심지어 이런 식으로 업그레이드가 계속되면 여러 버전의 안드로이드 폰이 시장에 난립하면서 발생하는 이른바 파편화 문제로 결국 안드로이드가 망할 것이라는 의견도 있는데, 이에 대한 찬반 논쟁은 아직 현재진행형이다. 한국의 경우는 안드로이드 사용률이 높기 때문에 논란이 별로 없는 편. 다만, 구글이 이 문제를 매우 잘 알고 레퍼런스 제품을 내놓고 있다.

이것이 안드로이드 폰이 우후죽순으로 등장하고 있고 제조사마다 적어도 한 번에 두세 개 이상의 폰을 내놓고 있는 상황에서, 기존에 나온 안드로이드 폰을 새 버전으로 업그레이드하는 결정을 쉽사리 내릴 수가 없는 이유다. 구글도 이를 알고 메이저 업데이트를 1년에 한 번 하고 있다.#

한편 소비자의 입장에서는 안드로이드 새 버전이 나오면 기존 스마트폰들은 사실상 구형으로 전락하게 되고, 새 버전으로 업데이트하지 않으면 일부 신규 애플리케이션을 사용할 수 없기 때문에 끊임없이 "현기증 난단 말이에요 빨리 업그레이드 해 주세요"를 제조사에게 요청하게 된다. 그러나 만약 요청이 받아들이지 않는다면 사용자는 분노하고 눈물을 흘리면서 해당 폰은 버스폰이 될 운명만을 기다리게 된다. 특히 기변을 자주 하는 사용자들이나 재고 처리 문제를 안고 있는 이통사 입장에서도 운영 체제 업그레이드는 민감할 수밖에 없는 사안. 예시로 삼성 갤럭시의 S20 시리즈와 노트20 울트라가 S21 시리즈보다 하드웨어 사양은 대부분 뛰어나지만 S21 시리즈가 4회 업데이트 보장이 돼서 S21 시리즈가 추천될 정도이다.

구형 안드로이드 폰의 버전 업을 어느 정도까지 수용해야 할지는 의견이 분분하지만, 사용자들 사이에서는 "적어도 출시 후 약정 기간인 2년 내에 나오는 버전까지는 업그레이드해줘야 하지 않느냐"라는 의견이 대세이고 구글은 24개월 정도의 업그레이드 보장 기간을 제시하고 있다.[7] 아무튼 안드로이드폰 사업에서는 차기 운영 체제 버전의 업그레이드를 확정 또는 약속하는 것이 해당 스마트폰의 인기와 판매도를 결정하는 중요한 척도가 되었다.[8]

미국에서는 삼성의 비홀드 2가 출시 당시 1.5 컵케익에서 2.0 이클레어로 업그레이드할 거라고 광고 및 약속한 후에, 팔린 이후 반응이 없자 업그레이드 약속을 지키지 않았다고 소송이 걸리기도 했다. 즉 안드로이드 업그레이드는 상당히 민감한 편으로 이를 공언하고 지키지 못한 경우엔 심각한 문제가 된다는 것을 보여준 사례.

마찬가지로 LG전자안드로-1의 문제. 옵티머스Q도 마찬가지로 업그레이드 계획이 원래 없었지만 항의 여론에 밀리면서 결국 업그레이드를 결정했다. 옵티머스원도 해외에서 한 유저가 진저브레드 업그레이드를 언제 해주냐는 질문에 LG 고객센터 측은 진저브레드의 최소사양이 1Ghz 이상의 CPU이므로 600Mhz CPU가 탑재된 옵티머스원에서는 업그레이드할 수 없다고 답했으나, 구글 측에서는 진저브레드의 최소사양은 정해진 바가 없다고 밝히면서 LG의 거짓말로 드러났고 다행스럽게도 옵티머스원도 진저브레드 업그레이드가 결정되었다.

다만 2.2 프로요의 경우에는 6~7월경 몇몇 폰들에 대해서 프로요 업그레이드를 확답하지 않는 부분에 대해서 네티즌들이 제조사에 많은 질타를 쏟아냈는데, 사실 이때 구글에서는 2.2 CTS(Compatibility Test Suite, 안드로이드 디바이스의 호환성을 테스트하는 도구)를 공개하지 않았다. 이 때문에 제조사들이 확답을 내지 못했고, CTS가 발표되고 나서는 확답을 낸 제조사들이 많았다.#

그리고 2011년 5월, 구글과 일부 제조사들이 협력하여 출시 후 18개월간 기기가 지원하는 한 즉각적인 업데이트를 할 수 있도록 발표. 파편화 문제와 업그레이드 지원 문제를 표준화해 해결하겠다는 의지를 천명하였다.# 하지만 통신사, 제조사들의 상황이 복잡하게 얽혀있는 문제인 만큼 쉽게 해결되진 않는 듯.#

그나마 다행인 점이라면 안드로이드 펌웨어에 관심을 가지는 기술개발자들이 개인적으로 시간과 노력을 들여서 자체적으로 새로운 안드로이드 버전을 수용한 이른바 '커스텀 펌웨어'를 꾸준히 올리고 있다는 점이다. 대표적인 사이트에는 XDA 포럼이 있다. 일단 개발자 본인들이 자발적으로 행하는 것이니 비용이 들어가지 않고, 삼성 같은 대기업에 비해선 느리지만 중소규모 이상의 기업들보단 생각보다 빠르다(…). 하지만 이마저도 결국 기기 제조사가 커널을 공개하지 않는다거나 하면 개인 개발자도 어찌할 수 없게 되며, 이것도 결국 인지도가 어느 정도 있는 기기들이나 이런 식으로 업데이트가 가능하지 인지도가 아예 없거나, 혹은 지역별로 다르게 출시된 기기가 있다면 그림의 떡이 된다. 더군다나 해가 갈수록 출시되고 있는 기기 종류가 쑥쑥 늘어가는 판국인데 이렇게 되면 개발자들이 지원해줄 수 있는 기기는 갈수록 더 줄어든다. 커스텀 펌웨어를 만들어줄 수 있는 능력과 열의를 모두 갖춘 개발자는 기계처럼 찍어낼 수 없는 노릇이니... 게다가 루팅에 대한 지식과 개념이 없이 그냥 순수 사용자들한테 권하기에는 무리가 많다.

이러한 문제는 Apple도 키노트에서 iOS와 안드로이드를 비교하면서 지적한 바 있다. 실제로 대부분의 Apple 제품 유저들이 구형/신형 단말기를 막론하고 최신 버전의 운영 체제를 사용하고 있는 반면[9][10] 안드로이드 유저들은 구형은 물론이거니와 나온 지 몇달 안 되는 신형 단말기에서도 구버전 운영 체제를 사용하는 경우가 많다. 다시 말해서 안드로이드를 가진 사람은 많지만, 오랫동안 안정적으로 최신 버전의 혜택을 누릴 수 있는 사람이 적다는 게 안드로이드의 현실이다. 그렇다고 신기능을 그때그때 맛보기 위해 기계를 그때그때 새로 살 수도 없는 노릇이니 더더욱 미궁 속으로...

구글이 개발자를 대상으로 제공하는 플랫폼 점유율 자료를 보면 안드로이드의 실태[11]를 알 수 있는데 여러 버전의 점유율이 난립하고 있다.

하단의 보안문제파편화 항목과도 연관되는 부분이지만, 이 문제는 보안과도 관련이 있다. 운영 체제 업데이트에는 보안 관련 업데이트도 포함되기 때문이다.

4. 마켓의 질과 손쉬운 불법 복제 문제

Google Play의 경우에는 휴대폰 전용 애플리케이션의 양은 Apple의 App Store를 넘어섰고 질도 많이 향상되었지만, 태블릿 같은 경우에는 아직 양적으로나 질적으로나 App Store보다 모자란 게 현실이다. 고퀄리티 애플리케이션 개발에 있어서도 버전 문제와 사양 문제로 쉽지는 않은 편이다. 거기다가 누구나, 무엇이든 등록이 가능하다는 점 때문에 수준 이하의 애플리케이션들이 많이 올라오는 편이다.

가장 큰 문제는 안드로이드 마켓의 규모. 2011년 4분기를 기해 규모는 App Store와 비슷한 수준으로 성장했음에도 불구하고, 실질적으로 개발자들이 얻는 수익은 App Store에서 얻는 수익의 1/5 가량이라는 통계가 공개됐다. 밑에 언급되는 파편화로 인한 개발 비용도 비용이지만, 아무래도 소비자층의 차이가 가장 심각하다. 스마트폰을 소유하고 있어 안드로이드 시장 점유율에 도움을 준다 하더라도 마켓을 사용하지 않든가(대표적인 경우가 중국 업체의 커스텀롬이다), 마켓을 사용하더라도 유료 앱을 꺼리든가, 유료 앱을 구매할 의사가 있지만 그 예산이 Apple의 App Store 소비자층에 비해 적은 경우가 많다는 것.

Windows처럼 구식의 설계를 그대로 가지고 가는 운영체제도 아니고 비교적 최근에 나온 운영체제임에도 불구하고 컨텐츠 불법복제에 취약한 편이다. iOS는 그 특성상 사용자의 임의적인 개조나 불법 소프트웨어를 설치하려면 탈옥을 해야 하며 탈옥을 하지 않을 경우 비교적 App Store의 관리가 엄격한 덕분에 안전하게 사용할 수 있는 편이다. 그리고 iTunes의 기능 중 하나가 불법 개조된 앱을 동기화 과정에서 걸러내는 것이라는 점도 빼놓을 수 없다. 그리고 Apple도 탈옥에 대응을 하지 않는 건 아니다 보니 불법 복제가 손쉬운 편은 아니다. 반면 안드로이드의 경우에는 루팅이 빈번한 편이고 개방형 운영 체제인 안드로이드의 특성상[12] 불법 복제가 iOS 계열보다는 비교적 쉬운 편. 이는 앱 판매의 어려움을 가져오게 되어 시장 수익성의 불확실성을 가져오는 요인 중 하나이다. 무료 애플리케이션 + 애드웨어 형식으로 내서 광고 수익을 얻고자 하는 애플리케이션도 (앵그리버드가 대표적) 광고를 광고 차단 애플리케이션 등으로 막아버릴 수도 있다. 결국 구글은 마켓의 통제를 강화하는 방향으로 가고 있는 모양이다. 관련기사 위의 문제가 해결되려면 더 많은 시간이 필요하다.

비단 불법 복제만의 문제가 아니라 아무나 게임 내 시스템을 무단 수정해서 유포하는 것도 문제. 예를 들어, 템플런의 경우 업그레이드를 모두 무료로 할 수 있는 3자 프로그램이 나돌아다녀서 게임내 아이템 구매 시스템이 무용지물이 되어버렸다. 이러한 문제는 파편화와 버전 업그레이드 문제와 겹쳐서 공정성과 폐쇄성이 특히 강조되는 멀티플레이 게임이 활성화되지 못하게 하는 방해물이 된다. iOS 유저들은 할만한 무료 멀티플레이 게임이 나오면 다같이 다운받아 바로 같이 즐길 수 있는 것과 대조되는 부분.

구글이 아닌 제 3자가 만든 ESD(한국의 경우 원스토어, 갤럭시 스토어 등)가 너무 많다는 것도 문제다. 간단히 iOS와 비교해보자면, 기본적으로 Apple에서 지원하는 App Store 외에는 앱 장터가 없다.(탈옥 후에 다른 앱 장터를 쓸 수 있긴 하나 탈옥은 일반적인 사용 방식이 아니니 논외로 한다.) 반면에 안드로이드는 누구나 가져다 쓸 수 있다는 점을 역으로 이용해서 자기들이 기기를 개발, 그리고 이 기기들만을 위한 장터를 개발하는 경우도 많이 늘고 있다.

2013년 2분기에 사상 처음으로 구글 플레이의 다운로드가 Apple의 App Store의 다운로드 수를 추월했는데도 매출은 더블 스코어 이상으로 발리고 있다. 점유율을 생각하면 안드로이드 앱을 개발하지 않을 수 없는데 매출을 보면 개발 의욕이 싹 사라지는 상태.

그런데 이 매출 때문에 개발 의욕이 사라진다는 부분은 현업에서 앱 개발에 종사하고 있는 사람들 사이에서는 이견이 있는데, 한국같이 안드로이드 폰이 스마트폰 점유율의 90%를 차지하고 있는 상황에서는 매출 때문에 개발 의욕이 사라지기는커녕 '돈 벌려면 안드로이드로 개발해라'는 말이 나오는 상황이다. 실제로 한국은 Google Play 매출이 미국의 Google Play 매출을 추월하는 상황이며, 이런 특수한 상황의 대표적인 예가 for kakao로 대변되는 좀 기형적인 매출 신장에 기인하는 바가 크지만 그래도 현실은 현실. 3000만 대가 넘는 스마트폰 중 약 2700만 대가 안드로이드 폰인 상황에서 200~300만의 iPhone 유저가 전부 탈옥 없이 앱을 구매하고, 안드로이드 폰 유저 전체의 30%만 합법적으로 앱을 구매하는 상황이라고 해도, 단순 계산만으로도 대충 iPhone 유저의 2배 수준의 소비층이 존재한다는 가정이 나온다. 이런 경향은 안드로이드 폰이 압도적인 점유율을 자랑하며 판매 대수의 단위가 다른 중국으로 가면 더 심해져서 기기당 수익률이 Apple에 비해 떨어짐에도 불구하고 현실적인 이유로 수많은 개발자들이 안드로이드로 앱을 개발하는 원동력이 되고 있다. 또한 S/W 특성상 도서나 음악, 영상 등보다 자체 단속, 적발이 용이하다는 것도 한몫한다. 아직까지 대규모 소송으로 간 경우는 없지만 요새 안드로이드 게임에 여러 해킹툴(써드파티 부정사용 애플리케이션들)을 적용하려고 하면 게임 앱이 알아서 막는다. 특히 멀티플레이가 굳이 아니여도 앱 제작사에서 제공하는 온라인 기능이 있는 경우에는 직접 추출해서 변조한 것까지도 다 잡아낸다. 또한 그런 류의 게임 앱들은 부정 사용과 불법 복제의 기록이 전부 서버 쪽에 남으므로 손해를 일부 보더라도 게임 제작사 측에서 조지기로 작정하면 손쉽게 서버 로그 복붙해서 죄다 소송 거는 방법도 가능은 하다.

또한 App Store의 수익률에 관해 상위 100위 안에 드는 앱이 수익의 대부분을 독식해서 신규 참여가 어렵다는 건 그냥 실력 없는 개발자들의 푸념으로 치부할 수 있지만, 기존의 좋은 앱이 많다는 건 신규 참여 앱이 치고나가기 힘든 분명한 장벽이다.

뿐만 아니라 최근 제대로 팔아먹자고 작정하고 만들어지는 앱들은 그냥 iPhone용과 안드로이드 폰용의 멀티 플랫폼으로 출시되고 있는 상황이니 저런 구분이 더더욱 의미가 없어졌다. 인기가 좋은 앱들이 대부분 이런 식이니 결국 그냥 어느 한쪽만 잘 팔리면 그만이다.

4.1. 마켓의 악성 앱

개방성이 높은 안드로이드의 가장 큰 문제이며, 최근에서야 보안 관련 이슈가 여러번 발생하며 사용자들의 관심을 끌게 되었다. 전문가들이나 일부 유저들의 비판은 이미 수년 전부터 있었다. 스마트폰의 경우 사람들이 일상적으로 빈번하게 사용하는 기기이기에 사생활을 비롯한 개인정보를 담고 있으며, 근래엔 개인 인증 시스템 또는 신용 결제 수단까지 저장하기 때문에 보안 문제가 터지면 피해가 막심하다.[13]

그런데 안드로이드는 이러한 보안 부분에서 iOS보다 취약할 수밖에 없다. 물론 이것은 운영 체제 사용 환경의 개방성에 대한 제조사의 입장 차이에서 나타나는 것이기에 무조건 비판만 할 수는 없으며, (자세한 내용은 App StoreGoogle Play 항목 비교 참조.) 이러한 개방성에 의한 보안 문제는 리눅스를 다수의 일반인이 사용할 때 발생하는 것과도 유사하다. 그러나 보안에 대해 근본적인 한계가 있는 것은 분명한 사실이며, 이를 개방성으로 포장된 무책임한 방임이라고 볼 수도 있는 것이다.

4.1.1. 악성 코드가 내장된 애플리케이션

패키지 파일의 무단 수정이 쉬워서 정상적인 앱을 변조하여 크랙을 설치할 수 있다.[14] 또한 리버스 엔지니어링에도 취약하다.[15] 그리고 정상적인 앱에서 이미지, 사운드 같은 리소스를 빼내 가짜 앱에 집어넣어 진짜 앱처럼 위장하기도 쉽다. 당연히도 짝퉁 애플리케이션은 개인정보 유출 용도로 이용되는 경우가 많다. 좀 더 대담한 경우는, 정상적인 앱을 뜯어다 악성코드를 심어서 재배포하는 앱 리패키징 행위. 그래서 안드로이드에선 애플리케이션을 다운받기 전에 권한을 확인해볼 것이 권고된다. 애플리케이션의 기능에 비해 너무 많은 권한이 부여되어 있으면[16] 대부분은 개인 정보 유출이다.[17] 앱 옵스라는 선택적 권한 조작 기능으로 보안이 향상될 줄 알았으나, 이 기능을 구글 내부 디버깅 용도로 사용했으며 유저를 위한 기능이 아니라고 한다. 심지어 개발자 옵션에서도 접근할 수 없다. 4.4.2 버전부터는 사용할 수 없도록 변경했다. 링크 2015년 6월, 구글이 새로운 개발자 버전인 M 개발자 버전을 발표하면서 차기 버전에는 앱 권한은 8개 카테고리로 나눠 분류하고, 이 권한은 앱을 설치할 때 일괄적으로 동의하는 것이 아니라, 권한을 처음 사용할 때 선택적으로 켜고 끌 수 있도록 할 것이라고 한다. 6.0 마시멜로 버전인 경우 앱별로 권한을 설정할 수 있도록 요청하지만, 앱 개발사가 권한별로 유기적으로 동작하도록 재설계하는 과정이 필요하며, 그렇지 않으면 이전 버전의 Android로 설계되었다며 대부분의 권한을 요구하고 있는 상황. 다만, MIUI같은 제조사의 커스텀 안드로이드는 앱이 요구하는 권한을 선택적으로 부과할 수 있게 해놓았다.

이처럼 아무 데서나 앱을 올리고 아무 데서나 받을 수 있고 받은 다음 또 아무 데서나 수정, 재배포가 가능하다는 게 문제라는 것은 다들 지적하는 부분이다. 정말 안타까운 부분은 이게 누가 강요해서 그러는 것이 아니라 사람들이 그렇게 주어진 시스템 안에서 자발적으로 그렇게 행동하고 있다는 것이 문제. 이러한 문제를 인식해서인지 일부 안드로이드 폰에는 Google Play 외의 다른 스토어에서 다운받은 애플리케이션의 설치를 차단하는 기능[18]이 있다. 그러나 안드로이드의 경우 "아무데서나 앱을 다운받을 수 있지?"라는 마인드가 이미 깊게 박혀서, 기업들도 Google Play에 굳이 앱을 올리지 않을 때가 있다. 대표적인 게 각종 은행 앱과 네이버 앱스토어 같은 서드파티 앱스토어들. 그래서 웬만한 소비자들은 그냥 저 설정을 끄는 경우가 다수.

그런데 문제는 Google Play라고 믿을 수 있는 게 아니라는 것이다. App Store와 같은 사전 검수가 아닌 사후 검수이기 때문에 앱이 퍼지는 걸 막는 것은 한계가 있다. 특히 단기간에 치고 빠지는 사기 결제 앱은 잡을 수가 없다. 2013년 8월 보안 회사인 트렌드 마이크로는 Google Play에 약 70만 개가 넘는 악성코드가 있다고 발표했다. 요약기사 트렌드 마이크로 발표 원문 구글 측에서는 평점, 사용자 수, 사용 후기를 통해 악성 앱을 피할 수 있다고 주장하지만, 아래쪽 사례를 보면 말도 안 되는 소리라는 것을 알 수 있다.

우선 개발자 신뢰 검증 및 인증 기관이 없다. 윈도우나 맥은 인증 기관의 인증서가 없는 프로그램을 실행할 때 경고 메시지를 띄우거나 실행을 막는다. 인터넷 역시 https 연결할 때 인증기관의 인증서가 없으면 경고를 띄운다. 하지만 안드로이드에는 이런 기능이 없다. 신뢰할 수 없는 출처 차단은 단지 Google Play에서 다운로드받은 것을 제외한 나머지를 차단하는 기능일 뿐이다. Google Play의 빈약한 보안 시스템은 믿을 것이 못 된다. Google Play에 평점이 백만 개가 넘고 1억 다운로드가 넘어도 안심할 수 없다. 평가자 7백만 명, 다운로드 수 1억 이상의 믿을만한 페이스북앱은 사용자 몰래 전화번호를 빼돌리다가 적발되었다. 페북 기사 보안업체 발표 2013년 12월에는 더욱 노골적인 악성 앱이 등장했다. 바로 손전등 앱인데 사용자의 위치 정보를 무단으로 전송하는 행위를 하다가 미국 연방거래위원회(FTC)에 적발되었다. 앱에는 '개인 정보 공유 불가'를 택하는 항목이 있었지만, 실제 이 선택 기능은 함정이었고 사측은 고객 의사와 관계없이 사생활 정보를 외부에 유출했다고 FTC는 강조했다.손전등 악성앱 기사 대놓고 악질적이다. 유료 앱도 믿을 수 없다. 한 안티바이러스 앱은 다운로드 1만 이상 평점 4.7을 받았지만 실제로는 악성 코드를 심었다. 유료 앱은 사용자가 안심한다는 특성을 이용해 역으로 악성 코드를 배포했다. 관련 기사

구글은 이러한 문제를 해결하기 위해 바운서라는 일종의 백신을 Google Play에 내장했으나 한계가 있으며 이마저도 쉽게 우회되고 있다.[19] 바운서 우회 기사 구글뿐만이 아니라 다른 기업들도 휴대폰용 백신을 출시한 상황. 그러나 PC와 마찬가지로 웬만한 소비자들은 백신에 대해 별 관심이 없고 더욱이 "휴대폰에 백신을 설치해야 한다."라는 관념은 더더욱 박혀있지 않다. 백신을 깔더라도 휴대폰의 배터리나 메모리 등 하드웨어적 한계로 인하여 웬만한 백신 앱은 백그라운드 작업이 제한된다. 결국, 백신이 항상 작동하는 것이 아니므로 한계가 있다.

F-Secure의 리포트에 따르면 스마트폰 악성 코드의 96%는 안드로이드용이다. 또한 전체 안드로이드 스마트폰 중 79%가 악성코드에 위협받고 있다. 사실상 안드로이드 기기는 PC처럼 관리해야 하며, 그래야만 보안에 있어 조금이나마 덜 위험해진다.

모든 운영 체제는 보안상의 취약점이 있으며 이러한 취약점은 패치하지 않으면 해킹에 악용되고 피해가 발생한다. 안드로이드는 배포 구조상 보안 패치가 매우 힘들다.[20] 구글에서 보안 패치를 발표해도 제조사에서 개조한 운영 체제에 맞게 적용하는 작업을 하지 않는 경우가 많다. 주로 업데이트가 끊긴 기종에 해당한다.

보안 문제에 대한 무지는 "안드로이드 = 리눅스 기반, 리눅스 = 바이러스엔 철벽"이라는 오해에서 보인다. 리눅스는 사용자의 대부분이 컴퓨터 관련 전공자 및 직무 종사자 등의 전문 사용자이기에 보안의 허점이 있더라도 유저의 수준이 높으므로 어느 정도 자가복구/예방을 하고 있기는 하나 Windows는 사용자가 매우 많고 사용하는 유저의 수준이 대체로 낮아서 그만큼 보안 문제가 자주 터지는 것이다. 안드로이드도 이와 비슷한 맥락이다.

또 한 가지 일반적인 리눅스와 안드로이드의 보안성 차이는 업데이트 주기 차이에서 오는 것으로 볼 수 있다. 리눅스는 활발한 프로젝트라면 알아서 새 버전에 맞춰 따라오라는 식이라 업데이트 주기가 매우 빠르다. 물론 패치하고 나몰라라 하는 건 아니지만 적어도 안드로이드보단 부담이 적다. 반면, 상업용 성격이 강한 안드로이드는 사소한 거라도 뭔가 하나 건드렸다가 호환성 문제가 생겨버리면 대책이 없어지므로 쉽게 건드리질 못한다. 리눅스에서는 오픈 소스라는 특징이 빠른 업데이트로 이어져 긍정적인 작용을 하지만, 안드로이드에서는 취약점 공개가 되어 오히려 독이 되는 셈.[21] 게다가, 구글에서 아무리 빠르게 대처를 한다고 해도 파편화 문제가 남아있는 한 제조사에서 또다시 최적화 과정을 거쳐야 한다는 것도 문제이다. 더욱이 어중간한 헛똑똑이들 때문에 루팅에 쓰이는 취약점을 막을 때마다 오히려 욕을 먹는 일도 있는 판이니(...)

그렇다고 버전 업만 잘하면 보안에 문제가 없는 것은 아니다. 일부 저가형 제품은 안드로이드 최신 버전을 적용해도 보안 취약점이 넘쳐났다. 어떤 제품은 롤리팝 배포되기 직전에 가장 최신 버전인 킷캣 4.4.0이 탑재되어 있지만, 보안 구멍이 너무 커서 등급을 도저히 매길 수가 없었다. 저가형이나 유명하지 않은 물건들은 거의 다 보안 부적합 판정을 받았다.테스트 기사

안드로이드 유저들은 '사용자가 많아서 이런 사례가 많은 것이다.'등의 변명을 하고 있지만 몇 가지 반박을 할 수 있다. 통계와 자료에 따르면[22] 미국과 일본에서 iPhone의 사용자 수와 점유율은 전혀 낮지 않다. 그리고 iPhone 사용자는 대체로 구매력이 크다. 즉, 해커에게 충분히 매력적인 타겟이다. 하지만 보안업체 통계에 따르면 악성코드가 안드로이드만 노리고 있다. 시스코, 악성코드 99% 안드로이드용 사용자가 많아서 공격을 받는 것이라면 iPhone 사용자가 많은 일본이나 미국에서는 iPhone용 악성코드가 보여야 하는데 안드로이드용 악성코드만 99%이다. Apple은 사전 검열 방식이라 통계가 왜곡됐다는 주장도 있지만 여기서 말하는 악성코드는 앱, 웹(운영 체제 취약점)까지 모두 포함한 것이다.

이 문제를 극복하기 위한 목적으로 삼성전자에서는 삼성 Knox라는 보안 솔루션을 개발해 자사 단말기에 탑재했다. 삼성 Knox는 안드로이드에 통상 모드와 Knox 모드를 따로 제공하는데[23], Knox 모드에서는 모든 작업 및 활동이 암호화되며 Knox 전용 스토어의 앱만 사용할 수 있다. 그러나 현재 일반 사용자가 쓰기에는 Knox용 스토어의 앱이 너무 적은데다, 결정적으로 이 솔루션이 루팅과 롬질, 커널 교체 등을 매우 어렵게 하고 있어서 상술한 헛똑똑이들헤비 유저들에게 까이고 있다. 물론 Knox 이전에도 이미 기업용 커스텀 안드로이드 보안 솔루션은 존재했다. Knox는 이를 일반 제품으로 확대했다는 의의가 있긴 한데, 이게 삼성 제품에 기본적으로 깔려 나오다시피 하니 일반 소비자에게 사실상 강요를 하는 것처럼 된다는 게 문제이다.

더 큰 문제는 Knox가 사실상 무의미하다는 점이다. 요즘 유행하는 안드로이드 보안 위협은 root 권한 없이 AOSP의 취약점만 노린다. 하지만 Knox는 취약점을 못 막는다. Knox가 부팅 중에는 SU를 비롯한 거의 모든 명령어 바이너리의 실행 통제와 /data 파티션 안의 명령어 바이너리가 시스템 권한 없이 시스템을 건드리는 것을 막는 일을 하는데 단순 정보 탈취나 앱 제어는 이 두 가지가 모두 필요없다.

그런가 하면 국가 정보 기관이나 경찰 등의 감시로부터도 매우 취약하다. 단적인 예로, 2014년 8월에 워싱턴 포스트는 감마그룹에서 유출된 내부 문서를 근거로 감마그룹이 정보 기관에 제공하는 휴대폰 도감청 프로그램인 FinSpy에 대해 기사를 썼다. 유출된 문서에 따르면 이 프로그램은 안드로이드, 블랙베리(7.1이하), iOS(탈옥), 심비안 Windows Mobile 기기에서 전화번호부나 통화 내용, 문자 메시지를 모두 엿볼 수 있으며, 심지어 기기의 마이크를 몰래 켜서 주변 소리를 엿들을 수도 있다. 여기서 안드로이드는 완전 구버전인 2.xx부터 시작해서 가장 최신 버전인 4.4x까지 모두 지원 대상이 됨에 따라, 모든 모바일 운영 체제중 가장 광범위하게 털리는 취약성을 드러냈다. 참고로 이 프로그램이 지원하지 않는, 즉 도·감청할 수 없는 운영 체제는 순정 iOS와 윈도 폰 운영 체제, 블랙베리 OS 10 세 개뿐인데, 윈도폰 운영 체제는 '아직 지원하지 않음'이라고 쓰여 있어서 미래엔 지원할 수도 있다. 더욱이 블랙베리 OS 7은 블랙베리 OS 10과는 완전히 다른 물건이다. (출처 기사)
4.1.1.1. 시스템 업데이트 사칭 소프트웨어 판매
파일:external/img.yonhapnews.co.kr/AKR20170504064400017_02_i.jpg
2017년 5월 6일에는 보안 전문 기업 Zscaler에서 "System Update"라는 이름의 안드로이드 업데이트 버전을 가장한 앱이 2014년부터 구글 플레이에서 판매되어 왔음을 확인하고 신고해서 그제서야 구글이 삭제 조치를 취한 일이 있다. 물론 그 동안 100만-500만 건이 다운로드된 것으로 추산되고 있다. 앱의 작동 원리는 사용자들을 교묘하게 속일 수 있게 디자인되어 있으며 다운로드 후 실행하려고 하면 업데이트 서비스는 이제 지원되지 않는다는 메시지가 뜨며 앱이 화면에서 사라진다. 물론 백그라운드에서 돌아가며 사용자의 위치와 문자메시지 정보를 추적할 수 있게 된다. 구글의 보안 앱으로도 감지가 안된다.

2014년부터 2017년 초반까지 구글 플레이에서 계속 판매되고 있었다는 것도 문제지만, 안드로이드 로고와 시스템 업데이트라는 이름으로 대놓고 사칭 소프트웨어를 판매하고 있는데 그걸 전혀 모르고 있었다는 것은 구글의 검수 체계가 얼마나 허술한지를 알 수 있는 부분이다. 설령 알았어도 보안 앱에 탐지도 안되는 것 또한 안드로이드의 결함을 여실히 드러냈다고 볼 수 있겠다.

5. 보안 및 개인정보 관련 문제

안드로이드는 예전부터 보안을 약간 희생해서라도 호환성을 보장하고 개발자나 사용자의 자유를 보장한다는 개념을 추구하고 있다.[24] 물론 보안에는 많은 신경을 쓰고 있어 최신 안드로이드 기기의 보안성은 안드로이드의 개방성과 호환성을 생각했을 때 상당히 높은 편이다. 그러나 몇 가지 경미한 보안 취약점이나 그 외의 리스크에 노출될 가능성이 iOS같은 폐쇄적인 시스템에 비해서 비교적 높을 수 밖에 없다. 물론 iOS의 경우 사용자의 자유가 제한되는 부분이 적지 않은 것도 사실이기에 안드로이드는 리스크를 일부 감수하더라도 사용자의 선택을 존중한다는 것이다. 예를 들어, 안드로이드에서는 휴대전화 제조사가 설치한 스토어가 아닌 그 이외의 경로를 통한 애플리케이션 설치 허용 여부를 옵션을 통해 제공하고 있으며 중국과 같이 구글 서비스와 구글 인증을 쓰지 않는 내수 전용 플랫폼이거나 기업 내부용 또는 개인 개발자용 등의 경우는 이 옵션을 사용할 일이 많고 이를 통해 사용자의 자유를 보장하고 있다는 것을 알 수 있다.

물론 iOS도 초기보다는 많이 개방되었고, 안드로이드에도 금융이나 사무를 처리하는 앱도 많이 있다. 초창기 시절에는 애플리케이션 생태계조차도 이 지향점(보안 문제와 개방/폐쇄 지향의 차이)의 차이 때문에 극명하게 갈렸다.[25] 사실 안드로이드 자체가 iOS에 보안이 엄청나게 밀리는 것도 아니다. iOS도 해킹대회에서는 털리고 안드로이드 1위인 삼성 갤럭시의 Knox는 미 국방부 인증받고 납품까지 하고있다. 호환성 때문에 사용자에게 책임을 전가한 것이다.[26] 막말로 iOS앱스토어에 올라와 있는 앱만 쓰면 안드로이드도 비슷하다. EU에서 서드파티 앱스토어를 강제하는 법안을 추진하는 만큼 향후 지켜봐야할 것이다.


그래서 일각에서는 보안 이슈가 있을 때마다 iOS의 보안 안전성을 차용하자고 주장하지만, 그만큼 iOS의 폐쇄성이 사용자의 선택과 방침을 많이 제한하는 것도 사실이기에 쉽게 차용할 수는 없다. 선택은 소비자의 몫이다.[27] 안드로이드 체제와, Windows 체제, 그리고 iOS 체제 모두가 장단점을 갖는다. 보안 리스크 역시 안드로이드의 단점 중 하나고, 그게 마음에 안 드는 사람이라면 iOS든, 윈도우 모바일이든 대체재는 존재한다.

물론 중대한 보안 문제가 마구 터져나온다면 이야기는 달라지겠지만, 초창기에 비해 상당히 보안성에서 개선이 이루어졌고 구글에서 만든 소스를 제조사가 직접 수정해서 관리하며 최종적으로 개인 개발자들이나 보안 연구소에서 보안 취약점이 있는지 확인함으로 그럴 가능성은 거의 없다.[28]

그렇다고 아이폰이 항상 안전한 것도 아니고, 안드로이드가 항상 위험한 것도 아니다. 오히려 안드로이드 레퍼런스의 경우 오픈소스이기 때문에 약점이 생겼을 때 iOS 개발자들은 일이 터지기 전까지는 손 놓고 멍하니 macOS 팀에 가서 연속성에 관련해서 이야기하며 커피나 홀짝이고 있을 때도 안드로이드는 안드로이드 커스텀 롬 개발자들과 구글 개발자들이 전 세계에서 24시간 365일 자지도 않고 깨어 있는 오픈 소스 개발자들이 눈을 부릅뜨고 소스를 쳐다보고 있기 때문에 해커가 취약점을 알아내기 전에 먼저 선제 차단을 할 가능성이 훨씬 더 높다.

지원 중단된 안드로이드 기기의 보안 패치가 안 되는 부분 역시 개방성의 장점을 위해 일부 감수한 것이기도 하다. 원래 사양이 딸리거나 제조사가 망해서 업그레이드를 못하는 것으로 인해 생기는 보안 취약점에 대한 해결책은 Windows나 iOS도 그냥 감수하고 쓰던가, 아니면 기기를 교체하던가 뿐이다. 전자는 그래도 대부분의 제조사가 직접 운영 체제를 설치할 수 있게 해주기 때문에, 후자는 제조사가 Apple 단 하나여서 그 문제가 눈에 덜 띄는 것 뿐이다. 반면에 안드로이드는 iOS나 Windows와는 달리 여러 제조사가 존재하여 보안 업그레이드를 받는 부분에서 차별이 생기기는 하더라도 여러 제조사의 특색있는 서비스와 기능, UI를 선택할 수 있다는 장점을 가진다. 사실 이 부분은 엄밀히 말하자면 안드로이드를 두루뭉실하게 봐서 그렇고 사실 사후지원 면에서도 제조사별로 정책이 천차만별이기 때문에 안드로이드 전체의 단점이라고 말히기는 어렵다. 그리고 제조사별로 사실상 다른 운영체제를 쓴다고 말할 수도 있는데 리눅스계 운영체제인 데비안, 레드햇 등이 서로 다른 OS인 것과 같이 갤럭시에 깔리는 안드로이드는 삼성 버전의 안드로이드고, LG 폰에 깔리는 안드로이드는 LG 버전의 안드로이드라고 별개로 쳐야 된다. 안드로이드 기반일 뿐이지 각자 기기에 맞춰서 빌드해서 만들어 내놓는 식이라 삼성 버전 안드로이드를 LG 기기에 올리면 죽어도 안 돌아가고 인터페이스도 서로 다르며 기본적인 기능조차 모두 동일하게 제공하지는 않는다. 그러니 결국 LG가 삼성 안드로이드 못 고쳐주고 삼성이 LG 안드로이드 못 고쳐주며 이 부분은 구글 역시 마찬가지이다. 소스 코드를 가지고 기능을 추가하고 손봐서 만든 변형판이기 때문.

최근에는 굉장히 위험한 취약점이 발견되어 유저들에게 충격과 공포를 선사하고 있다. Stranghogg라고 명명된 취약점인데 사실상 운영 체제 베이스 단계의 취약점이기 때문에 패치가 시급하지만 오래 걸릴 것으로 보인다.[29]

5.1. Stagefright

Stagefright는 안드로이드 2.2(프로요)부터 5.1.1(롤리팝)까지 미디어 재생에 사용되는 시스템 라이브러리다. 그런데 2015년 7월 말경 Stagefright를 통해 악성 코드를 실행할 수 있는 중대한 취약점이 발견되었다. 악성 코드가 포함된 미디어를 첨부한 멀티미디어 메시지(MMS)를 수신할 경우 이를 열어보거나 열어보기도 전에도 취약점에 노출된다는 것.

쉽게 말해서, 그냥 문자를 수신만 해도 악성 코드가 자동으로 설치될 수 있는 취약점인데 이는 MMS 자동 수신이라는 특성상 악성 코드가 자동으로 설치되는 것에 기인한 문제이다. 이 취약점을 처음 발견한 Zimperium이라는 보안 회사에선 사태의 심각성을 고려해서 패치를 미리 만들어서 보고했고 구글은 2일만에 이 패치를 적용했다. 하지만 업데이트 문제에서도 서술했듯이 패치가 실제로 기기에 적용되기까지는 많은 시간이 걸릴 것이고 그나마 업데이트 지원이 종료된 기기와 4.4 버전 이전의 기기들은 패치마저 받을 수 없을 것으로 보인다. 되도록 단말기의 펌웨어를 최신으로 유지하고 지원이 종료된 기기에 한해선 MMS 자동으로 불러오기 기능을 해제하고 출처가 불분명한 문자는 받지 않고 삭제하는 것이 해결 방법이다. 아니면 해당 기기의 커스텀 펌웨어에서 그 문제가 해결되었다면 커스텀 펌웨어를 사용하는 것도 나쁘지않다.

여담으로 안드로이드 4.0부터 도입된 ASLR(Address Space Layout Randomization)이란 기능 때문에 큰 걱정을 하지 않아도 된다는 주장이 있었으나, 4.0 버전 이하로는 그런거 없고 4.0 버전에서는 완벽하게 적용된 것도 아니며 32비트 ASLR은 별 도움이 안된다는 문제가 있어 결국 있으나마나한 존재가 되고 말았다. 참고사항(영문)

5.2. 전체 디스크 암호화 관련

안드로이드 기기가 구글 인증을 받으려면 암호화 기능을 사용해야 한다. 안드로이드 9 이하 까지는 파일 기반 암호화 탑재가 의무적이지 않아 구글 픽셀을 제외한 대부분의 안드로이드 제조사들은 전체 디스크 암호화를 사용하였다. 전체 디스크 암호화를 위해서는 휴대전화의 /data[30]와/sdcard[31] 파티션을 단일 암호키로 암호화해야 하는데, 문제는 여기에 부팅 후 암호키를 입력하기 전이나 화면이 잠겨 있는 상태에서도 활성화되어 있어야 하는 전화나 문자메시지 같은 백그라운드 애플리케이션의 데이터도 포함되어 있다는 것이었다. 그래서 화면이나 기기 전원이 꺼져도 암호키를 기기에서 삭제할 수 없었고 이를 그냥 플래시 메모리에 저장하기는 위험하기 때문에[32] 별도의 Secure cryptoprocessor[33]에 보관하여 두었다. 그러나 어쨌든 기기 내부에 키가 있다는 소리이고 또 절대 해킹할 수 없는 보안이란 없기 때문에 해커들이 어떻게든 시스템 취약점을 찾아내 루팅시키고 잠금화면을 삭제한 다음 데이터를 추출할 수 있었다. 이를 해결하기 위해 직접 부팅이 적용된 파일 기반 암호화가 등장했다. 파일 기반 암호화가 적용될 경우 화면이 꺼지면 백그라운드 앱을 제외하고는 암호키를 삭제해 버려서 시스템 취약점을 찾아내도 결국 무차별 대입법으로 뚫어야 한다. 그러나 안드로이드 10이 탑재된 새 기기가 아니면 파일 기반 암호화 탑재가 의무적이지는 않아서 9이하의 기기들은 보안 위험에 노출되어 있다.

5.3. 저장소 샌드박스

안드로이드는 과거 SD카드로 불렸던 저장소 파티션에 샌드박스 기능이 없었다. 그래서 파일 작업을 허용하면 필요하지 않는 파일에도 접근할 권한을 주게 된다. 음악앱이 음악 읽기를 위해 파일 작업을 요청하면 루트를 제외한 모든 파일, 즉 타 애플리케이션의 파일이나 시스템 파일등에도 접근 권한이 부여되는 것이다. 이는 파워 유저들의 경우 핸드폰 관리의 편의성, 개발자의 쉬운 접근성에는 도움이 됐으나 보안에 치명적인 위협을 내포하고 있다는 뜻이기도 했다.

안드로이드는 Scoped Storage를 도입하고 타겟 API 30/안드로이드 11부터 강제해 이를 해결 하...긴했지만 바뀌면서 파일IO를 위해 필수적으로 쓰게된 SAF의 버그와 오버헤드로 파일 접근속도가 최소 38배 이상 느려졌고 파일 작업관련 유저/개발 편의성이 iOS와 동급 이하로 떨어졌으며, 자기 파일에 자기가 접근하지 못하게 하는 미친 짓거리를 하고말았다.[34]

5.4. 변경 불가능한 Widevine ID

안드로이드에서는 MAC 주소IMEI같은 변경 불가능한 시스템 정보에 접근하는 것을 차단하고 있지만 또 다른 변경 불가능한 정보 중 하나인 Widevine DRM의 ID에는 접근을 제한하지 않고 있다. Mozilla의 경우 이 문제로 파이어폭스 브라우저의 DRM을 샌드박스하여 DRM소프트웨어가 고유한 식별 코드를 사용할 수 없도록 하여 사용자 추적을 어렵게 만들기도 하였다.

6. 구글에 관한 문제

6.1. 구글의 사후 보장과 법적 책임 문제

하드웨어 제조사, 통신사와 구글로 입장이 갈리는 상황에서 문제가 터졌을 때 이에 대한 책임을 질 것이냐를 두고도 문제다. 고질적인 문제라고 밖에는 할 수 없는 것이 하드웨어 문제라면 제조사나 통신사가 책임을 지면 그만이지만 소프트웨어 문제라면 구글은 기본적으로 오픈소스로 안드로이드를 배포하고 있는 것이라 웬만한 법적인 책임에서 자유롭기 때문에 이 책임이 제조사나 통신사로 떠넘겨지게 된다. 물론 법적 소송을 준비해 확실하게(?) 끝장을 본다고 가정하면 소비자가 제조사나 통신사를 상대로 이길 확률이 높아 보이지만 법원에서 판결날 때까지 2년동안 문제있는 폰을 무작정 쓰고 있을 수는 없는 노릇 아닌가.

일각에선 구글은 기본적으로 운영 체제 업데이트를 계속해서 내놓고 있고 따라서 이는 통신사나 제조사가 알아서 했으면 될 일이라고 문제를 과소평가하는 일도 있는데, 이건 어디까지나 구글이 제대로 할 때의 이야기다. 결국 안드로이드라는 생태계를 주도, 관리하고 있는 것은 구글이고 레퍼런스 폰 외의 스마트폰이 안드로이드를 돌리고 구글 플레이에 접속 가능케 하는 것은 구글이다. 게다가 구글은 이 과정에서 막대한 이익을 창출하기도 하였다. 더군다나 하드웨어, 소프트웨어 파편화 문제로 제조사 입장에선 하드웨어 제조면에서 벗어난 소프트웨어 개발이라는 부담을 가지는 상황에서 구글이 내놓는 레퍼런스 운영 체제 업데이트를 실시간으로 따라잡으라는 건 기본적으로 무리다.

일각에서는 보안 패치 업데이트와 운영 체제 업데이트로 갈라 구글이 후자를 관리할 수 있는 시스템으로 바꿔야 한다고 주장하는 모양이다. # 다만 위에 적었듯 구글이 굳이 나서서 고생할 필요가 전혀 없는 상황이다. 3위 이하 업체중에 딱히 이렇다할 경쟁력이 있는 운영 체제가 없는 게 주된 이유일 것이다.

하지만 보안 문제가 크게 발생할 경우 구글의 책임론이 더욱 커질 것이다. 하지만 밑에서 설명할 반독점 문제 때문에 사실상 구글을 통제할 수 없을 것이란 의견이 많다.

또한, 구글은 안드로이드라는 운영체제를 만드는데, 시간이 지나면 지날수록 오래된 버전의 안드로이드에서 구글 계정으로 로그인을 하지 못하게 막아 오래된 버전의 안드로이드를 사용하는 사람은 휴대폰을 사용할 수 없을 정도로 심하게 제한이 걸린다.관련 기사 다만 해당 기사의 경우 안드로이드 2.3 지원 중단 기사다.[35]

6.2. 구글의 독점

안드로이드는 블랙베리 OSiOS와 달리 어느 제조사나 가져다 쓸 수 있었기 때문에 제대로 된 모바일 소프트웨어가 준비되지 못했던 제조사들에겐 그야말로 가뭄에 단비였다. 이동통신사들로써도 애플에게 지나치게 의존도가 높아지는 것을 경계하여 안드로이드란 대체제를 환영했다. 특히 구글 플레이 수익의 30% 가까이를 이동통신사에게 챙겨줬으니 대폭 밀어줄 이유가 충분했다. 퍼스트 무브를 보인 iOS의 경우 macOS처럼 iPhone 전용 운영 체제이다보니 중저가부터 프리미엄 모델을 모두 섭렵하고 모델 개수도 굉장히 많은 안드로이드에게 점유율을 자연스럽게 뺏길 수밖에 없었다.

문제는 안드로이드가 널리 퍼지게 되고 점유율이 높아지면서 점점 구글의 입김이 강해지고 있다는 것이다. 사실상 안드로이드를 무료로 쓴다는 명목으로 구글의 다른 서비스를 이용하거나 꼭 거쳐 가도록 강요하는 체제인 것이다.[36] 구글 앱 10개 의무 설치, 구글 서비스 이용, 구글 플레이 매출 수익의 15%를 이동통신사가 아닌 구글이 가져가기.[37]

월스트리트 저널에선 “구글은 언제나 자신들이 개방(open)을 지향한다고 주장해 왔다. 그러나 현실에서 그 개방이란 대단히 제한적인 것이었다.”이라고 비난을 하기도 했다.

다만 이는 구글과 안드로이드의 이름, 서비스를 빌려쓰려고 하는 제조사들의 선택의 문제일 뿐이라고 볼 수도 있다. 가령 아마존닷컴은 AOSP를 주물거려서 아예 구글 서비스를 떼어내고 자사 서비스를 탑재한 킨들 파이어를 내놨고 이는 안드로이드 정책상 아무 문제가 되지 않는다. 다만 구글 서비스를 떼어내는 덴 별 문제가 없을 지도 모르나[38] 그놈의 Google Play와 앱 생태계 문제가 발목을 잡는다. 사실 안드로이드는 오픈 소스이므로 구글 방침 따위 무시하고 만드는 게 불가능하진 않는데[39], 구글 서비스를 설치하기 위해서는 구글의 방침을 따라야 하고 그 구글 서비스 중에 Google Play가 끼어 있어서 어쩔 수 없을 뿐. 물론 굳이 하겠다면야 중국처럼 자국 앱스토어와 앱 유통 생태계를 만들고 그걸 내장시킨 다음에 플레이 스토어는 버린다는 방법도 있긴 하다. 유튜브는 웹에서도 돌아가니 앱을 설치하는데 별 문제 없을 것 같지만 구글 Play Serves를 꽤 요구한다.[40]

EU에서 반독점법 위반으로 결론을 내렸다. 구글이 시장 지배력을 남용하여 안드로이드 단말기 제조사들과 계약을 맺을 때 구글의 검색 엔진을 사전에 설치하도록 하고 구글의 경쟁 모바일 운영 체제를 설치하는 것을 제한했다는 지적을 받았다. 즉, 제조사마다 나름 소프트웨어적으로 하고 싶은 게 있는데 그걸 못하게 압력을 행사했다는 것.

이는 결과적으로 모든 소프트웨어가 유기적으로 연결된 Apple의 iOS에 비해 안드로이드 제조사들이 경쟁력 떨어지는 사용자 경험을 제공하게 만들고 있다. 단적인 예시로, 삼성전자의 갤럭시에서는 삼성 브라우저빅스비가 제공되는데, Chrome 브라우저와 구글 어시스턴트 앱을 제외하고 공급하는 것이 불가능하기 때문에 브라우저는 Chrome을 기본값으로 선회하고, 전원 버튼을 길게 누르면 빅스비가 호출되지만 홈버튼을 길게 누르면 구글 어시스턴트가 호출되는 비효율의 극치를 달리고 있다.

7. 좁아지는 선택지(한국 한정)


2022년 GOS 게이트가 터지면서 본격적으로 대두된 문제인데, 2023년 기준으로 사실상 쓸만한 안드로이드 폰이 국내에서는 갤럭시 밖에 없다는 것이다.[41] 또한 삼성전자의 마지막 경쟁자였던 LG마저 스마트폰을 철수하면서 한국 안드로이드 유저의 선택지는 사실상 삼성 밖에 없다.[42] 외산폰[A]에 어느 정도 관심이 있지 않는 한 삼성이 아니면 아예 안드로이드 자체를 포기하고 아이폰iOS로 넘어가는 것 밖에 없다.

이게 왜 문제가 되냐면 GOS 게이트같은 큰 문제가 터지면 다른 외산폰 기기로 갈아타려고 하자니[A] 삼성 페이와 통화 녹음의 부재는 둘째치고 백도어나, 성능, 가성비, AS 문제 등 다른 문제를 갖고 있었기 때문에 GOS 사태가 터졌을 때 한국 한정으로는 안드로이드 OS 진영 자체가 총체적 난국이라는 평을 듣기도 했다. 다만 외산폰에 대해 어느 정도 관심있는 사람이라면 외산폰[A]이라는 선택지가 있다.[46] 그나마 태블릿은 페이나 통화 녹음이 필요한 경우는 없기 때문에 중국산 가성비 태블릿도 쓸만하다는 것과 아이뮤즈와 같은 삼성 이외의 국산 브랜드도 존재한다는 것이 위안이다.

이러한 상황은 안드로이드 OS의 본래 취지와 정 반대로 흘러가는 흐름이기도 한데 상술했다시피 본래 안드로이드는 한 쪽 기기 제조사의 문제가 생겨도 다른 기기로 원활하게 갈아탈 수 있게 오픈 소스로 다양한 기기에 지원한 것이다.[47]

8. 소프트웨어와 하드웨어의 부조화

8.1. 파편화: 다양한 플랫폼에서 오는 문제

하드웨어와 운영 체제와 서비스가 긴밀하게 하나로 통합된 iOS 기기와 달리, 안드로이드 단말기는 다양한 제조사로부터 나오므로 기기 표준이 없고 뒤범벅이다. 단지 구글의 기본 가이드 라인만 준수하면 되기 때문에 그에 따라 CPU 종류, RAM 용량, 해상도 등이 기종마다 달라 개발에 어려움이 있고, 이렇게 기종마다 사양이 천차만별인 탓에 어떤 애플리케이션은 호환성 문제나 사양 문제로 설치가 불가능한 경우가 많다.[48][49] 가장 흔하게 접하는 문제는, 어느 해상도에 맞게 애플리케이션을 제작했느냐에 따라서 애플리케이션 이미지가 바둑판 형태로 배열되거나, 정렬이 이상하게 되거나, 초점이 맞지 않고 이미지와 실제 터치영역이 따로 놀게 실행되는 문제이다. 예시를 보면 이해가 빠를 것이다.

구글은 이에."넥서스" 시리즈 같은 표준이 되는 레퍼런스 폰을 만들었고 개발자들은 이를 참고하게 한다. "넥서스" 시리즈 중 넥서스 원을 HTC가, 넥서스 S갤럭시 넥서스삼성전자가 제조했고, Google Experienced Device 라고 구글과 제조사가 서로 협동하여 당시 안드로이드 버젼을 대표하는 레퍼런스 비슷한 기기를 만들어서 구글 안드로이드 개발자 컨퍼런스에서 HTC Android Dev Phone 1, Googe I/O Device(HTC Magic), HTC EVO 4G, Motorola DROID, Motorola XOOM, 삼성 갤럭시 탭 10.1을 개발자들에게 나눠줬다. 즉, 개발자 입장에서는 레퍼런스와 GED 기기를 표준으로 해서 소프트웨어를 만들면 안드로이드 표준을 준수하는 것으로 볼 수 있다는 것이다. 하지만 넥서스 시리즈와 일반 안드로이드 간의 차이가 너무 심해 별 소득이 없다. 거기에다 제조사들은 레퍼런스 모델에 따르기 보다는 이상한 기능(?)을 추가하여 해당 기능을 광고 타겟으로 삼기도 하기에 파편화가 더욱 심화되고 있다. 게다가 여기에는 통신사의 입김도 거세게 작용한다.[50] 또한, 구글이 모토로라를 인수하는 바람에 '표준 기기'의 지위를 앞으로 모토로라가 독점하게 될 수 있다는 우려가 있었다. 구글은 모토로라를 독립 경영하게 한다고 했는데, 어떻게 될지는 지켜봐야 할 일이다.



그래프상으로는 문제가 해소되어 가는 것처럼 보이지만, 수익상의 문제는 여전히 존재하는 상황이다. 현재 iOS 시장에 비해 개발비가 2~3배 정도 드는 안드로이드 앱 시장에서, Apple iOS 기기에 비해 6배 정도의 유저를 보유하고도 iOS 시장에 비해 수익성은 절반도 안된다는 의미다. 2012년 말, 유저 수가 5배에 수익성은 절반이라 했으니 근 1년간 상황이 더 악화된 것이다. 무엇보다 안드로이드 시장이 성장할 동안 안드로이드를 기반으로 하는 별도의 마켓들, 예를 들면 아마존 킨들과도 같은 ESD[51]들은 전혀 조사가 되지 않은 상황이다.[52]

현재 파편화는 개발자가 참기 힘든 수준이 되었다. 이로 인해 앱 개발을 포기하고 타 플랫폼으로 갈 수도 있다. 이것을 해결하지 못하면 장기적으로 안드로이드가 몰락할 수 있다는 관점이 제시된 바 있고[53] 2012년도 이후에는 안드로이드 몰락보다는 다수의 제조사가 몰락하여 파편화가 끝난다는 충격적인 의견도 나왔다.[54] 이러다보니 파편화에 고통받는 개발자들을 위해 아예 수십 수백 종류의 안드로이드 기종을 대신 테스트해서 보고서를 보내주는 테스트 대행 비즈니스까지 생길 지경이 되어버렸다.

또한 안드로이드의 상위 20개 기종의 점유율을 보면 갤럭시 시리즈가 무려 33%가 넘고 1~4위까지 갤럭시 시리즈에 20위 안에 들어간 갤럭시 시리즈가 무려 8개가 넘는 상황으로 링크 실제로 개발할 때 갤럭시를 최우선으로 고려한다고 한다. 안드로이드의 진짜 레퍼런스는 갤럭시라는 소리마저 나올 정도. 다만 예전에는 보급형 갤럭시 라인이 파편화가 심했는데[55], 요즘은 이쪽도 기기 사양이 통일되어가는 추세다.

사실 파편화 문제는 iOS 기기들도 해당은 된다. iPhone, iPod touch, iPad의 차이부터 시작해서, 같은 iPhone이라도 iPhone 5 이후 화면 크기가 16:9로 변경되는 등 차이는 존재한다. 또한 운영 체제의 경우도 iPhone 3GS가 지원이 끊기고 일부 유저는 업데이트를 하지 않는 등 격차는 있다. 하지만 이런 파편화가 안드로이드에 비하면 극히 미미하다. 일단 하드웨어의 경우 안드로이드 기기의 종류가 iOS 기기보다 압도적으로 많다. 그리고 운영 체제의 경우도 절대 다수의 iOS 유저들은 최신형의 iOS를 사용하며 오픈 소스가 아니기에 변형판도 없다. 즉 안드로이드 개발자들은 수많은 하드웨어들을 고려하고, 수많은 변형 안드로이드와 구형 버전을 고려하여야 하지만, iOS 개발자들은 소수의 기기들과 사실상 단일화된 운영 체제만을 고려하면 된다. 그리고 iOS의 경우 App Store 심사지침에 앱 개발자는 앱에 대한 새로운 업데이트를 게시 할 때 출시된 최신버전의 운영체제와 호환이 되도록 해야 하며 최신 버전의 운영체제에서 삭제된 기능이나 API를 사용하는 기능이 있어서는 안된다는 규정이 있고 일정 기간 이상 업데이트가 이루어지지 않는 앱은 Apple이 퇴출시킬수 있다고 명시되어 있다. 따라서 안드로이드에 비해서 레거시 지원에 대해 개발자가 신경을 덜 써도 되도록 되어 있다.

일부에서는 이 문제를 다른 시각으로 보기도 한다. 신흥 범용 운영 체제의 과도기적인 문제라고 보는 것. 이렇게 보는 시각에서는 주로 PC를 예로 든다. 사실 Windows PC 역시 안드로이드만큼이나 파편화되어 있다. 예를 들면 같은 PC임에도 사양은 매우 가지각색이고, PC용 모니터들 역시 지원 해상도가 난립하고 있다. 그런데도 Windows PC에서 이렇다 할 파편화 문제가 잘 보이지 않는 이유는 초창기의 PC 역시 이런 파편화 이슈를 거쳤고, 그 결과 앱 개발 주체가 기업 위주로 재편되어 앱 개발에 많은 예산을 투자하게 되었기 때문이다.[56] 안드로이드 또한 같은 과정을 겪고 나면 파편화 문제는 어느 정도 수그러들 것으로 예상할 수 있다.

물론 PC의 파편화 문제가 아예 없는 것은 아니며 그래픽 카드 제조사에 따라 호환이 잘 안되는 게임이 있다던가, 게임이 사용자가 쓰는 모니터 해상도를 지원하지 않아 잘려 보이거나 납작하게 보인다거나[57], 앱에 최소 사양과 권장 사양을 명시해 둔다던가, Windows 버전에 따라 호환이 안 되는 앱이 있다던가[58] 하는 것은 윈도우에서도 흔한 일이다. 제일 큰 문제는 제조사 커스텀 기종, 그리고 안드로이드가 윈도우에 비해 업데이트가 제한적이고 많이 일어난다는 것이다.

8.1.1. 하드웨어의 파편화

하드웨어의 파편화는 PC에서도 발생하지 않느냐는 주장이 있다. 실제로 통일되지 않은 하드웨어 때문에 다소의 출혈은 불가피한데,[59] 예를 들자면 PC 패키지 게임 시장보다 콘솔 게임 시장이 더 잘 나가는 건 별다른 이유가 아니라 하드웨어가 단일화되어 최적화하는 데 애로사항이 줄어들 뿐 아니라 플랫폼을 구매하는 데 쓰이는 자금도 줄어들기 때문이다. 예를 들면 Xbox용(펜티엄 3 기반 700MHz CPU) 게임인 헤일로 2의 PC버전은 펜티엄 4 2.0이 최소 사양이고 펜티엄 4 3.0이 권장 사양이다.

하지만 이는 우스운 주장이다. 안드로이드 옹호 진영에서 똑같은 파편화라고 말하곤 하는 PC 계열의 파편화를 자세히 보면, 철저하게 표준화된 IBM PC 형태에서 시작되었으며 지금도 계속 표준화된 형태를 따르고 있다.[60] 이런 표준화 정책이 있기에 PC 진영은 파편화보다는 다양성에 가까운 모습을 보인다. 심지어 PC의 성능은 웬만한 스마트폰의 몇 배에 달하고, 이에 걸맞은 연산력뿐만 아니라 끊임없이 공급되는 대용량의 전력까지 있다. 그에 반해 스마트폰에 사용되는 하드웨어가 가지는 연산력은 여전히 현대의 소프트웨어 개발자들에게 있어서 일종의 제한선으로 작용하고 있다. 조금 심한 예로, 2GB 또는 4GB 메모리가 일상화된 PC 전문 소프트웨어 개발자가 스마트폰 개발에 뛰어들면 사용 가능한 메모리가 1/4도 아닌 1/8로 줄어드는 경우도 존재한다. 그 만큼 최적화를 더 해야 한다는 것이고, 이는 곧 개발 기간(및 비용)을 의미한다.

당연히 PC보다 안드로이드 폰의 문제가 심각한 것이, CPU를 예로 들자면 PC는 x86계열 CPU에 맞추면 극단적인 소수의 경우를 빼고는 정상 작동하지만 안드로이드 단말기에는 ARM, MIPS, x86 등 여러 가지 아키텍처가 쓰이고 있다. 안드로이드에 가장 많이 쓰이며 레퍼런스 폰들에 쓰인 ARM 프로세서용 네이티브 코드를 넣어 만든 상당수의 애플리케이션들이 MIPS 기반 프로세서 안드로이드나 x86 기반 안드로이드에 돌리면 정상적으로 작동하지 않을 것은 당연한 소리이다. 실제로 중국에서 MIPS 기반 CPU로 만든 태블릿을 내놓은 걸 테스트하니 제대로 돌아가는 애플리케이션이 한 손에 꼽을 수준이라고 한다.근데 요새도 MIPS가 나오긴 하나?

물론 아예 손을 놓은 것도 아니라서 인텔이 내놓은 클로버트레일은 x86 기반으로 안드로이드가 작동하는데, 대부분의 앱은 제대로 작동한다. 이는 안드로이드 애플리케이션 중 dalvik으로 만들어져 있는 앱들이 호환성을 타지 않기 때문이다. 물론 고성능을 필요로 하는 게임과 같은 앱들은 네이티브 코드인 NDK로 작동되고 있는데, 이런 앱들은 호환성에 영향을 받는다. 때문에 인텔은 x86 안드로이드에 ARM 코드를 x86 코드로 바꿔주는 기능인 Houdini Binary Translator을 내장했다. 이것으로 90% 이상의 NDK 앱들은 제대로 작동시킬 수 있다고 한다.#[61]

결론적으로 안드로이드 제조사들이 피처폰 제조에 익숙한 노장들인 탓도 있지만, 하드웨어에 변화를 꾀하는 제조사들의 움직임이 오히려 안드로이드의 발목을 잡고 있다 하겠다. 스마트폰을 제작할 때야 이런저런 기능을 넣고 화면 크기를 바꾸는 식으로 제작하면 되고, 실제로 제조사는 이에 맞춰 운영 체제를 변경해 판매하지만 정작 시장이 이런 급박한 변화를 따라가기에는 역부족인 것이다. 무엇보다도 다양한 하드웨어에 따라 소프트웨어 개발자가 일일이 이에 맞춰 손을 봐야 하니 그건 그거대로 개발 비용이 증가하는 원인이 된다. 괜히 개발자들이 농담으로 돈은 앱스토어에서 벌고 개발은 안드로이드에서 한다고 하는 게 아니다.

최근에는 안드로이드 폰의 성능이 상향평준화되어 하드웨어 파편화 논란은 많이 사그라들었다고 여겨진다. 높아진 성능 덕분에 ART 기반으로 만들면 만사 OK고 성능 문제 때문에 NDK를 쓰더라도 APU는 삼성 엑시노스, 퀄컴 스냅드래곤, 하이실리콘 기린, 미디어텍 Helio로 4등분 되었고, 네 가지 모두 ARM 기반이라 기본적인 베이스는 동일하다. 3D 게임의 경우에도 언리얼 엔진이나 유니티 등을 사용하는 게 대부분인데, 이런 하드웨어적인 차이에 따른 NDK 대응은 이미 엔진 단에서 처리되어 있다. 기기도 삼성의 갤럭시 S 시리즈가 대부분의 점유율을 차지함에 따라 퀄컴 스냅드래곤, 삼성 엑시노스, 하이실리콘 기린, 미디어텍 Helio 이 네 가지만 잘 지원하면 안드로이드 최적화는 큰 문제가 없는 수준이 되었다.

다만 삼성 갤럭시 GOS 성능 조작 사건을 비롯하여 끊이지 않는 안드로이드 계열 ARM CPU들의 발열 및 최적화 문제, 그에 반하여 끝없는 성능 향상을 보여주고 있는 Apple Silicon 계열 CPU들을 볼 때, 안드로이드는 최소한 파편화 문제에 있어서만큼은 PC 계열과 Apple 양쪽을 넘어서질 못하고 있는 것도 사실이다.

8.1.2. 소프트웨어의 파편화

소프트웨어(이하 소프트웨어) 쪽도 파편화가 심각한데 PC만 하더라도 제품 사양도 제각각이고, PC 제조사별로 설치된 프로그램도 제각각이지만 윈도우는 모두 순정이다. 하지만 안드로이드는 운영 체제 위에 프로그램이 설치되는게 아니라 아예 운영 체제를 개조해버린다. 때문에 제조사나 통신사에 유리한 앱을 강제로 설치해 두는 경우가 있다.

리눅스도 이런 경향이 없지 않지만, 안드로이드에 비하면 유저층이 전문가가 더 많기 때문에 문제가 덜 부각된다. 당장 리눅스를 쓰다가 문제가 발생하면 일단 구글이나 스택오버플로우에 검색을 해보라는 얘기를 많이 하는데, 안드로이드 유저들의 절대다수를 차지하는 일반 사용자들은 그런 식으로 자신이 직면한 문제를 정확하게 진단하고 웹에서 해결법을 검색해내는 능력이 부족하다.[62] 당연히 안드로이드가 특수 계층을 노리고 있지 않는 스마트폰 운영 체제를 지향하고 있는만큼 리눅스나 Windows를 반례로 들 수는 없는 노릇이다.

어떻게 보면 하드웨어 쪽 파편화보다 더욱 심각한 상황이라고 할 수 있다.[63] 필수적이든 부수적이든 일단 프로그램인 만큼 실제 사용자가 원하는 앱을 돌릴 연산 능력을 빼앗기는데 기종마다 어느 프로그램이 어떤 영향을 끼치는지 전혀 다른 상황이 온 셈이다. EPIC Games CEO는 2011년 12월, 인터뷰에서 이 상태로는 안드로이드에서 도저히 자사 게임인 인피니티 블레이드 같은 게임을 돌릴 수 없을 것이라고 말했을 정도. 마찬가지로 앵그리버드를 개발한 걸로 유명한 ROVIO CEO는 앱스토어에 판매되고 있는 것과 똑같은 앱을 안드로이드 API를 사용해 모든 안드로이드 기기에서 돌아갈 수 있도록 최적화시키고 그 가격을 앱스토어판과 비슷하게 맞출 수 있다면 안드로이드의 시대가 올 것이라고 말했다.

레퍼런스에 충실한 운영 체제라면 큰 상관이 없겠지만, 현실은 제조사나 통신사나 신제품 광고를 위해서 신기능을 추가하고 이를 컨트롤하는 기능이 운영 체제에 삽입되는 경우가 많다. 사실상의 표준이며 많이 사용되는 전면 카메라 이용 정도라면 애교이지만 제스쳐 기능, 동작 인식 등의 사실상의 표준도 아니고 극히 일부의 폰에서만 사용된 기능이라면 충분한 잠재적 문제 요소를 가진다.

또한 API[64] 레벨에 따른 파편화도 생기는데, 대표적인 예로 App2SD를 기본적으로 지원[65]하며, 동일한 프로젝트/소스라고 할지라도 API 레벨이 달라지면 버그와 에러가 우수수 쏟아진다.

다만 구글에서도 손을 놓고만 있는 것은 아니다. 4.0 이후부터는 안드로이드 기본 UI를 모든 기기에서 사용할 수 있도록 포함시킬 것을 명시하고 있으며, 버전에 따른 API 파편화 등을 Google Play Service라는 별도의 서비스를 통해 막으려는 노력을 하고 있다. 그런데 내장 메모리가 엄청나게 작은 구형 폰에서는 저 라이브러리 앱이 차지하는 용량도 작은 게 아니라서 컴맹들에게 욕을 바가지로 먹고 있다(...).

사실 이는 오픈 소스의 태생적인 문제인데, 오픈 소스라는 개념의 의도가 집단지성을 통한 소프트웨어의 개량 및 발전이다. 즉 오픈 소스는 파편화가 되라고 만든 것이며, 그렇게 이런저런 기술들이 오고가며 역사가 더 나은 방향으로 나아갈 것이라는 믿음에서 출발했다. 실제로 그러기도 했고. 따라서 각 제조사에서 안드로이드를 이리저리 뜯어고치는 것은 오픈 소스라는 관점에서 보면 막아야할 일은 아니다. 그리고 안드로이드라는 리눅스를 모바일 환경에 맞게 파편화한 것이다. 즉 안드로이드의 존재가 '소스 코드의 공개가 기술의 발전과 역사의 진보로 이어진다는 믿음'의 증거이다. 물론 안드로이드의 파편화로 인한 앱 개발의 어려움과 일반 유저들의 불편을 '이건 오픈 소스니까 너희들이 다 참아'라고 몰아붙일 수는 없으며 하루빨리 뭔가 뾰족한 해결책이 나와야 하는 매우 중대한 문제이다.

다만 5.1 이후 6.0을 지나 7.0이 올라가면서 이런 문제는 거의 사라졌다. 정확히는 약소 모델들이 순정에 가깝게 변하고,[66] 삼성 갤럭시가 안드로이드 진영의 파이를 독식하게 된 데다 구글이 직접 레퍼런스 폰도 만들어 팔기 시작하면서 파편화가 굉장히 줄어들었다. 위에서 언급한 대로, 시장 점유율의 변화로 인해 중소규모 라인 기기들이 무너지면서 자연스럽게 문제가 해결된 것이다. 그러니까, 갤럭시와 픽셀에서 돌아가는 앱들이 자신들의 기기에서 돌아가지 않는다면 그냥 망하는 시대가 온 것으로 개발자는 그냥 갤럭시 시리즈에 맞추면 다른 기종에서의 실행은 문제가 없는 것으로 간주하고 타 기종 관련 버그 리포트만 처리하면 된다고 간주해도 별 문제가 없는 정도의 상황이 된 것이다.

8.1.3. ESD(마켓)의 파편화

안드로이드는 기본적으로 오픈 소스 운영 체제다. 이는 구글이 안드로이드를 가져다가 전혀 다른 운영 체제로 개조를 해서 판매하더라도 전혀 제재를 가할 의사가 없고 가할 수 없다는 의미다. 단편적으로는 하드웨어나 소프트웨어를 노리고 운영 체제를 건드리는 경우가 많지만, 특수한 경우 ESD(마켓)을 노리고 운영 체제에 손을 대는 경우도 있다.

한국에서 볼 수 있는 가까운 예로는 구글이 아닌 제 3자가 만든 ESD[67]가 있다. 간단히 iOS와 비교해보자면, 기본적으로 Apple에서 지원하는 App Store 외에는 앱 장터가 없다.[68] 반면에 안드로이드는 누구나 가져다 쓸 수 있다는 점을 이용해서 자기들이 기기를 개발, 그리고 이 기기들만을 위한 장터를 개발하는 경우도 많이 늘고 있기 때문에 하드웨어 파편화와 소프트웨어 파편화에 이어서 중구난방 플랫폼을 만들어버렸다.

이를 중점적으로 노리는 중국 시장을 제외하더라도 미국만 하더라도 아마존닷컴이 이를 노리고 있는 실정이다. 아마존에서 출시한 킨들 파이어 모델의 경우 공격적인 가격대를 유지함과 동시에 리눅스를 사용하지만[69] 실상 이용 가능한 것은 아마존 앱스토어뿐이다.[70] 점유율을 가져오고 있다. 10만원대로 기기가격을 후려쳐서 저렴한 태블릿을 뿌리는 방식으로 안드로이드의 파이를 가져오고 있다.

결국 이러한 성공 사례들이 겹치고 겹쳐서 구글 마켓을 제외한 안드로이드를 돌리고 안드로이드를 돌리는 기기라고 광고하지만 정작 기준 ESD는 구글 마켓이 아닌 경우가 점차 늘고 있는 것이다.

그러나 현재는 마켓 파편화의 문제가 거의 종식된 상황이다. 2017년 기준으로 한국에서는 기존의 SK, KT, LG의 모든 마켓과 네이버의 앱 마켓이 원스토어로 통합되었으며 모든 기능을 API로 사용할 수 있다. 또한 앱의 성능에 영향을 주는 게 아닌 구매, 인증 등에 영향을 주는 부분이라 개발자가 구매 시 분기만 잘 나눠줘도 하나의 소스로 모든 마켓에 업로드가 가능하다. 한 번 빌드 시 여러 마켓 대상으로 다양하게 APK를 생성할 수도 있지만 이건 어디까지나 설정의 문제이다. 삼성의 갤럭시 스토어나[71] 기타 마켓들은 사용률이 워낙 낮아서 고려 대상이 되지 못하고 있다. 게다가 아마존의 킨들/파이어 시리즈도 안드로이드를 사용하는 중국제 태블릿들이 우후죽순 출시되면서 점유율이 밀려나고 있다. 오히려 ESD가 분산됨으로서 애플과 달리 악명높은 미국의 반독점 소송에서 벗어나있다.[72]

8.2. 안드로이드를 수정하는 이유

안드로이드는 각 제조사에 따라 기본 앱 등을 탑재하고 수정하는 과정에서 불필요한 용량 차지, 기기 성능 저하 등을 야기하고 있다는 주장도 일부 있다. 또한 실제로도 이런 문제점을 가진 기기들이 존재하는 상황이다.[73] 하지만 그럼에도 제조사들이 순정을 넣지 않는 것은 안드로이드를 스마트폰 제조사에서 수정할 수 밖에 없는 상황이기 때문이다.

안드로이드 레퍼런스 폰, 즉 순정의 안드로이드 버전을 탑재하고있는 스마트폰은 여러모로 불편한 사항들이 눈에 띈다. 예를 들어 대한민국에서 가장 대중적으로 사용되는 SNS인 카카오톡을 사용할 때 읽지 않은 메시지가 앱 아이콘 위에 숫자로 표시되는 기능이 있다. 그러나 순정 안드로이드에선 2017년에 나온 8.0 오레오 이전까지만해도 이를 지원하지 않았다. 또한 메시지 알림을 활성화시켜두면 화면 잠금 상태에서 읽지 않은 메시지가 화면 정면에 떠야하는데, 순정 안드로이드에선 가장 최근의 알림 1개만 노출시켜주어 알림으로 나타난 모든 메시지를 미리 읽어볼 수 없다. 이외에도 안드로이드 6.0 이전에 지문인식 센서를 탑재한 폰이라든가, 갤럭시 노트 시리즈의 특징인 펜 악세사리, 엘지 스마트폰의 듀얼스크린처럼 별도의 하드웨어가 탑재된 기기는 제조사의 커스텀이 들어갈 수밖에 없다.[74]

위에 서술한 내용과 같이 순정 안드로이드로는 UI/UX적으로 사용자에게 불편함을 야기하고 있고 IoT나 악세사리 호환성 등을 제조사에서 보완해주지 않으면 스마트폰 경쟁력에서 밀릴 수밖에 없는 상황이기에 안드로이드에 간섭하는 것이다.

구글도 이 부분을 인지하고 제조사의 프레임워크 부분을 분리하는 안드로이드 트레블 등을 도입하고 있으나 도입된지 얼마 되지 않은 상황이라 아직 갈 길이 요원하다.

8.3. 안드로이드 트레블(Android Treble)

위에서 언급된 파편화 문제들을 해결하기 위해 오레오부터 적용되는 안드로이드의 새로운 아키텍처이다. 자세한 내용은 해당 항목 참조.

8.4. 기타 문제

파편화 문제에서 볼 수 있듯이 경쟁사인 Apple과 달리 안드로이드 기기들은 운영 체제를 컨트롤하는 구글과 기기를 생산하는 제조사가 따로 놀다보니 소프트웨어와 하드웨어가 조화를 이룬다기 보다는 부조화의 극치를 보여주게 마련이다. 제조사들이 기능을 넣어도 제약이 걸리거나 단순한 공염불식 마케팅으로 그치는 경우가 다반사다. 예를 하나 들자면 2016년 말 기준으로 안드로이드는 컬러 매니지먼트를 지원하지 않는다. 그러다보니 삼성전자 같은 회사가 광색역 표현 모드(Wide Color Mode) 같은 기능을 넣어도 운영 체제가 다양한 색역을 지원하는 게 아니다보니 진정 유용하다고 할 수 없는 게 현실이다.

그리고 문제점 발생시 인터넷을 찾으면 해결책이 나오긴 하지만, 이게 무슨 연관이 있는 건지 정말 뜬금없는 경우가 있다. 사례 마시멜로에서 나타났던 사례에서 보듯이 LTE가 원활하게 작동함에도 불구하고 (동영상을 찾는 데까지는 빠르게 진행되는데) 웹/앱의 모든 동영상/음악 파일 재생이 불가능하고 (켜면 1초도 재생이 지속되지 못하고 끊어진다) 더구나 기기에 다운로드되어 있는 동영상/음악마저도 재생이 불가능한 그야말로 운영 체제 전체를 잠식하는 버그가 나타나는데 이걸 해결하는 방법은 황당하게도 구글 플러스 계정의 자기 기본 정보를 삭제(그러니까 탈퇴)하는 것이다. 구글 플러스가 무슨 짓을 하길래 폰 전체를 엉망으로 만드는지 일반 유저로서는 인과관계를 도저히 이해할 수가 없다. 이는 일반 유저가 리눅스를 접할 때 맞닥뜨리는 문제와 유사하다.

8.5. 버그 목록


[1] Microsoft가 구글이 아닌 안드로이드 제조사에게 특허료를 청구하는 이유는, 안드로이드가 탑재된 기기를 생산, 판매 하는 것이 특허기술의 실시이기 때문이다. 따라서 구글도 직접 만들고 판매하는 픽셀 등의 자사 폰도 당연히 특허료를 내고 있다. 사실 표면적으로는 구글이 안드로이드를 무료로 배포하고 있기 때문에 구글이 이를 통해 직접적인 이익을 얻고 있지 않기 때문에 제조사들을 상대로 특허료를 청구하는 것이다.[2] 다만 모든 제조사들을 대표해서 삼성전자 일부 기기는 마이크로소프트 앱이 사전 탑재된다.[3] 사실 이는 구글 입장에서는 별로 문제 될 만한 일이 아니었다, 왜냐하면 되지 말아야 할 것을 안 되게 한 거니깐. 자세한건 저장소 구조의 대개편, 그리고 SD카드 사용시의 대혼란 을 참고[4] 안드로이드 기본 커널은 common kernel라고 부른다[5] NVIDIA는 이것 때문에(안드로이드 일은 아니었다) 리눅스의 아버지 리누스 토르발스로부터 친히 공개석상에서 가운데손가락을 먹기도 하였다.[6] 대부분의 칩과 하드웨어는 버그가 있고 하드웨어를 리콜할 수 없기 때문에 소프트웨어로 해결하게 된다. 그러니까 소프트웨어 Workaround... 그런데 이미 출시한 제품에 대한 운영 체제 업데이트의 경우 하드웨어는 이미 안정화시킨 다음이기 때문에 일반적인 개발 과정만큼 많은 문제는 발생하지 않는다.[7] 권장일 뿐이다. 강제성이 없어서 아예 업데이트 안해줘도 제조사에게 압력이 들어오지 않는다.[8] 2023년 7월 기준 일부 기기에 한해 삼성은 4회 운영체제 업데이트 + 보안업데이트 1회를 제공한다.[9] 거의 대부분의 기기가 약 5년 지원이다. iPhone 3GS의 경우 1년에 한 번씩 신버전이 발표되는 iOS의 특성상 처음에는 3.0 버전으로 시작하여 4.0, 5.0, 6.0까지 4년 동안 3번이나 올라갔다. 다만 기기 성능이... 그래서인지 Apple이 일부러 구형 기기에 운영 체제 지원을 함으로써 버벅이게 만들고 최신 iPhone을 사도록 유도한다는 음모론도 존재한다. 소비자 입장에선 기존 버전으로 렉 없이 잘쓰고 있었는데 초기화한 뒤로 강제로 최신 버전으로 업데이트되었고 사용할 수 없을 정도로 느려진다는 것은 매우 기분 나쁘기도 하다. 특히 iOS 7 이후 iOS의 버전이 판올림될 때마다 기존 구형 기기의 성능이 상당히 떨어지게 만드는 것도 사실이다 보니, (iPhone 4s 같은 경우에는 업데이트 이후 성능 하락 때문에 소송이 발생하기도 했다) 꼭 운영 체제를 최신 버전으로 쓰는 것이 사용자에게는 무조건 좋다고 볼 수가 없다. 사실 Apple이 구형 기기를 강제로 최신 버전으로 올리는 것은 사용자를 배려해서가 아니라, Apple과 개발자 입장에서 일괄적으로 사용자들이 최신 버전을 사용하게 강제하면 그만큼 소프트웨어 관리가 편해지기 때문이다. 즉 개발자 입장에서의 편의와 Apple 자신이 소프트웨어 관리하기 편해서 최신 버전으로 올려주는 것이지 실제로 사용자를 위한다고 보기 어렵다.[10] 그럼에도 불구하고, 운영체제 업데이트는 전반적으로 장점으로 여겨지고 있다. Apple도 운영체제 최적화를 위해 부단히 업데이트를 하는 편이고, 이러한 업데이트에는 보안 관련 업데이트도 포함이 되기 때문이다. 또한 소프트웨어 관리가 편해진다는 말은 바꿔 말하면 개발자들에 가해지는 부담이 줄어든다는 것으로, 전체적인 애플리케이션 질 확대에 일조하고 있는 것 또한 사실이다. 물론 사용자들이 운영 체제 업데이트를 통해 꼭 득만을 보는 것은 아니지만, 최대한 오랫동안 소프트웨어 지원을 받는 것이 결과적으로는 더 좋은 게 사실이다. 파편화보안 항목도 참조.[11] 정확히는 구글 플레이 스토어에서 집계한 자료이다.[12] 애플리케이션의 사이드 로딩이 가능하다[13] 소액 결제 승인 번호가 줄줄이 유출되고 있다.(#)[14] 대표적인 예로 게임의 아이템 언락, 광고 차단 등[15] apk 파일을 추출하고 압축 해제 프로그램으로 연 다음 classes.dex 파일을 분석하면 코드를 대략 알 수 있다. dex2jar과 jd-gui를 이용해서 코드를 분석한 뒤, 우회 방법을 찾아내서 classes.dex를 디컴파일한 smali 파일들을 수정해서 apktool로 다시 apk파일로 만들면 끝. 자신이 코드를 분석할 수 있고, apk파일을 구할 수만 있다면 유료 앱의 구매 검증 과정을 우회해서 사용하는 것까지 가능하다. 중국이나 러시아 등지의 크래커가 이미 뚫어서 배포하는 패치 파일까지 존재한다.[16] 구글이 이 부분에 대해 조금 더 적극적인 대처만 하더라도 상당한 개선이 될 수 있다고 보는 시각이 있다. 예를 들면 운영 체제 측면에서 앱이 사용하지도 않는 권한을 너무 많이 요청하면 주의 문구나 안내 문구를 앱 실행할 때마다 보이게 한다든지. 실제로 마시멜로부터는 앱에서 민감한 권한을 요구할 경우 무조건 사용자의 허가를 받도록 변경되면서 좀 나아졌다. 문제는 그 사용자가 무슨 일이 일어나는지 모르고 무조건 허용하는 때가 많다는 것.[17] 애플리케이션의 권한 문제는 Apple처럼 권한을 일부만 승인해주는 방식을 쓰면 되나 구글은 이것을 적용하지 않았다. 앱이 요구하는 대부분의 권한을 허용해주지 않으면 실행 자체가 안 된다.[18] 보안 메뉴에서 설정/해제할 수 있다[19] 소프트웨어를 통한 자동화 방식이어서 해커가 우회 방법을 찾기 쉽다. 구글 눈에만 보이지 않으면 지속적으로 피해를 입힐 수 있다.[20] 구글에서 AOSP(원본 안드로이드)를 배포하면 그것을 제조사에서 가져다가 개조하는 구조. 새 버전이 나오려면 구글 - 제조사 순으로 2단계 이상 거쳐야 한다.[21] 이전 판에서 오픈 소스이면서 보안이 강한 예로 SELinux가 언급되었는데 안드로이드에는 이미 SELinux가 적용되어 있다.[22] 미국 점유율 자료, 일본 스마트폰 판매 순위[23] 거의 따로 논다고 할 정도로 독립적이다.[24] 예를 들어 안드로이드 7에서 도입된 파일 기반 암호화의 경우에는 기존에 사용하던 전체 디스크 암호화보다 안전하지만 호환성 문제로 인해 iOS보다 낮은 수준으로 적용하였으며 제조사들도 이 방식을 늦게 도입했다.[25] 초창기에는 안드로이드 쪽은 멀티미디어, 엔터테인먼트, 게이밍 분야가 강세였고, iOS 쪽은 워드프로세서, 사진 편집, 기타 업무 분야가 강세였다. 즉, 처음에는 안드로이드는 동영상을 보고 게임을 하며 놀고 즐기고 여가 시간을 즐기는 데 쓰는 기기였었고, iOS는 주식을 하고 금융 앱을 돌리며 워드프로세서로 사무를 보며 업무를 수행하는 기기였었던 차이로 인해 안드로이드 쪽이 보안을 어느정도 희생한 것도 사실이었다.[26] 자체 서버에서 돌리는 것은 iOS의 보안이 더 좋다.[27] 단적인 예로써, 앱스토어의 보안 관련하여 빡빡한 검수는 장점이지만, 빡빡한 검수라는 게 보안에만 한정되지 않기 때문에 청소년에게 부적절한 컨텐츠, 여러 멀티미디어 스트리밍 앱, 정치적이나 문화적 차이가 발생하는 부분에 있어서는 App Store 쪽이 매우 많은 제약을 갖고 또한 이런 부분에서는 안드로이드 쪽이 극단적으로 유리한 것도 사실이다.[28] 이게 오픈 소스인 안드로이드의 보안 면에서의 장점이다. Windows 같은 경우엔 Microsoft가 아직 발견해서 시인하고 수정하지 못한 문제점이 있으면 PC 제조사나 개인 개발자 단에서는 알아도 어떻게 할 방법이 없다.[29] 취약점을 이용해 타인의 디바이스를 멋대로 조종하거나 녹음하거나 훔쳐보는 것이 가능하다.[30] 사용자가 설치한 앱과 앱 데이터 등[31] 사진, 동영상, 문서 같은 미디어 컨텐츠[32] 플래시 메모리를 복사해서 무한으로 해킹을 시도하거나 키를 추출할 수 있기 때문.[33] 시스템이 변조(흔히 말하는 루팅이나 커롬)될 경우 키를 삭제해 버리는 안전한 암호키 저장소. 금융 IC카드나 TPM도 여기에 해당한다.[34] 대표적으로 구글이 개발한 안드로이드용 구글 크롬의 경우 SD카드로 저장할시 저장경로가 SD카드의 Android/data/com.android.chrome/files/Download/ 폴더에 강제로 고정됐는데 안드 11부터는 해당 폴더에 접근 할 방법이 없다![35] 참고로 안드로이드 2.3이 나온 게 2010년이다. 11년간 지원하다가 2021년 9월달에 지원 중단한 것.[36] 구글의 수익 구조, 즉 광고에 기반한 것을 보면 당연히 예상 가능한 변화였다는 것도 기억하자. 유튜브고 구글 닥스고 캘린더고 지메일이고 안드로이드고 죄다 광고 수단이다. 심지어 광고 안 나오던 iOS의 유튜브 앱도 이젠 광고가 지천에 깔려서 귀찮을 지경에 이르렀다.[37] 특히 통신사들은 수익에 큰 타격을 입었다. 구글이 일방적으로 매출 수익에서 통신사가 가져가는 양을 반절로 깎고 자신들이 가져가는 양을 그만큼 늘렸기 때문이다. 쌤통이다[38] 대다수의 구글 서비스가 국내에서는 한국의 대체 서비스로 인해 없어져도 크게 문제가 되지 않는다[39] 실제로도 서드파티 커스텀 롬은 그렇게 만든다.[40] 미국 제제를 맞은 화웨이가 유튜브를 비롯한 대부분의 구글앱이 빠져있는 것이 대표적인 사례이다.[41] 2011년에 화제가 되었던 스마트폰 순위 짤에서 (아이폰을 포함한) 다양한 안드로이드 기기들이 등장했던 걸 생각해보면 격세지감이 따로 없다.[42] 이 때문에 경쟁자가 사라진 삼성이 독과점 상태에서 오만, 나태해지면서 GOS 게이트같은 사태가 터졌다는 의견도 제기되었다. #[A] 한국에 정식 발매되는 외산폰은 샤오미의 Redmi Note 시리즈, 모토로라의 Edge, G 시리즈, 낫싱 폰 시리즈가 있으며, 정식 발매되지 않는 외산폰은 구글의 구글 픽셀 시리즈, 소니의 Xperia 시리즈, ASUS의 ZenFone 시리즈 등이 있다.[A] [A] [46] 경고 없는 통화 녹음은 극소수의 기기에서 지원하지만 고가의 기기에서는 삼성보다 처참한 가성비가 나오는 경우가 많고 페이(특히 MST)는 아예 포기해야 한다.(다만 이건 안드로이드의 문제는 아닌것이, 법률적 문제로 인해 한국에 구글 월렛이 못들어온 것이다.)[47] 어떻게 보면 반독점법의 본래 취지와도 비슷하다.[48] 전자의 대표가 모토마이저, 마일스톤, 드로이드, 모토글램 이외에는 동작을 보증하지 못한다. 하지만 이건 범용 애플리케이션이 아니라 특화 애플리케이션이다. 후자의 대표가 어도비 플레쉬, CPU가 ARMv7(Cortex-A8) 600MHz 이상, WVGA 이상의 해상도가 권장 사양이다.[49] 이는 장점이 될 수도, 단점이 될 수도 있다. 모델에 딱 맞는 특화 애플리케이션을 만들 수도 있지만, 이런 애플리케이션을 쓰는 사람은 일반 유저가 아닐 가능성이 크다.[50] 한국의 경우, 넥서스 원, 넥서스 S, 갤럭시 넥서스마저도 통신사 간섭으로 파편화가 일어나고 있었다. 통신사의 망 연동 테스트, 제조사의 안정성 테스트 등을 핑계로 최신버전 소프트웨어를 유지하는 것이 힘들기 때문이다. 갤럭시 넥서스는 순정롬이 4.1.2가 나오는 시점에 한국향이 4.1.1로 업데이트된다거나 하는 것이 그 예.[51] 티스토어, 올레 마켓, 오즈스토어, 삼성앱스 등등[52] 조사에 중국이 포함되지 않은 이유이기도 한데, 안드로이드를 기반으로 전혀 다른 기기를 제조해서 판매하는 게 충분히 가능하고 널리 퍼진 게 중국시장이다. 미국도 아마존, B&N같은 eBook 시장이나 태블릿 시장을 중점적으로 안드로이드를 가져다 전혀 다른 운영 체제로 개조해 판매하는 게 퍼져 있다.[53] 참고 링크 안드로이드 파편화(원문), 안드로이드 파편화(번역), 개발자 관심 하락1, 개발자 관심 하락2, 안드로이드 앱 개발 안 함1, 안드로이드 앱 개발 안 함2, 안드로이드 앱 개발 안 함3[54] 실제로 스마트폰 점유율과 이익을 살펴보면 Apple과 삼성 이외에는 매우 적은 비중을 차지하고 있다. 그나마 Apple이 전체 스마트폰 분야에서 상당한 이익을 차지하고 나머지를 안드로이드 진영이 나눠먹는다고 하면 삼성전자 이외에는 입에 풀칠하기도 힘들다. 괜히 운영 체제 업그레이드를 못 하는 게 아니다.[55] 저가형은 각 기종별로 브로드컴(인도 같은 이머징 시장과 100불 이하용), 퀄컴 스냅드래곤, 삼성 엑시노스(통신사 요청이나 물량 공급 때문에) AP가 혼재되어 있었다.[56] Windows에서 인디 개발자 앱이 잘 보이지 않는 이유를 생각해 보자. 물론 규모의 경제 때문에 여타 운영 체제들보다는 압도적으로 인디 개발자 앱이 많긴 하다.[57] 전체화면만을 지원하는 게임이 이런 경우가 많다.[58] 특히 서버용 운영 체제나 막 새로 나온 운영 체제[59] 이것은 소프트웨어와 하드웨어가 같은 개발사에서 개발되는 애플의 매킨토시의 강점이기도 하다. 매킨토시의 전통적인 장점인 기기 안정성은 여기서 나오는 것이다. 물론, 인텔로 이주한 현재 Mac의 강점은 macOS를 돌린다는 것 정도다. BIOS 안 쓰고... 어차피 PC는 자원이 모바일에 비해 엄청나게 많으므로 굳이 하드웨어 레벨까지 내려가서 코드를 작성할 필요가 없는 것도 있다.[60] DDR4PCI-E든, USBSATA든, 정해진 표준을 따르며 그에 맞는 드라이버를 제공하는 PC 부품의 다양성은, 임베디드 기기라고 불러도 될 정도로 범용성이 떨어지는 안드로이드 기기(+부품)들의 파편화 따위가 비교할 수 있는 경지가 아니다.[61] 다만 90% 호환성 제공이라는 인텔의 언급은 충분히 걸러 들어야 할 필요가 있다. 통상 제대로 된 소프트웨어업체의 경우 나름대로의 앱 검수과정을 거친 후 호환성이나 버그 개수 등이 일정 수준 이상을 충족하는 것을 확인한 후 출시하게 된다. 그런데 검수 과정은 대체로 각 소프트웨어 회사들의 영업비밀에 해당하는 내용이라서 공개되거나 공유될 만한 것들이 아니고 따라서 인텔이 특정 앱들에 대해서 바이너리 변환기가 호환된다고 확인해줄 수 있을 만한 권한을 갖고 있을 턱이 없다는 것이다. 다만 무식하게 일일이 직접 깔아서 시험해볼 수는 있다. 엄밀히 따져서 회사가 직원에게 돈을 주고 유료/무료 애플리케이션을 직원 명의로 업무용 기기에 깔게 해서 직접 돌려보는 건 법적으로 문제될 게 없으니까. 실제로 사용자 수가 매우 많은 유명 앱의 경우 이런 식으로 호환 여부 확인을 했을 수 있다.[62] 사실 리눅스도 개인용 운영 체제로서는 이 문제 때문에 골머리를 썩이고 있다. 지금이야 리눅스는 서버용 운영 체제로 완전히 정착하여 전문 사용자가 다수를 차지하지만, 만약 안드로이드처럼 모든 계층이 사용하는 범용 운영 체제가 된다면 이러한 파편화는 큰 문제가 된다.[63] 일반 사용자의 경우 공장 출고 당시의 소프트웨어 버전을 그대로 사용하는 경우가 많기에, 동일 모델이라 해도 안드로이드의 경우 출고 시기별로 버전이 달라지는 파편화가 발생하게 된다. 심지어 샤오미마냥 신형 기기에 구형 안드로이드를 깔아놓는 경우도 많다.[64] Application Programming Interface. 특정 플랫폼용 프로그램을 개발할 때 사용하라고 제공되는(당연하겠지만 해당 플랫폼 개발사에서 제공하는 경우가 대부분. 가장 대표적인 예가 Win32 API.) 기본 기능들. 여기서는 Target 안드로이드 버전이라고 보면 된다. 프로요가 8(2.2) or 9(2.2.x), 진저는 10, 허니컴은 11 이런 식.[65] API Lv 9 이상[66] 특화 기능 몇개를 제외하고 순정을 그대로 가져다 쓰는 경우가 많다.[67] LG 스마트월드, 차이나모바일 모바일 마켓, ZTE APPS, 레노버스토어, 원스토어(구 티스토어, 올레 마켓, 오즈스토어) 갤럭시스토어 등[68] 탈옥 후에 다른 앱 장터를 쓸 수 있긴 하나 탈옥은 일반적인 사용 방식이 아니니 논외로 한다.[69] 안드로이드 아니다. 기반이 같을 뿐 다른 OS다.[70] 안드로이드 설치도 시간을 들이면 가능하다.[71] 삼성앱들은 상당수가 이곳으로 업데이트 된다.[72] 유럽연합에서 차후 2개 이상의 ESD를 지원하도록 법을 제정할 예정이라고 한다.[73] 단적인 예로 삼성페이도 안쓰는 사람이 있다.[74] S펜은 전자기공명식 센서가 필요한데 안드로이드 순정에서는 지원하지 않는다.