Logo ko.androidermagazine.com
Logo ko.androidermagazine.com

전화 응원은 실제로 무엇을 의미합니까?

차례:

Anonim

우리는 당신의 질문을받는 것을 좋아합니다. 서로 도울 수있을 때 항상 좋은 일이며, 답을 찾을 때 스스로 배우는 것입니다. 우리가 그들 모두에게 답변 할 시간을 찾을 수는 없지만, 때로는 특정한 질문이 충분히 답변 될만한 가치가 있습니다.

"뿌리는 무엇을 의미합니까?" 그 질문 중 하나입니다. 이 개념은 우리 중 일부에게는 단순 할 수 있지만 Android 또는 다른 권한 기반 운영 체제를 다루는 데 시간을 소비하지 않은 많은 사람들에게는 질문이 있습니다. 최대한 최선을 다해 답변 해 드리겠습니다.

권한

루트를 정의하기 전에 루트가 존재하는 이유와 작동 방식을 이해하는 것이 중요합니다. Android는 파일 구조에서 권한 (Linux 기반 권한)을 사용하기 때문입니다. 모든 파일, 모든 폴더 및 모든 파티션에는 일련의 권한이 있습니다. 이 권한은 누가 파일을 읽을 수 있는지 (파일을 변경하지 않고 내용을 보거나 액세스 할 수 있음), 파일에 쓰거나 (파일의 내용을 변경하거나 폴더 또는 파티션 내에 새 파일을 만들 수 있음) 파일을 실행할 수있는 사람을 결정합니다. (앱처럼 실행할 수있는 유형 인 경우 파일을 실행하십시오). 이는 사용자와 권한에 따라 이루어집니다. 특정 사용자는 액세스 권한이 있고 올바른 권한이없는 사용자는 액세스 할 수 없습니다.

휴대폰을 처음 설정하고 처음으로 켜면 사용자 ID가 할당됩니다. 다른 사용자가 Google을 통해 로그인하면 다른 사용자 ID가 할당됩니다. 앱이 휴대 전화에 설치되면 자체 사용자 ID도 할당됩니다. 시스템 자체는 사용자이며 전화기에서 실행해야하는 다른 프로세스에는 자체 사용자 ID가있을 수 있습니다. Android의 모든 파일에 대해 무엇이든 할 수있는 모든 것은 사용자입니다.

사용자 및 권한 시스템은 Android가 누가 무엇을 할 수 있는지 추적하는 방법입니다.

메시징 앱을 설치한다고 가정 해 보겠습니다. 설치시 사용자 ID가 지정됩니다. 또한 자체 데이터 파티션에서 액세스 권한 만있는 지점을 얻습니다. 앱을 실행할 권한이 있으며 앱이 실행될 때 자체 데이터 폴더 및 파일에 액세스 할 수있는 권한이 있습니다. 앱은 주소록이나 SD 카드 또는 사진 라이브러리와 같은 항목에 액세스 할 수있는 권한을 요청할 수도 있습니다. 이러한 요청에 예라고 대답하거나 이전 버전의 Android에 대한 권한에 동의하는 경우 앱의 사용자 ID에 해당 데이터 파일에 대한 권한이 부여됩니다. 즉, 데이터 폴더 및 해당 내용을보고 변경 될 수 있습니다. 그들 또는 새로운 파일을 추가하십시오. 앱은 "볼"권한이없는 데이터 파일에 액세스 할 수 없습니다. 즉, 이 예에서는 설정 데이터베이스를 보거나 다른 응용 프로그램의 데이터 폴더에 액세스하는 등의 작업을 수행 할 수 없습니다. 샌드 박스라는 용어는 종종 여기에 사용됩니다. 앱은 샌드 박스로되어 있으며 권한이있는 샌드 박스에서만 재생할 수 있습니다.

