펌웨어에서 커널 버전을 변경하는 방법. "안드로이드는 왜 괴로움을 받는가?" 플래싱, 루트, 사용자 정의 커널은 무엇이며 "단순한 필사자"에게 필요한가요?

심장 수술

귀하의 안드로이드 장치에 맞는 맞춤형 커널을 선택하세요

잡지의 정보 ][aker

우리는 사용자 정의 펌웨어, 루트 애플리케이션 및 대체 부팅 메뉴에 대해 두 번 이상 작성했습니다. 이 모든 것은 안드로이드 해킹 커뮤니티의 표준 주제이지만, 위의 모든 것 외에도 "사용자 정의 커널"과 같은 것도 있습니다. 이는 스마트폰과 해당 하드웨어를 관리하기 위한 거의 무한한 가능성을 제공할 수 있습니다. 가장 낮은 단계. 이 기사에서는 이것이 무엇인지, 왜 필요한지, 올바른 사용자 정의 커널을 선택하는 방법에 대해 설명합니다.

맞춤형 커널

맞춤형 커널이란 무엇입니까? 우리 모두 알고 있듯이 Android는 하위 수준 라이브러리 및 서비스 세트인 Linux 커널, 그 위에 그래픽 셸, 상위 수준 도구 및 서비스를 실행하는 Dalvik 가상 머신이라는 세 가지 기본 계층으로 구성된 파이입니다. , 시장에서 설치된 거의 모든 응용 프로그램. 대부분의 대체 맞춤형 펌웨어 제작자는 일반적으로 그래픽 셸에 기능 추가(예: 커튼의 버튼), 변경(CyanogenMod의 테마 엔진), 새로운 시스템 서비스 추가(이퀄라이저) 등 상위 2개 레이어에서만 작업합니다. CyanogenMod에서) 및 기존 최적화를 수행합니다.

널리 사용되는 펌웨어의 작성자는 가능할 때마다 Linux 커널을 변경합니다. 즉, 최적화(보다 공격적인 컴파일러 최적화 플래그로 구축)하고 새로운 기능(예: Windows 공 지원)을 포함하며 다음과 같은 기타 변경 사항도 적용합니다. 제조업체가 제공한 것 이상으로 프로세서 주파수를 높이는 것입니다. 종종 이 모든 것이 이면에 남아 있으며 많은 사용자 정의 펌웨어 사용자는 이러한 가능성조차 인식하지 못합니다. 특히 동일한 CyanogenMod에는 제한된 범위의 장치에 대해서만 사용자 정의 커널이 함께 제공되기 때문에 기본 커널의 소스 코드가 모두 그리고 그것을 대체하는 능력은 유효합니다. 예를 들어 Motorola 스마트폰용 거의 모든 CyanogenMod 펌웨어는 표준 커널을 사용합니다. 부트로더의 뚫을 수 없는 보호로 인해 이를 자체 커널로 교체하는 것은 불가능합니다.

그러나 잠금 해제된 부트로더가 있는 스마트폰의 커널은 메인 펌웨어와 별도로 교체될 수 있습니다. 그리고 단순히 교체하는 것이 아니라 관리하기 위해 특정 기술 지식이 필요한 다양한 기능을 갖춘 커널을 설치하므로 일반적으로 CyanogenMod, AOKR 및 MIUI와 같은 널리 사용되는 펌웨어 커널에 내장되어 있지 않습니다. 이러한 기능 중에서 높은 프로세서 주파수, 화면 감마 제어, 에너지 절약 모드, 고효율 전원 관리자 및 수많은 기타 기능에 대한 지원을 찾을 수 있습니다.

이 기사에서는 사용자 정의 커널 제작자가 제공할 수 있는 사항에 대해 설명하고, 다양한 장치에 대한 기본 사용자 정의 커널을 고려하고, 기본 펌웨어와 독립적으로 커널을 설치하고 자체 스킨에서 모든 것을 테스트해 봅니다. 그렇다면 대체 커널 개발자는 일반적으로 무엇을 제공합니까?

최적화

사용자 정의 커널을 구축하는 주요 목표는 성능을 최적화하는 것인 경우가 많습니다. 일반적으로 모바일 장치 공급업체는 성능과 안정성 사이의 균형을 유지하려고 노력하므로 장치 속도를 크게 높일 수 있는 좋은 최적화 기술이라도 해당 기술을 사용한 후 일부 응용 프로그램이 충돌하기 시작했다는 근거로만 제조업체에서 거부할 수 있습니다. 매 10번째 출시마다. 물론 매니아들은 그런 사소한 일에 신경 쓰지 않으며 그들 중 다수는 컴파일러 옵션, 절전 알고리즘을 자체 어셈블리 커널에 적용하고 프로세서 주파수를 장치가 처리할 수 있는 한 높게 높일 준비가 되어 있습니다. 모든 최적화 기술 중에서 가장 일반적인 네 가지 기술은 다음과 같습니다.

1. 공격적인 최적화 옵션을 갖춘 Linaro GCC 컴파일러를 사용하여 구축합니다. Squeak of the Season은 거의 모든 커널에 사용됩니다. 이 방법은 Linaro 조직이 몇 가지 이상한 합성 테스트를 사용하여 컴파일러를 사용하여 컴파일된 Android 성능의 400%(!) 증가를 입증한 후에 특히 인기를 얻었습니다. 실제 상황에서 Linaro GCC의 효율성은 다소 낮지만 ARMv7 아키텍처의 기능에 코드를 실제로 적용하고 개인적인 경험으로 판단할 때 안정성에 문제를 일으키지 않기 때문에 이점은 여전히 ​​눈에 띕니다. 커널이나 애플리케이션 중 하나입니다.

2. 중앙 및 그래픽 프로세서의 주파수 및 전압 제어 기능을 확장하고 태블릿 및 스마트폰에 대한 보다 효율적인 에너지 절약 제어 알고리즘을 사용합니다. 모든 사용자 정의 커널과 가장 심각한 사용자 정의 펌웨어 커널에 사용됩니다. 다음 섹션에서 이 기능을 더 자세히 살펴보겠습니다.

3. 최신 Linux 커널에 도입된 보다 효율적인 내부 메커니즘 활성화. 여기에는 일부 개발자에 따르면 SLUB보다 더 효율적일 수 있는 SLQB 메모리 할당자가 포함되어 있지만 이에 대한 실험적 증거는 없습니다. 이 할당자는 Nexus 7용 GLaDOS 커널에서 사용됩니다.

많은 개발자는 표준 TCP 혼잡 제어 알고리즘을 수정하는 것을 좋아합니다. 패킷 흐름을 보다 원활하게 만들고 최고의 데이터 전송 속도를 달성하기 위한 다양한 옵션이 있습니다. 버전 2.6.19부터 Linux 커널은 기본적으로 표준 Android 커널에서도 일반적으로 사용되는 효율적인 CUBIC 알고리즘을 사용합니다. 유일한 문제는 CUBIC이 데이터 전송률이 높은 유선 네트워크에 효과적인 반면, 3G 및 Wi-Fi 네트워크의 경우 Westwood+ 알고리즘이 훨씬 더 나은 선택이라는 것입니다. Galaxy Nexus의 Leankernel 커널과 Nexus 7의 faux123에 사용되는 알고리즘이 바로 이 알고리즘이며, Galaxy S II 및 Galaxy Nexus의 Franko.Kernel에는 일반적으로 사용 가능한 전체 알고리즘 세트가 포함되어 있습니다. 다음 명령을 사용하여 목록을 보고 필요한 목록을 선택할 수 있습니다.

sysctl net.ipv4.tcp_available_congestion_control sysctl -w net.ipv4.tcp_congestion_control=westwood

또 다른 유형의 최적화: 기본 I/O 스케줄러 변경. 이 분야의 상황은 훨씬 더 흥미롭습니다. 왜냐하면 스케줄러의 작업 원리를 이해하는 대신 일부는 커널 빌더는 Linux용 1/O 스케줄러에 대한 인터넷 문서를 읽고 스스로 결론을 도출합니다. 사용자들 사이에서는 이 접근 방식이 훨씬 더 널리 퍼져 있습니다.

실제로 가장 강력하고 지능적인 거의 모든 Linux 스케줄러는 Android에 완전히 부적합합니다. 이는 헤드 위치에 따라 데이터 액세스 속도가 달라지는 기계적 데이터 저장소와 함께 사용하도록 설계되었습니다. 스케줄러는 데이터의 물리적 위치에 따라 서로 다른 요청 집계 방식을 사용하므로 현재 헤드 위치에 가까운 데이터에 대한 요청이 더 높은 우선 순위를 받게 됩니다. 이는 모든 셀에 동일한 액세스 속도를 보장하는 솔리드 스테이트 메모리의 경우 완전히 비논리적입니다. 고급 스케줄러는 스마트폰에서 득보다 실이 많을 것이며, 가장 서툴고 원시적인 스케줄러가 최상의 결과를 보여줄 것입니다. Linux에는 세 가지 유사한 스케줄러가 있습니다.