프로그램이며 응용 프로그램과 같이 실행할 수있는 파일의 경우 동일한 권한 모델이 적용됩니다. 사용자 ID에는 로그인 한 상태에서 설치 한 앱을 실행할 권한이 있습니다. 시스템 사용자에게는 앱을 실행할 권한이 있으며 다른 시스템 수준 사용자는 앱 또는 앱이 사용하는 특정 프로세스에 액세스 할 수 있습니다. 다른 앱은 시작할 권한이없는 앱을 시작할 수 없습니다. 보조 사용자를 추가 한 경우 해당 사용자는 앱이나 파일에 액세스 할 수 없으며 그 반대도 마찬가지입니다. 휴대 전화에는 사용자 ID 가 보거나 변경하거나 실행할 권한 이없는 파일, 폴더 및 앱이 있습니다. 일반적으로 Android의 해당 부분에는 시스템 레벨 권한 (시스템 사용자 ID)이 필요하므로 시스템 사용자 또는 시스템 레벨 권한이있는 사용자는 아닙니다.

전환 권한

전화가 부팅되는 방식과 실행중인 시스템을 시작하고 사용자 ID 권한을 할당하는 데 사용하는 파일을 기술적으로 변경하는 것은 가능하지만 안전하지도 않습니다. 그러나 Android (및 대부분의 Unix 또는 Linux 기반 시스템)에는 루트 사용자라는 것이 있으며 사용자 ID를 변경하기 위해 SubstituteUser 바이너리 (작은 앱으로 바이너리를 생각)를 지원합니다. 이들은 핵심 수준에서 시스템을 관리하는 데 사용됩니다.

전화기를 만든 사람들은 루트 사용자 ID에 쉽게 액세스하기를 원하지 않기 때문에 사용자와 개인 데이터를 보호하기 때문에 이기적인 것은 아닙니다. SubstituteUser 바이너리는 대부분의 빌드에 포함되어 있지 않습니다. 기계적 인조 인간. SubstituteUser가 없으면 사용자 ID를 전환 할 수 없습니다. 그런데 안드로이드의 대부분의 시스템 레벨은 비슷한 이름을 가지고 있습니다. 핵심 보안 (부트 로더 및 / 또는 커널 자체의 파일)은 SELinux의 일부로 사용자 ID를 전환하지 못하도록하는 방식으로 구축되었습니다 (보안 강화 – Linux는 이름이 쉽다고 알려줍니다).. 일부 휴대 전화 (Samsung Knox를 염두에 두는 경우)에는 추가 보호 기능이 있으며 Android를 만드는 거의 모든 회사는 변경을 수행하기 위해 부트 로더를 잠금 해제해야이 파일을 변경하고 사용자 ID를 전환 할 수 있어야합니다.. BlackBerry Priv와 같은 일부 전화는 한 걸음 더 나아가 어떤 것이라도 변경해도 부팅되지 않습니다 (가능한 경우에도).

루트가 되려면 사용자 ID를 변경하는 방법이 필요합니다.

권한이 부여 된 수단을 통해 부트 로더를 잠금 해제하거나 일종의 익스플로잇을 사용하여이 모든 것을 넘어 서면 SU 바이너리 (SubstituteUser)를 실행할 때 실행할 수있는 지점에 PATH라고합니다. 앱이 사용자 ID의 PATH에 있으면 시스템의 정확한 위치를 알려주지 않고 실행됩니다. 또한 SU 바이너리가 사용자 ID에 파일 실행 (실행) 권한이있는 위치에 있는지 확인해야합니다. 다른 앱 (Google Play에는 루트 권한이 필요한 많은 앱이 있음)도 동일한 액세스 권한이 필요합니다. 당신이 당신의 전화를 뿌리는 방법을 사용하면이 모든 루트 방법을 만든 사람들에 의해 정렬됩니다.

모든 것이 완료되면 SU 바이너리를 실행할 수 있습니다 (또는 다른 앱이 SU 바이너리를 실행할 수 있습니다).

루트 액세스 권한 얻기

루트가 들어온 곳입니다. SU 바이너리는 실행될 때 플래그를 사용하여 시스템에 어떤 사용자 ID로 전환 할 것인지 알려줍니다. 예를 들어, 이 "su Jim -c nano"와 같이 Ubuntu 컴퓨터에서 SU 바이너리를 실행하면 Jim의 암호를 입력 한 후 사용자 Jim으로 nano 명령을 실행합니다. 플래그 나 인수없이 SU 바이너리를 실행하면 루트 사용자로 전환됩니다. 일반적으로 비밀번호를 제공해야하지만 "root"는 Android에서 사용하지 않는 사용자이므로 비밀번호가 없습니다. "su"명령을 실행하면 사용자 루트로 전환되고 사용자 ID 0을 할당하고 루트 그룹에 넣습니다. 이제 슈퍼 유저입니다.