Noop(No Operation)은 소위 Non-Scheduler입니다. 간단한 FIFO 요청 대기열에서는 첫 번째 요청이 먼저 처리되고, 두 번째 요청이 두 번째로 처리됩니다. 솔리드 스테이트 메모리에 적합하며 드라이브 액세스에 대한 애플리케이션 우선 순위를 공정하게 분배할 수 있습니다. 추가 장점: 매우 간단한 작동 원리로 인해 프로세서 부하가 낮습니다. 단점: 장치 작동의 세부 사항을 고려하지 않아 성능 오류가 발생할 수 있습니다.

SIO(Simple I/O)는 섹터 간의 근접성을 고려하지 않은 Deadline 스케줄러와 유사합니다. 즉, 솔리드 스테이트 메모리용으로 특별히 설계되었습니다. 두 가지 주요 기능: 쓰기 작업보다 읽기 작업의 우선 순위와 프로세스별 작업 그룹화, 작업을 수행하기 위해 각 프로세스에 시간 조각을 할당하는 것입니다. 현재 애플리케이션의 속도와 쓰기 작업보다 읽기 작업의 우위가 중요한 스마트폰에서는 매우 좋은 성능을 보여줍니다. Leankernel, Nexus 4용 Matrix 커널 및 SiyahKernel에서 사용할 수 있습니다.


ROW(READ Over WRITE)는 모바일 장치용으로 특별히 설계된 스케줄러로 불과 몇 달 전에 커널에 추가되었습니다. 주요 목표는 읽기 요청을 먼저 처리하는 것이지만 쓰기 요청에도 공정한 시간을 분배하는 것입니다. 현재 최고의 NAND 메모리 스케줄러로 간주되는 @_Leankernel 및 Matrix가 기본적으로 사용됩니다.

거의 모든 표준 펌웨어와 사용자 정의 펌웨어의 절반은 여전히 ​​표준 Linux CFQ 스케줄러와 함께 커널을 사용하지만 솔리드 스테이트 드라이브에서 올바르게 작동할 수 있기 때문에 그렇게 나쁘지는 않습니다. 반면에 너무 복잡하고 프로세서(따라서 배터리)에 큰 부하를 발생시키며 모바일 OS의 세부 사항을 고려하지 않습니다. 또 다른 인기 있는 선택은 SIO만큼 훌륭하지만 중복되는 Deadline 스케줄러입니다. 다음 명령을 사용하여 사용 가능한 스케줄러 목록을 볼 수 있습니다.

# 고양이 /sys/block/*/queue/scheduler

변경하려면 다음을 사용합니다(여기서 행은 스케줄러의 이름입니다).

# for i in /sys/block/*/queue/scheduler; echo 행 > $1; 완료

일부 커널 빌더는 I/O와 관련된 다른 유형의 최적화도 사용합니다. 이는 강제로 사용되는 fsync 시스템 호출을 비활성화하는 것입니다. 열린 파일의 변경된 내용을 디스크에 덤프합니다. fsync가 없으면 시스템이 드라이브에 덜 자주 액세스하여 프로세서 시간과 배터리 전력이 절약된다는 의견이 있습니다. 다소 논란의 여지가 있는 진술: fsync는 응용 프로그램에서 자주 사용되지 않으며 정말 중요한 정보를 저장하는 데에만 사용됩니다. 그러나 fsync를 비활성화하면 운영 체제 충돌이나 기타 문제가 발생할 경우 동일한 정보가 손실될 수 있습니다. fsync를 비활성화하는 기능은 franco.Kernel 및 GLaDOS 커널에서 사용할 수 있으며 /sys/module/sync/parameters/fsync_enabled 파일을 사용하여 제어됩니다. 여기서 비활성화하려면 O를, 활성화하려면 1을 써야 합니다. 다시 한번 말씀드리지만 이 기능은 사용하지 않는 것이 좋습니다.

오버콜, 전압 및 에너지 절약

오버클러킹은 데스크탑 컴퓨터와 노트북 소유자뿐만 아니라 모바일 기술 애호가들 사이에서도 인기가 있습니다. x86 아키텍처 스톤처럼 모바일 기기의 프로세서와 그래픽 코어도 뛰어나다. 그러나 오버클럭 방법 자체와 이를 구현하는 단계는 다소 다릅니다. 사실은 에너지 절약과 차 변화를 담당하는 SoC"ob의 표준 드라이버입니다. 프로세서 속도는 일반적으로 표준 주파수로 고정되어 있으므로 미세 조정을 위해서는 대체 드라이버나 사용자 정의 커널을 설치해야 합니다.

거의 모든 고품질 및 인기 있는 사용자 정의 커널에는 이미 잠금 해제된 드라이버가 포함되어 있으므로 이를 설치한 후 프로세서의 "전력"을 제어하는 ​​기능이 크게 확장됩니다. 일반적으로 사용자 정의 커널 빌더는 빈도 선택에 영향을 미치는 두 가지 작업을 수행합니다. 이는 처음에 지정된 것 이상으로 주파수 범위를 확장한 것입니다. 더 높은 프로세서 주파수나 매우 낮은 주파수를 설정할 수 있습니다. 이를 통해 배터리를 절약하고 주파수 그라데이션을 높일 수 있습니다(예: 세 가지 가능한 주파수 대신). , 선택할 수 있는 항목은 6개입니다. 두 번째는 프로세서 전압을 조정하는 기능이 추가되어 낮은 주파수에서 프로세서 전압을 줄여 배터리 충전을 보존하고 높은 주파수에서 높여 안정성을 높일 수 있습니다.

이 모든 것은 유료 SetCPU 유틸리티 또는 무료 Trickster MOD를 사용하여 제어할 수 있습니다. 관리 권장 사항은 데스크탑 시스템과 동일합니다. 낮은 프로세서 주파수를 최소로 설정하는 것이 좋지만 (지연을 방지하기 위해) 200MHz 이상으로 설정하는 것이 좋습니다. 작동 안정성을 테스트하는 동안 상한 임계값이 점차 증가하며, 떨어지면 전압을 약간 높이는 것이 좋습니다. 이 주파수에 대해. 각 프로세서는 고유하고 값은 모든 사람마다 다르기 때문에 전압에 대한 권장 사항은 없습니다.

주파수 변경 외에도 빌더는 종종 새로운 절전 제어 알고리즘(프로세서 주파수 자동 제어)을 커널에 추가하는데, 이는 표준 알고리즘에 비해 더 나은 결과를 보여줄 수 있다고 생각합니다. 거의 모두 새 버전의 Android에서 기본적으로 사용되는 Interactive 알고리즘을 기반으로 하며, 그 핵심은 부하가 증가할 때 프로세서 주파수를 최대로 급격히 증가시킨 다음 점차적으로 최소로 줄이는 것입니다. 이는 이전에 사용된 OnDemand 알고리즘을 대체하여 부하에 비례하여 양방향으로 주파수를 원활하게 조정하고 시스템 응답성을 향상시킵니다. 대체 커널 수집기는 Interactive를 대체하기 위해 다음 알고리즘을 제공합니다.

SmartAssV2는 배터리 절약에 중점을 두고 대화형 알고리즘을 다시 생각한 것입니다. 가장 큰 차이점은 다음과 같은 경우에 프로세서를 고주파수로 밀어 넣을 필요가 없다는 것입니다.

낮은 프로세서 성능이면 충분할 단기적인 로드 버스트입니다. 기본값은 Matrix 코어에서 사용됩니다.

InteractiveX는 조정된 대화형 알고리즘으로, 주요 기능은 사용자가 지정한 최소 주파수에서 프로세서를 잠그고 화면이 꺼질 때 두 번째 프로세서 코어의 전원을 차단하는 것입니다. 기본값은 Leankernel에서 사용됩니다.

LulzactiveV2는 본질적으로 OnDemand를 재창조한 것입니다. 프로세서의 부하가 지정된 것(기본적으로 60%)을 초과하면 알고리즘은 특정 분할 수(기본적으로 1)만큼 주파수를 높이고 부하가 감소하면 주파수를 낮춥니다. 작동 매개변수를 독립적으로 설정할 수 있기 때문에 특히 흥미롭습니다. 따라서 숙련된 괴짜에게 적합합니다.

일반적으로 커널 빌더는 구현이 쉽기 때문에 새로운 에너지 절약 알고리즘을 고안하는 것을 좋아하므로 다른 알고리즘도 많이 찾을 수 있습니다. 대부분은 완전한 쓰레기이며 스케줄러를 선택할 때 위에서 설명한 세 가지 중 하나 또는 매우 좋은 표준 Interactive라는 규칙을 따라야합니다. 동일한 Trickster MOD를 사용하여 선택할 수 있습니다.

제어 인터페이스

가장 인기 있는 사용자 정의 커널에는 다양한 드라이버 매개변수를 세밀하게 제어하기 위한 여러 메커니즘이 포함되어 있으며 가장 일반적인 것은 ColorControl, GammaControl, SoundControl 및 TempControl입니다.

ColorControl 및 GammaControl을 사용하면 색상 렌더링 매개변수를 제어할 수 있습니다. 이는 항상 정확하지 않은 화면의 색상 재현을 조정하거나(예: 검은색을 검정색으로 만들기) 색상을 더 부드럽고 눈에 더 즐겁게 만들기 위해 필요합니다.

사운드컨트롤. 소리가 너무 조용할 경우 소리를 높이는 데 사용할 수 있습니다.

온도제어. 과열되면 SoC를 끄는 온도 센서의 최대값(50~90도)을 조정할 수 있습니다. 오버클러킹을 실험하는 데 유용합니다.

처음 두 인터페이스는 CyanogenMod 커널을 포함하여 거의 모든 곳에서 사용할 수 있으며, 두 번째 두 인터페이스는 Leankernel 및 다른 곳에서도 사용할 수 있습니다. 어떤 식으로든 Trickster MOD를 사용하여 모두 제어할 수 있습니다.

설치하는 방법?

모든 커널은 표준 Android ZIP 아카이브로 배포되며, 이는 대체 펌웨어와 동일한 방식으로 복구 콘솔을 통해 플래시되어야 합니다. 일반적으로 커널은 모든 펌웨어와 호환되므로 올바른 커널을 선택하면 안전하게 설치할 수 있습니다. 주의해야 할 유일한 것은 커널이 호환되는 Android 버전입니다. 기기에서 사용할 수 있는 모든 Android 버전에 적합할 수도 있고, 하나의 Android 버전에서만 작동할 수도 있습니다(개발자는 일반적으로 이에 대해 명시적으로 설명합니다). 펌웨어를 플래시하기 전에 동일한 복구 콘솔을 사용하여 현재 펌웨어를 백업하십시오. 문제가 발생하면 언제든지 롤백할 수 있습니다.


어떤 코어를 선택해야 할까요?이 질문에 대한 명확한 답은 없습니다. "각자 자신에게" 때문이 아니라 전 세계에 수많은 Android 기기와 거의 같은 수의 다양한 커널이 있기 때문입니다. 그러나 동시에 여러 장치용으로 개발되고 있는 몇 가지 인기 있는 커널이 있습니다. 어떤 식 으로든 이야기 전반에 걸쳐 많은 것을 언급했으며 여기서는 이에 대해 간략하게 설명하겠습니다.

린커넬

Galaxy Nexus, Nexus 7, Galaxy S III의 핵심입니다. 개발 중 가장 중점을 두는 부분은 작업의 단순성과 속도입니다. 에너지 절약 알고리즘: lnteractiveXV2, I/O 스케줄러: ROW, 위의 모든 제어 인터페이스, 고속 USB 충전, 스왑 및 zram 지원, CPU 및 GPU를 위한 유연한 오버클럭 옵션. 최고의 코어 중 하나입니다. Trickster MOD를 사용하여 사용자 정의할 수 있습니다.

qoo.ql/FQLBI. goo.ql/ZcwA
Nexus S 및 Nexus 4용 커널. 단순하고 오버로드되지 않은 커널입니다. CPU 및 GPU 오버클러킹, GammaControl, 고속 USB 충전, Sweep2wake, I/O 스케줄러: SIO, ROW 및 FIOPS를 지원합니다. 성능 조정. Trickster MOD를 사용하여 사용자 정의할 수 있습니다.

브릭 커널

qoo.ol/kd5F4. aoo.ol/eZkAV
Nexus 4 및 NTS One X를 위한 간단하고 과부하되지 않은 코어. Snapdragon S4 및 NVIDIA Tegra 3에 대한 최적화, Tegra 3에 대해 재설계된 절전 모드, 오버클러킹 기능, 절전 알고리즘: 조정된 OnDemand(대화형도 사용 가능).

Siyah커널

Galaxy SII 및 S III의 핵심입니다. 유연한 오버클러킹 옵션, 자동 배터리 보정, 향상된 터치 스크린 드라이버, 절전 알고리즘: smartassV2 및 lulzactiveV2, I/O 스케줄러: noop, Deadline, CFQ, BFQV3r2(기본값), V(R), SIO. CIFS 및 NTFS 드라이버(자동 마운트 포함) ExTweaks를 사용하여 구성 가능합니다.

프랑코.커널

Nexus S, Galaxy Nexus, Nexus 4의 핵심, Nexus 7, Nexus 10, Galaxy S III, Galaxy Note, Optimus One 및 One X. 커널 기능은 기기마다 크게 다르므로 자세한 내용은 로컬에서 확인해야 합니다. 그러나 이 커널을 플래시하면 오버클러킹, 드라이버 튜닝, 탁월한 성능은 물론 다양한 절전 알고리즘 및 스케줄러 지원 기능을 얻을 수 있습니다. 실제로 커널에는 기사에 설명된 거의 모든 조정 사항이 포함되어 있습니다. 사용 가능한 최고의 커널 중 하나로 간주됩니다. 자동 업데이트 Franko.Kernel Updater를 위한 애플리케이션이 있습니다. Trickster MOD를 사용하여 구성할 수 있습니다.

몇 가지 흥미로운 애드온

커널에 새로운 기능 추가

물론 최적화, 조정 및 다양한 고급 하드웨어 관리 시스템 외에도 사용자 정의 커널에서는 표준 커널에는 없지만 사용자에게 유용할 수 있는 완전히 새로운 기능을 찾을 수도 있습니다.

이들은 주로 다양한 드라이버와 파일 시스템입니다. 예를 들어 일부 커널에는 Windows 공유를 마운트할 수 있는 CIFS 모듈에 대한 지원이 포함되어 있습니다. 이러한 모듈은 Nexus S용 Matrix 커널, Nexus 7용 faux123, SiyahKernel 및 GLaDOS에서 사용할 수 있습니다. 그 자체로는 쓸모가 없지만, 그 기능을 사용할 수 있는 여러 응용 프로그램이 시장에 나와 있습니다.

많은 커널에는 소위 zram 기술에 대한 지원이 포함되어 있어 소량의 RAM(-10%)을 예약하고 이를 압축된 스왑 영역으로 사용할 수 있습니다. 성능에 심각한 영향을 미치지 않으면서 일종의 메모리 양 확장이 있습니다. Leankernel에서 사용 가능하며 Trickster MOD 또는 zram 활성화 명령을 사용하여 활성화됩니다.

또 다른 유용한 기능은 NTFS 파일 시스템으로 포맷된 플래시 드라이브를 장착하는 데 필요한 커널(더 정확하게는 커널이 포함된 패키지, 드라이버 자체가 Linux 응용 프로그램으로 작동)에 ntfs-Зд 드라이버를 포함하는 것입니다. 이 드라이버는 faux 123 및 SiyahKernel 커널에 있습니다. 일반적으로 자동으로 활성화되지만, 활성화되지 않는 경우 시중에 판매되는 StickMount 애플리케이션을 사용할 수 있습니다.

다른 두 가지 흥미로운 기능은 Fast USB Charge와 Sweep2wake입니다. 첫 번째는 스마트폰이 컴퓨터의 USB 포트에 연결되어 있어도 "고속 충전" 모드를 강제로 활성화하는 것입니다. 기술적 제한으로 인해 이 모드는 메모리 카드에 대한 액세스와 동시에 활성화될 수 없습니다. 고속 USB 충전 기능을 사용하면 기본적으로 이 모드를 활성화하고 드라이브에 대한 액세스는 비활성화할 수 있습니다.

Sweep2wake는 Breaked-kernel의 저자가 발명한 장치를 깨우는 새로운 방법입니다. 요점은 화면 아래 또는 화면 자체에 있는 탐색 키 위로 손가락을 밀어 스마트폰을 켜는 것입니다. 이 기능은 정말 편리한 기능이지만, 이 기능을 켜면 기기가 절전 모드인 동안에도 센서가 계속 활성화되어 배터리가 크게 소모될 수 있습니다.