슈퍼 유저는 안드로이드의 모든 파일, 폴더 또는 파티션에 대해 무엇이든 할 수 있습니다. 무엇이든, 우리는 말 그대로 무엇이든 의미합니다. bloatware 앱을 제거하고 전화기를 손상시키는 필수 시스템 파일을 제거 할 수도 있습니다. CPU 주파수를 변경하고 휴대 전화를 영원히 망치는 등 하드웨어에 대한 작업을 수행 할 수도 있습니다.

Root는 무엇이든 할 수있는 수퍼 유저입니다. 그리고 우리는 무엇이든 의미합니다.

앱도 같은 일을 할 수 있습니다. SU는 응용 프로그램 PATH의 위치에 있으며 모든 앱은 그것을 호출하여 실행할 수 있습니다. 그런 다음 해당 앱은 수퍼 유저 권한을 가지며 휴대 전화의 어느 위치에서나 원하는 파일을 수행 할 수 있습니다. 그렇기 때문에 휴대폰을 만든 사람들이이 수준의 액세스 권한을 갖기를 원하지 않는 이유는 무엇이며, 부트 로더 잠금을 해제하고 사물을 변경할 수있는 회사는 여전히 기본적으로 휴대폰에 SU 바이너리를 배치하지 않습니다. 누가 또는 무엇을 사용할 수 있는지를 제어 할 수있는 방법으로 루트 액세스 권한이 있으면 전화기의 소프트웨어 및 개인 데이터에 위험합니다.

그렇기 때문에 귀하 또는 다른 앱이 슈퍼 사용자 권한을 호출하려고 할 때마다 루트 액세스를 허용하는 앱을 설치해야합니다. 대부분의 경우 휴대 전화에 루트 방법을 사용하면 BusyBox 툴셋과 같은 다른 유용한 바이너리와 함께 포함됩니다. 직접 손으로 작업 한 경우 직접 설치해야합니다. 구글 플레이에서 Chainfire로 SuperSU를 시작하는 것이 좋습니다.

잡동사니

많은 전화와 일부 루트 방법은 약간 다르게 작동하며 (Android 4.3에서는 많은 변경 사항이 발생 함) SU 바이너리를 그대로 두는 대신 스크립트 나 데몬 (daemonsu 또는 su.d와 같은 단어가 표시됨)이 필요합니다. 이들은 SubstituteUser를 호출하는 데 사용되므로 원시 이진 메소드와 마찬가지로 루트 사용자로 전환 할 수 있습니다. 당신의 전화를 근절하는 방법을 알아 낸 사람들은이 모든 것을 정리해 놓았으며 그것은 사용자 쪽에서도 동일하게 작동 할 것입니다.

일부 안드로이드를 "임시 루트"하는 것도 가능합니다. 즉, 수퍼 유저 권한이 있고 필요한 몇 가지 작업을 수행 할 수 있지만 재부팅하면 루트 액세스 권한이 없어집니다. 마찬가지로 컴퓨터에서 adb를 통해서만 루트 사용자에게 액세스 할 수있는 "쉘 루트"를 가질 수 있습니다.

마지막으로, 이러한 질문이 있으면 근본 안드로이드를 가질 준비가되었는지 고려해야한다는 점을 강조하고 싶습니다. 우리는 슈퍼 유저 액세스로 휴대 전화를 망칠 수 있다고 말했을 때 농담이 아니 었습니다. 휴대 전화를 손상 시키거나 모든 데이터에 임의의 루즈 앱에 액세스 할 수있는 작업을하기 전에 약간의 독서를하거나 몇 가지 질문을 더해야한다는 것을 부끄러워 할 이유가 없습니다.

그것이 우리가 여기있는 것입니다.