우리는 사용자 정의 펌웨어, 루트 애플리케이션 및 대체 부팅 메뉴에 대해 두 번 이상 작성했습니다. 이 모든 것은 안드로이드 해킹 커뮤니티의 표준 주제이지만, 위의 모든 것 외에도 "사용자 정의 커널"과 같은 것도 있습니다. 이는 스마트폰과 해당 하드웨어를 관리하기 위한 거의 무한한 가능성을 제공할 수 있습니다. 가장 낮은 단계. 이 기사에서는 이것이 무엇인지, 왜 필요한지, 올바른 사용자 정의 커널을 선택하는 방법에 대해 설명합니다.

커스텀 커널?

맞춤형 커널이란 무엇입니까? 우리 모두 알고 있듯이 Android는 하위 수준 라이브러리 및 서비스 세트인 Linux 커널, 그 위에 그래픽 셸, 상위 수준 도구 및 서비스를 실행하는 Dalvik 가상 머신이라는 세 가지 기본 계층으로 구성된 파이입니다. , 시장에서 설치된 거의 모든 응용 프로그램. 대부분의 대체 맞춤형 펌웨어 제작자는 일반적으로 그래픽 셸에 기능 추가(예: 커튼의 버튼), 변경(CyanogenMod의 테마 엔진), 새로운 시스템 서비스 추가(이퀄라이저) 등 상위 2개 레이어에서만 작업합니다. CyanogenMod에서) 및 기존 최적화를 수행합니다.

널리 사용되는 펌웨어의 작성자는 가능할 때마다 Linux 커널을 변경합니다. 즉, 최적화(보다 공격적인 컴파일러 최적화 플래그로 구축)하고 새로운 기능(예: Windows 공 지원)을 포함하며 다음과 같은 기타 변경 사항도 적용합니다. 제조업체가 제공한 것 이상으로 프로세서 주파수를 높이는 것입니다. 종종 이 모든 것이 이면에 남아 있으며 많은 사용자 정의 펌웨어 사용자는 이러한 가능성조차 인식하지 못합니다. 특히 동일한 CyanogenMod에는 제한된 범위의 장치에 대해서만 사용자 정의 커널이 함께 제공되기 때문에 기본 커널의 소스 코드가 모두 그리고 그것을 대체하는 능력은 유효합니다. 예를 들어 Motorola 스마트폰용 거의 모든 CyanogenMod 펌웨어는 표준 커널을 사용합니다. 부트로더의 뚫을 수 없는 보호로 인해 이를 자체 커널로 교체하는 것은 불가능합니다.

그러나 잠금 해제된 부트로더가 있는 스마트폰의 커널은 메인 펌웨어와 별도로 교체될 수 있습니다. 그리고 단순히 교체하는 것이 아니라 관리하기 위해 특정 기술 지식이 필요한 다양한 기능을 갖춘 커널을 설치하므로 일반적으로 CyanogenMod, AOKP 및 MIUI와 같은 널리 사용되는 펌웨어 커널에 내장되어 있지 않습니다. 이러한 기능 중에서 높은 프로세서 주파수, 화면 감마 제어, 에너지 절약 모드, 고효율 전원 관리자 및 수많은 기타 기능에 대한 지원을 찾을 수 있습니다.

이 기사에서는 사용자 정의 커널 제작자가 제공할 수 있는 사항에 대해 이야기하고, 다양한 장치에 대한 기본 사용자 정의 커널을 고려하고, 기본 펌웨어와 독립적으로 커널을 설치하고 자체 스킨에서 모든 것을 확인하려고 시도합니다. 그렇다면 대체 커널 개발자는 일반적으로 무엇을 제공합니까?

스마트 교통 관제사

예를 들어 Galaxy S II 및 Galaxy Nexus에 사용되는 OMAP35XX SoC에는 프로세서의 부하가 변경될 때 스마트 전압 조정 시스템 역할을 하는 SmartReflex 기능이 있습니다. 기본적으로 사용자가 전압을 미세 조정할 필요가 없습니다.

최적화

사용자 정의 커널을 구축하는 주요 목표는 성능을 최적화하는 것인 경우가 많습니다. 일반적으로 모바일 장치 공급업체는 성능과 안정성 사이의 균형을 유지하려고 노력하므로 장치 속도를 크게 높일 수 있는 좋은 최적화 기술이라도 해당 기술을 사용한 후 일부 응용 프로그램이 충돌하기 시작했다는 근거로만 제조업체에서 거부할 수 있습니다. 매 10번째 출시마다. 물론 매니아들은 그런 사소한 일에 신경 쓰지 않으며 그들 중 다수는 컴파일러 옵션, 절전 알고리즘을 자체 어셈블리 커널에 적용하고 프로세서 주파수를 장치가 처리할 수 있는 한 높게 높일 준비가 되어 있습니다. 모든 최적화 기술 중에서 가장 일반적인 네 가지 기술은 다음과 같습니다.



또 다른 유형의 최적화: 기본 I/O 스케줄러 변경. 이 분야의 상황은 훨씬 더 흥미롭습니다. 일부 커널 빌더는 스케줄러 작동 원리를 이해하는 대신 Linux용 I/O 스케줄러에 대한 인터넷 문서를 읽고 결론을 내리기 때문입니다. 사용자들 사이에서는 이 접근 방식이 훨씬 더 널리 퍼져 있습니다. 실제로 가장 강력하고 지능적인 거의 모든 Linux 스케줄러는 Android에 완전히 부적합합니다. 이는 헤드 위치에 따라 데이터 액세스 속도가 달라지는 기계적 데이터 저장소와 함께 사용하도록 설계되었습니다. 스케줄러는 데이터의 물리적 위치에 따라 서로 다른 요청 집계 방식을 사용하므로 현재 헤드 위치에 가까운 데이터에 대한 요청이 더 높은 우선 순위를 받게 됩니다. 이는 모든 셀에 동일한 액세스 속도를 보장하는 솔리드 스테이트 메모리의 경우 완전히 비논리적입니다. 고급 스케줄러는 스마트폰에서 득보다 실이 많을 것이며, 가장 서툴고 원시적인 스케줄러가 최상의 결과를 보여줄 것입니다. Linux에는 세 가지 유사한 스케줄러가 있습니다.

  • Noop (작동 없음)- 소위 비스케줄러. 간단한 FIFO 요청 대기열에서는 첫 번째 요청이 먼저 처리되고, 두 번째 요청이 두 번째로 처리됩니다. 솔리드 스테이트 메모리에 적합하며 드라이브 액세스에 대한 애플리케이션 우선 순위를 공정하게 분배할 수 있습니다. 추가 장점: 매우 간단한 작동 원리로 인해 프로세서 부하가 낮습니다. 단점: 장치 작동의 세부 사항을 고려하지 않아 성능 오류가 발생할 수 있습니다.
  • SIO(단순 I/O)- 서로의 섹터 근접성을 고려하지 않은 Deadline 스케줄러와 유사합니다. 즉, 솔리드 스테이트 메모리용으로 특별히 설계된 것입니다. 두 가지 주요 기능: 쓰기 작업보다 읽기 작업의 우선 순위와 프로세스별 작업 그룹화, 작업을 수행하기 위해 각 프로세스에 시간 조각을 할당하는 것입니다. 현재 애플리케이션의 속도와 쓰기 작업보다 읽기 작업의 우위가 중요한 스마트폰에서는 매우 좋은 성능을 보여줍니다. Leankernel, Nexus 4용 Matr1x 커널 및 SiyahKernel에서 사용할 수 있습니다.
  • 행(읽고 덮어쓰기)- 모바일 장치용으로 특별히 설계되었으며 불과 몇 달 전에 커널에 추가된 스케줄러입니다. 주요 목표는 읽기 요청을 먼저 처리하는 것이지만 쓰기 요청에도 공정한 시간을 분배하는 것입니다. 현재 NAND 메모리에 가장 적합한 스케줄러로 간주되며 Leankernel 및 Matr1x에서 기본적으로 사용됩니다.

거의 모든 표준 펌웨어와 사용자 정의 펌웨어의 절반은 여전히 ​​표준 Linux CFQ 스케줄러와 함께 커널을 사용하지만 솔리드 스테이트 드라이브에서 올바르게 작동할 수 있기 때문에 그렇게 나쁘지는 않습니다. 반면에 너무 복잡하고 프로세서(따라서 배터리)에 더 많은 부하를 생성하며 모바일 OS의 세부 사항을 고려하지 않습니다. 또 다른 인기 있는 선택은 SIO만큼 훌륭하지만 중복되는 Deadline 스케줄러입니다. 다음 명령을 사용하여 사용 가능한 스케줄러 목록을 볼 수 있습니다.

# 고양이 /sys/block/*/queue/scheduler

변경하려면 다음을 사용합니다(여기서 행은 스케줄러의 이름입니다).

# for i in /sys/block/*/queue/scheduler; echo 행 > $1; 완료

일부 커널 빌더는 I/O와 관련된 다른 유형의 최적화도 사용합니다. 이는 열린 파일의 변경된 내용을 강제로 디스크에 플러시하는 데 사용되는 fsync 시스템 호출을 비활성화합니다. fsync가 없으면 시스템이 드라이브에 덜 자주 액세스하여 프로세서 시간과 배터리 전력이 절약된다는 의견이 있습니다. 다소 논란의 여지가 있는 진술: fsync는 응용 프로그램에서 자주 사용되지 않으며 정말 중요한 정보를 저장하는 데에만 사용됩니다. 그러나 fsync를 비활성화하면 운영 체제 충돌이나 기타 문제가 발생할 경우 동일한 정보가 손실될 수 있습니다. fsync를 비활성화하는 기능은 franco.Kernel 및 GLaDOS 커널에서 사용할 수 있으며 /sys/module/sync/parameters/fsync_enabled 파일에 의해 제어됩니다. 여기서 비활성화하려면 0을, 활성화하려면 1을 써야 합니다. 다시 한번 말씀드리지만 이 기능은 사용하지 않는 것이 좋습니다.

커널에 새로운 기능 추가

물론 최적화, 조정 및 다양한 고급 하드웨어 관리 시스템 외에도 사용자 정의 커널에서는 표준 커널에는 없지만 사용자에게 유용할 수 있는 완전히 새로운 기능을 찾을 수도 있습니다.

이들은 주로 다양한 드라이버와 파일 시스템입니다. 예를 들어 일부 커널에는 Windows 공유를 마운트할 수 있는 CIFS 모듈에 대한 지원이 포함되어 있습니다. 이러한 모듈은 Nexus S의 경우 Matr1x 커널, Nexus 7의 경우 faux123, SiyahKernel 및 GLaDOS에 있습니다. 그 자체로는 쓸모가 없지만, 그 기능을 사용할 수 있는 여러 응용 프로그램이 시장에 나와 있습니다.

또 다른 유용한 기능은 NTFS 파일 시스템으로 포맷된 플래시 드라이브를 장착하는 데 필요한 커널(더 정확하게는 커널이 포함된 패키지, 드라이버 자체가 Linux 응용 프로그램으로 작동)에 ntfs-3g 드라이버를 포함하는 것입니다. 이 드라이버는 faux123 및 SiyahKernel 커널에 있습니다. 일반적으로 자동으로 활성화되지만, 활성화되지 않는 경우 시중에 판매되는 StickMount 애플리케이션을 사용할 수 있습니다.

또한 많은 커널에는 소위 zram 기술에 대한 지원이 포함되어 있어 소량의 RAM(보통 10%)을 예약하여 압축된 스왑 영역으로 사용할 수 있습니다. 그 결과 성능에 심각한 영향을 미치지 않으면서 일종의 메모리 양이 확장됩니다. Leankernel에서 사용 가능하며 Trickster MOD 또는 zram 활성화 명령을 사용하여 활성화됩니다.

마지막 두 가지 흥미로운 기능은 Fast USB Charge와 Sweep2wake입니다. 첫 번째는 스마트폰이 컴퓨터의 USB 포트에 연결되어 있어도 "고속 충전" 모드를 강제로 활성화하는 것 이상입니다. 고속 충전 모드는 거의 모든 신형 스마트폰에서 사용할 수 있지만 기술적인 한계로 인해 메모리 카드에 액세스하는 것과 동시에 활성화할 수는 없습니다. 고속 USB 충전 기능을 사용하면 드라이브에 대한 액세스를 비활성화하는 동시에 이 모드를 항상 활성화할 수 있습니다.

Sweep2wake는 Breaked-kernel의 저자가 발명한 장치를 깨우는 새로운 방법입니다. 요점은 화면 아래 또는 화면 자체에 있는 탐색 키 위로 손가락을 밀어 스마트폰을 켜는 것입니다. 이 기능은 정말 편리한 기능이지만, 이 기능을 켜면 기기가 절전 모드인 동안에도 센서가 계속 활성화되어 배터리가 크게 소모될 수 있습니다.

오버클러킹, 전압 및 에너지 절약

오버클러킹은 데스크탑 컴퓨터와 노트북 소유자뿐만 아니라 모바일 기술 애호가들 사이에서도 인기가 있습니다. x86 아키텍처 스톤처럼 모바일 기기의 프로세서와 그래픽 코어도 뛰어나다. 그러나 오버클럭 방법 자체와 이를 구현하는 단계는 다소 다릅니다. 사실 에너지 절약과 프로세서 주파수 변경을 담당하는 SoC용 표준 드라이버는 일반적으로 표준 주파수로 잠겨 있으므로 미세 조정을 위해서는 대체 드라이버나 사용자 정의 커널을 설치해야 합니다.

거의 모든 고품질 및 인기 있는 사용자 정의 커널에는 이미 잠금 해제된 드라이버가 포함되어 있으므로 이를 설치한 후 프로세서의 "전력"을 제어하는 ​​기능이 크게 확장됩니다. 일반적으로 사용자 정의 커널 빌더는 빈도 선택에 영향을 미치는 두 가지 작업을 수행합니다. 이는 처음에 지정된 것 이상으로 주파수 범위를 확장한 것입니다. 더 높은 프로세서 주파수나 매우 낮은 주파수를 설정할 수 있습니다. 이를 통해 배터리를 절약하고 주파수 그라데이션을 높일 수 있습니다(예: 세 가지 가능한 주파수 대신). , 선택할 수 있는 항목은 6개입니다. 두 번째는 프로세서 전압을 조정하는 기능이 추가되어 낮은 주파수에서 프로세서 전압을 줄여 배터리 충전을 보존하고 높은 주파수에서 높여 안정성을 높일 수 있습니다.

이 모든 것은 잘 알려진 유료 유틸리티인 SetCPU 또는 무료 Trickster MOD를 사용하여 제어할 수 있습니다. 관리 권장 사항은 데스크탑 시스템과 동일합니다. 낮은 프로세서 주파수를 최소로 설정하는 것이 좋지만 (지연을 방지하기 위해) 200MHz 이상으로 설정하는 것이 좋습니다. 작동 안정성을 테스트하는 동안 상한 임계값이 점차 증가하며, 떨어지면 전압을 약간 높이는 것이 좋습니다. 이 주파수에 대해. 각 프로세서는 고유하고 값은 모든 사람마다 다르기 때문에 전압에 대한 권장 사항은 없습니다.

주파수 변경 외에도 빌더는 종종 새로운 절전 제어 알고리즘(프로세서 주파수 자동 제어)을 커널에 추가하는데, 이는 표준 알고리즘에 비해 더 나은 결과를 보여줄 수 있다고 생각합니다. 거의 모두 새 버전의 Android에서 기본적으로 사용되는 Interactive 알고리즘을 기반으로 하며, 그 핵심은 부하가 증가할 때 프로세서 주파수를 최대로 급격히 증가시킨 다음 점차적으로 최소로 줄이는 것입니다. 이는 이전에 사용된 OnDemand 알고리즘을 대체하여 부하에 비례하여 양방향으로 주파수를 원활하게 조정하고 시스템 응답성을 향상시킵니다. 대체 커널 수집기는 Interactive를 대체하기 위해 다음 알고리즘을 제공합니다.

  • SmartAssV2- 배터리 절약에 중점을 두고 대화형 알고리즘을 다시 생각합니다. 주요 차이점은 단기적인 부하 버스트가 발생하는 경우 낮은 프로세서 성능으로 충분할 경우 프로세서를 고주파수로 끌어들이지 않는다는 것입니다. 기본값은 Matr1x 커널에서 사용됩니다.
  • 인터랙티브X- 조정된 대화형 알고리즘의 주요 기능은 사용자가 지정한 최소 주파수에서 프로세서를 잠그고 화면이 꺼질 때 두 번째 프로세서 코어의 전원을 차단하는 것입니다. 기본값은 Leankernel에서 사용됩니다.
  • LulzactiveV2- 본질적으로 재창조된 OnDemand입니다. 프로세서의 부하가 지정된 것(기본적으로 60%)을 초과하면 알고리즘은 특정 분할 수(기본적으로 1)만큼 주파수를 높이고 부하가 감소하면 주파수를 낮춥니다. 작동 매개변수를 독립적으로 설정할 수 있기 때문에 특히 흥미롭습니다. 따라서 숙련된 괴짜에게 적합합니다.

일반적으로 커널 빌더는 구현이 쉽기 때문에 새로운 에너지 절약 알고리즘을 고안하는 것을 좋아하므로 다른 알고리즘도 많이 찾을 수 있습니다. 대부분은 완전한 쓰레기이며 스케줄러를 선택할 때 위에서 설명한 세 가지 중 하나 또는 매우 좋은 표준 Interactive라는 규칙을 따라야합니다. 동일한 Trickster MOD를 사용하여 선택할 수 있습니다.

제어 인터페이스

가장 인기 있는 사용자 정의 커널에는 다양한 드라이버 매개변수를 세밀하게 제어하기 위한 여러 메커니즘이 포함되어 있으며 가장 일반적인 것은 ColorControl, GammaControl, SoundControl 및 TempControl입니다.

처음 두 인터페이스는 CyanogenMod 커널을 포함하여 거의 모든 곳에서 사용할 수 있으며, 두 번째 두 인터페이스는 Leankernel 및 다른 곳에서도 사용할 수 있습니다. 어떤 식으로든 Trickster MOD를 사용하여 모두 제어할 수 있습니다.

코어

어떤 코어를 선택해야 할까요? 이 질문에 대한 명확한 답은 없습니다. "각자 자신에게" 때문이 아니라 전 세계에 수많은 Android 기기와 거의 같은 수의 다양한 커널이 있기 때문입니다. 그러나 동시에 여러 장치용으로 개발되고 있는 몇 가지 인기 있는 커널이 있습니다. 어떤 식 으로든 이야기 전반에 걸쳐 많은 것을 언급했으며 여기서는 이에 대해 간략하게 설명하겠습니다.

  • Leankernel은 Galaxy Nexus, Nexus 7 및 Galaxy S III의 핵심입니다. 개발 중 가장 중점을 두는 부분은 작업의 단순성과 속도입니다. 에너지 절약 알고리즘: InteractiveX V2, I/O 스케줄러: ROW, 위의 모든 제어 인터페이스, 고속 USB 충전, 스왑 및 zram 지원, CPU 및 GPU를 위한 유연한 오버클럭 옵션. 최고의 코어 중 하나입니다. Trickster MOD를 사용하여 사용자 정의할 수 있습니다.
  • Matr1x(http://goo.gl/FQLBI, goo.gl/ZcyvA) - Nexus S 및 Nexus 4용 커널. 단순하고 오버로드되지 않은 커널입니다. CPU 및 GPU 오버클러킹, GammaControl, 고속 USB 충전, Sweep2wake, I/O 스케줄러: SIO, ROW 및 FIOPS를 지원합니다. 성능 조정. Trickster MOD를 사용하여 사용자 정의할 수 있습니다.
  • Bricked-Kernel(http://goo.gl/kd5F4, goo.gl/eZkAV) - Nexus 4 및 HTC One X용 단순하고 오버로드되지 않은 커널. Snapdragon S4 및 NVIDIA Tegra 3에 대한 최적화, Tegra 3용으로 재설계된 절전 모드 , 오버클러킹 기능, 에너지 절약 알고리즘: OnDemand 조정(대화식도 사용 가능).
  • SiyahKernel - Galaxy S II 및 S III용 커널입니다. 유연한 오버클러킹 옵션, 자동 배터리 보정, 향상된 터치 스크린 드라이버, 절전 알고리즘: smartassV2 및 lulzactiveV2, I/O 스케줄러: noop, Deadline, CFQ, BFQV3r2(기본값), V(R), SIO. CIFS 및 NTFS 드라이버(자동 마운트 포함) ExTweaks를 사용하여 구성 가능합니다.
  • franco.Kernel - Nexus S, Galaxy Nexus, Nexus 4, Nexus 7, Nexus 10, Galaxy S III, Galaxy Note, Optimus One 및 One X용 커널입니다.

커널 기능은 장치마다 크게 다르므로 자세한 내용은 사이트에서 확인해야 합니다. 그러나 이 커널을 플래시하면 오버클러킹, 드라이버 튜닝, 탁월한 성능은 물론 다양한 절전 알고리즘 및 스케줄러 지원 기능을 얻을 수 있습니다. 실제로 커널에는 기사에 설명된 거의 모든 조정 사항이 포함되어 있습니다. 사용 가능한 최고의 커널 중 하나로 간주됩니다. 자동 업데이트 Franko.Kernel Updater를 위한 애플리케이션이 있습니다. Trickster MOD를 사용하여 구성할 수 있습니다.

설치하는 방법?

모든 커널은 표준 Android ZIP 아카이브로 배포되며, 이는 대체 펌웨어와 동일한 방식으로 복구 콘솔을 통해 플래시되어야 합니다. 일반적으로 커널은 모든 펌웨어와 호환되므로 올바른 커널을 선택하면 안전하게 설치할 수 있습니다. 주의해야 할 유일한 것은 커널이 호환되는 Android 버전입니다. 기기에서 사용할 수 있는 모든 Android 버전에 적합할 수도 있고, 하나의 Android 버전에서만 작동할 수도 있습니다(개발자는 일반적으로 이에 대해 명시적으로 설명합니다). 펌웨어를 플래시하기 전에 동일한 복구 콘솔을 사용하여 현재 펌웨어를 백업하십시오. 문제가 발생하면 언제든지 롤백할 수 있습니다.

결론

보시다시피 사용자 정의 커널은 표준 또는 타사 펌웨어에 사용되는 커널에 비해 많은 장점을 가지고 있습니다. 그리고 더욱 중요한 것은 Android를 사용하기 위해 모든 복잡한 기능을 알 필요가 없다는 것입니다. ZIP 아카이브를 다운로드하고 설치하기만 하면 됩니다.

CyanogenMod의 저자는 HTC Dream을 위한 최초의 맞춤형(수제) 펌웨어를 만들기 시작했습니다. 잠시 후, 그는 자신의 아이디어에 대한 긍정적인 리뷰를 보고 놀랐고 열광적인 팀을 구성했습니다. 이제 그의 별명은 맞춤형 펌웨어와 거의 동의어가 되었으며, 그의 팀의 성과는 Google에서 공식적으로 인정받았습니다.다른 사람들이 그의 실험에 그토록 관심을 보인 이유는 무엇입니까? 이러한 실험을 "단순한 인간"이 반복해야 합니까?

안드로이드 OS의 친숙함과 풍부한 기능에도 불구하고 스마트폰을 사용자가 원하는 대로 정확하게 사용할 수 있게 해주는 많은 기능이 빠져 있습니다.

여정 초기에 Android는 인기가 있었지만 폐쇄형 iOS보다 훨씬 더 많은 자유를 제공하는 또 다른 운영 체제였습니다. 2013년 현재 안드로이드는 스마트폰 시장의 80%를 '점유'하고 있지만, 3년 전만 해도 안드로이드는 여전히 이상적인 것과는 거리가 멀었고 죽어가는 심비안 점유율 경쟁에서 iOS보다 약간 앞섰을 뿐입니다.

맞춤형 펌웨어는 Android 스마트폰을 귀하에게 맞게 맞춤화하고 적용할 수 있는 가능성을 크게 확장했습니다. 이제 커널, 가상 머신, 사용자 인터페이스 변경 등 가장 심층적인 시스템 기능을 관리할 수 있는 가능성이 있습니다.

맞춤형 펌웨어는 스마트폰 제조업체가 장치를 새로운 OS 버전으로 시기적절하게 업데이트하는 것을 꺼렸기 때문에 수많은 사용자를 확보하는 데 핵심적인 역할을 할 수 있었으며, 점점 더 많은 장치에 대해 맞춤형 펌웨어가 출시되기 시작하여 최신 버전으로 업데이트되었습니다. 최신 버전의 안드로이드.

물론 MIUI, AOSP, AOKP와 같은 Android의 다른 수정 사항을 무시하는 것은 옳지 않지만 현재 CyanogenMod는 Android의 가장 인기 있는 사용자 정의 버전으로 간주됩니다.


처음에 대부분의 사람들은 맞춤형(공장이 아닌 집에서 만든) 펌웨어를 초기 Android 버전의 성공하지 못한 인터페이스의 변경인 "아름다움"과 연관시켰습니다. Android 4.x(코드명 Ice Cream Sandwich, 나중에는 Jelly Bean, 현재는 KitKat)와 Holo라는 새로운 테마가 등장하면서 OS에 대한 새로운 디자인을 고안할 필요성이 거의 사라졌습니다. 능력 .

CyanogenMod 펌웨어의 모든 기능을 설명하려고 하면 Google의 원본 버전과의 차이점을 간단히 나열하는 데 여러 페이지가 걸리므로 일반 Android OS에 있는 모든 기능도 거기에 있다고 말하는 것이 더 쉬울 것입니다. 몇 배만 더.

예를 들어, 잠금 화면은 빠른 실행을 위해 애플리케이션 설치를 지원하고, 이동통신사의 모든 APN 포인트가 펌웨어에 내장되어 있으며, 타사 테마를 설치할 수 있고, 알림 패널을 매우 정확하게 구성할 수 있습니다(화면의 어느 쪽이더라도). 에 표시되어야 합니다.) 스마트폰을 태블릿 모드로 전환할 수 있고, 소프트웨어 버튼을 모두 비활성화하고 소위 파이 컨트롤(화면 가장자리에서 중앙으로 손가락을 스와이프하는 경우에만 나타나는 버튼)을 사용할 수 있습니다. 일상생활 지원, 사용자 프로필, 위젯 고급 제어, 화면 회전 제어, 무선으로 최신 업데이트 수신 기능 등 모든 것을 나열하는 것은 불가능합니다.

이 모든 것을 추가하면 펌웨어는 메모리를 거의 차지하지 않으며(예: Samsung Galaxy Note의 경우 약 115MB의 사용자 지정 메모리 대 600MB의 공식 메모리) 매우 원활하고 빠르게 작동합니다.

커스텀 커널

커널은 운영 체제의 핵심이며 장치의 전체 작동을 제어합니다. 모든 장치에는 자체 하드웨어 세트가 있으므로 제조업체는 특정 장치의 요구 사항에 따라 코어를 조립합니다. 일부 커널은 원래 펌웨어에 설치할 수 있지만 여전히 권장되지 않습니다.

비표준 커널은 사용자에게 무엇을 줄 수 있습니까? 프로세서 및 비디오 칩의 전력 소비 및 주파수 제어, 업데이트된 드라이버, Dalvik 가상 머신 제어, 화면의 사운드 및 작동 사용자 정의 기능, 연색성, 감도, 비표준 외부 장치에 대한 지원 추가. ..

지금까지 많은 사용자가 Android OS 기반 장치의 활성 작동 시간에 불만을 갖고 있었습니다. 올바르게 구성된 커널을 사용하면 장치에 영향을 주지 않고 이 기간을 몇 시간 연장할 수 있습니다. 또는 잘못 구성된 경우 부정적인 결과가 발생할 수 있습니다.

대체 커널을 설치하기 전에 모든 장단점, 이를 사용한 다른 사람들의 리뷰를 주의 깊게 연구해야 하며 운영 체제 작동에 새로운 결함과 문제가 나타날 수 있습니다. 잘못된 버전을 플래시하거나 개발자(잊지 마세요: 그는 인증된 전문가가 아니라 열성팬입니다)가 실수를 할 수도 있습니다. 이로 인해 장치의 하드웨어가 망가질 수도 있습니다. 수리 비용이 많이 들거나 전혀 실용적이지 않을 수 있습니다.

라디오 모듈

무선 모듈은 Wi-Fi, Bluetooth, 모바일 네트워크 등 장치의 모든 연결을 담당합니다. 장치가 무선 네트워크 신호를 잘 수신하지 못하거나 연결에 너무 많은 배터리 전력을 소비하기 때문에 펌웨어에 결함이 발생합니다. 또한 무선 모듈의 맞춤형 펌웨어는 회선에서 직접 통화를 녹음하는 등 문서화되지 않은 기능을 제공할 수 있습니다(무선 모듈의 일반 펌웨어는 전화 대화 녹음을 허용하지 않으며 대화 중에 일반 음성 녹음기만 켤 수 있습니다).

자체 펌웨어를 업데이트하기 위해 일반 펌웨어를 변경할 필요, 즉 전체 OS를 다시 설치할 필요는 없다. 제조업체는 때때로 무선 모듈 자체에 대한 펌웨어 업데이트를 출시하지만 모든 지역에 대해 항상 동시에 출시되는 것은 아닙니다. 차이가 6개월에 이를 수 있습니다. 다른 국가의 최신 OS 업데이트에는 이전에 출시된 것보다 약간 더 새로운 버전의 커널 및 라디오 모듈이 포함되어 있습니다.

장치에 사용자 정의 펌웨어를 설치해야 하는지에 대한 질문에 대한 명확한 답변을 제공하는 것은 불가능합니다. 이는 순전히 개별적인 문제입니다. 대부분의 독자에게는 공장 펌웨어와 함께 "작동하는" 장치이면 충분합니다. 누군가는 관심이나 특정 목적을 위해 루트 권한을 얻을 것입니다. 장치를 "새로 고침"하고 충분한 기회를 얻고 싶은 사람은 맞춤형 펌웨어, 커널, 라디오 모듈을 설치할 것입니다...

일부는 재충전, 수정, 개선의 주기에 빠질 수 있습니다. 즉, 삶을 더 쉽게 만들기 위해 설계된 장치를 사용하면서 잠 못 이루는 밤을 보낼 수도 있습니다. 그리고 부주의한 사람은 서비스 센터 마스터에게 상당한 금액을 줄 것입니다.

포럼과 블로그에서 시간을 보낸 후 기계적 인조 인간, 이 용어에 대한 언급이 많이 있음을 알 수 있습니다. 그러나 커널은 고유한 것이 아니며 다음 용도로만 사용됩니다. 기계적 인조 인간. 이후 iOS와 MacOS, Windows, BlackBerry의 QNX All 및 기타 운영 체제에서 사용됩니다. 기계적 인조 인간용도 리눅스 커널, 그러면 그에 대해 더 이야기하겠습니다.

핵심사용되는 기계적 인조 인간장치는 다른 운영 체제에서 사용되는 장치와 다릅니다. 여기에는 많은 특수 코드가 포함되어 있습니다. 하드웨어 제조업체도 현재 버전의 커널에 사용되는 하드웨어용 드라이버를 출시해야 하므로 이 프로세스에 참여합니다. 이러한 이유로 독립 개발자가 기존 장치에서 아무런 결함 없이 작동하려면 새 버전을 얻는 데 시간이 걸립니다. 다음을 위해 작성된 드라이버 생강 빵, 커널에서는 작동하지 않을 수 있습니다. 커널의 주요 기능 중 하나는 철분을 제어해야한다는 것이므로 이것은 매우 중요한 점입니다. 설명은 내부에서 계속됩니다. 안드로이드 커널.

모든 하드웨어 및 소프트웨어 작업에 필요합니다. 핵심. 예를 들어, 휴대폰의 검색 버튼을 누르면 해당 애플리케이션을 열도록 지시합니다. 일어나는 일은 디지타이저의 특정 지점을 터치하면 특정 좌표에서 화면을 터치하는 것에 대한 정보가 소프트웨어로 전송되는 것입니다. 소프트웨어는 특정 지점에 조치를 취할 때 검색 창을 열어야 한다는 것을 알고 있습니다. 핵심이 상황에서는 디지타이저가 터치를 인식하고 좌표를 찾아 시스템에 이 작업을 수행하도록 지시합니다. 궁극적으로 시스템이 터치 정보를 수신하면 커널(드라이버를 통해) 화면에 출력해야 할 내용을 알고 있습니다. 다음과 관련된 소프트웨어 및 하드웨어 핵심, 이를 통해 전화기는 필요한 작업을 수행할 수 있습니다. 한쪽에서 들어오는 정보는 다른 쪽에서 나가고 행동으로 이어집니다.

없이 커널정보를 주고받는 , 개발자는 각 이벤트와 장치의 각 하드웨어에 대한 코드를 생성해야 합니다. 커널을 사용하면 모든 것이 훨씬 간단해집니다. 개발자는 필요한 모든 요소를 ​​함께 연결하기만 하면 됩니다.

Android A부터 Z까지: Android 커널이란 무엇인가요?
평가 80점 만점에 80점 80개의 평가를 기준으로 합니다.
총 80개의 리뷰가 있습니다.

모바일 장치 사용자는 장치의 작동 및 기능에 항상 만족하는 것은 아닙니다. 이러한 이유로 사용자는 Android 운영 체제의 커널을 플래시하는 가장 좋은 방법을 찾고 있습니다. 한편, 이 작업은 태블릿이나 스마트폰을 사용하여 쉽게 수행할 수 있습니다. 수천 명의 사용자가 어떤 어려움이나 문제 없이 성공적으로 커널을 플래시했습니다. 그러나 반면에 이 과정에서 실수가 발생하면 장치가 고장나거나 값비싼 서비스가 필요한 등의 문제가 발생할 수 있습니다. 여러 단계에서 자격이 없는 개발자가 만들었거나 모바일 장치에 적합하지 않은 잘못된 버전의 커널 펌웨어를 선택할 위험이 있습니다. 낮은 수준에서 장치의 소프트웨어 부분을 변경하는 작업을 수행할 때는 매우 주의하는 것이 좋습니다. 커널을 성공적으로 플래시한 후 많은 사람들은 완전히 새로운 장치를 손에 쥐고 있는 것처럼 느낍니다. 따라서 고급 사용자는 최신 모바일 기술에 대한 새로운 지식과 경험을 얻으면서 자신의 필요와 선호에 맞게 가젯을 맞춤 설정할 수 있습니다.

Android 운영 체제 및 해당 펌웨어의 커널

모바일 기기의 핵심은 무엇인가?

운영 체제 커널은 장치의 하드웨어를 제어하는 ​​소프트웨어의 기초입니다. 모든 가젯의 기본 매개변수는 이에 따라 달라집니다. Linux 커널, Dalvik 수직 머신, 다양한 하위 수준 서비스 및 라이브러리라는 세 가지 상호 연결된 구성 요소로 구성되어 있습니다. 사용자 정의 펌웨어에 대해 이야기하는 경우 새 시스템 서비스를 추가하고 기존 매개변수를 최적화하며 그래픽 셸을 변경할 수 있는 두 가지 구성 요소만 영향을 받습니다.

Android에 커널을 설치하려는 사용자는 맞춤 커널과 맞춤 펌웨어의 개념에 차이가 있음을 이해해야 합니다. 후자는 소프트웨어의 비공식 버전입니다. 맞춤형 펌웨어는 특정 장치에 대한 전문가 팀에 의해 개발되었습니다. 사용자 정의 커널은 Linux 커널을 기반으로 하며 비공식 버전을 나타냅니다. 종종 맞춤형 커널이 펌웨어와 함께 번들로 제공됩니다. 단, 펌웨어 변경 후 별도로 설치가 가능합니다. 본질적으로 이는 이러한 작업의 궁극적인 목표인 모바일 장치의 기본 코어를 대체하지 않습니다.

Android 커널 펌웨어는 주로 전력 소비 매개변수를 조정하여 장치의 작동 시간을 몇 시간 늘리기 위해 수행됩니다. 아마도 이것이 사용자가 가젯 소프트웨어의 복잡한 변환을 수행하는 주된 이유일 것입니다. 펌웨어를 사용하면 스마트폰이나 태블릿에 영향을 주지 않고 비디오 칩을 변경할 수 있습니다. 고급 사용자는 이러한 방식으로 화면을 사용자 정의하여 연색성과 감도를 변경합니다. 커널 펌웨어를 사용하면 장치 사운드를 개선하고, 드라이버를 업데이트하고, 비표준 외부 장치에 대한 지원을 도입할 수 있습니다.

커널을 플래시하기 전에 숙련된 개발자가 만든 좋은 버전을 선택했는지 확인하는 것이 좋습니다. 또한 Android 펌웨어 버전에 적합한지 확인하는 것이 중요합니다. 휴대폰에 적절한 버전의 커널을 설치한 사람들의 리뷰를 읽는 것이 좋습니다. 리뷰에는 펌웨어 단계나 장치의 추가 작동 단계에서 발생할 수 있는 문제에 대한 중요한 정보가 포함될 수 있습니다.

Fastboot를 통해 가젯 플래싱

Fastboot를 사용하여 Android 기기를 다시 플래시할 수 있습니다. 하지만 먼저 가젯에 유틸리티를 설치해야 합니다. 이 프로그램에는 두 가지 버전이 있습니다. 첫 번째는 공식 Android SDK 프로그램과 함께 Fastboot를 다운로드하는 것입니다. 두 번째 버전에는 유틸리티를 별도로 다운로드하는 작업이 포함됩니다.

모바일 장치가 노트북이나 컴퓨터를 인식할 수 있는지 확인하는 것이 좋습니다. 이렇게 하려면 다음을 수행해야 합니다. Windows 운영 체제를 실행하는 컴퓨터나 노트북에 Fastboot 유틸리티를 다운로드하여 설치하고 스마트폰을 연결한 후 명령줄을 열어야 합니다. 이렇게 하려면 검색을 엽니다. Windows 8에서는 마우스 커서를 화면 오른쪽으로 이동하고 해당 섹션을 선택하면 됩니다. 검색에 "cmd"를 입력하면 명령줄이 나타납니다. 장치를 펌웨어 모드로 전환해야 합니다. 다음으로 컴퓨터와 모바일 장치 간의 상호 작용을 테스트하는 명령을 입력해야 합니다.

빠른 부팅 장치

모든 것이 제대로 작동한다면 올바른 버전의 커널 펌웨어 boot.img를 다운로드해야 합니다. 스마트폰 작동에 문제가 발생할 수 있으므로 원래 펌웨어의 커널을 플래시하지 않는 것이 좋습니다. 파일은 "Android"라는 C 드라이브의 미리 생성된 파티션에 저장되어야 합니다. 그런 다음 모바일 장치를 Fastboot로 부팅하고 컴퓨터에 연결해야 합니다. 화면에 "Fastboot USB" 메시지가 나타납니다.

  • CD C:\Android.
  • fastboot 플래시 부팅 boot.img.
  • fastboot 지우기 캐시.
  • 빠른 부팅 재부팅.

대소문자와 공백을 고려하여 모든 단어를 정확하게 입력하는 것이 매우 중요합니다. cd 명령은 필수 파일이 포함된 필수 폴더를 엽니다. 그 후 깜박임이 발생합니다. fastboot eracache 명령은 캐시 파티션을 삭제합니다. 마지막 명령인 fastboot 재부팅은 장치를 펌웨어 모드에서 일반 모드로 재부팅합니다. 위의 모든 단계를 올바르게 수행했다면 프로세스가 성공할 것입니다.

ClockworkMod 복구를 사용하는 펌웨어

ClockworkMod Recovery(또는 줄여서 CWM)는 원래의 공장 복구 대신 사용되는 복구 시스템입니다. CWM을 사용하면 모바일 장치에 새 펌웨어를 설치하고, 커널을 플래시하고, 파일을 백업하고, 셸을 복원할 수 있습니다. 이러한 시스템은 zip 형식의 펌웨어 업데이트 파일과 함께 작동할 수 있습니다. ClockworkMod가 설치되어 공장 복구를 대체합니다. CWM을 실행하려면 장치에 적합한 키 조합을 알아야 합니다. 대부분의 경우 이는 장치가 부팅되는 동안 눌러야 하는 볼륨 낮추기 및 전원 버튼의 조합입니다.

커널 펌웨어를 플래시하려면 zip 확장자가 있는 아카이브를 다운로드하세요. META-INF 폴더가 포함되어 있어야 합니다. 그러면 두 가지 옵션이 있습니다. 첫 번째 경우에는 펌웨어 파일을 지정해야 합니다. 두 번째 옵션은 펌웨어 파일을 /sdcard 폴더에 배치하는 것입니다. 그런 다음 ClockworkMod Recovery를 활성화하고 거기에서 sdcard에서 업데이트 적용 기능을 찾아 필요한 파일을 지정해야 합니다.

ClockworkMod Recovery 메뉴는 대부분의 사용자에게 편리하고 이해하기 쉽습니다. 이 펌웨어 복구 시스템 외에도 TWRP 복구를 사용할 수 있습니다. 이 도구는 Android 사용자들 사이에서 편리하고 인기가 있습니다. 가장 중요한 것은 올바른 펌웨어 파일을 선택하는 것입니다.

Android 커널 플래싱은 가젯 작동에 완전히 만족하는 경우에는 사용하지 않는 것이 좋습니다. 이러한 조치는 휴대폰이나 태블릿의 성능을 향상하려는 욕구에 의해 주도됩니다. 고급 사용자는 더 낮은 수준에서 매개변수를 설정할 수 있습니다. 그러나 특정 지식과 객관적인 이유가 없으면 모바일 장치의 소프트웨어 부분을 변경하지 않는 것이 좋습니다. 이는 작동 시 위험 및 오작동과 관련이 있기 때문입니다.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: