Android 기기의 커널을 플래싱합니다. Android 장치의 커널 플래싱 커널 버전 3.10 72 android

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

커스텀 커널?

맞춤형 커널이란 무엇입니까? 우리 모두 알고 있듯이 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; 행을 에코하십시오 > $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를 사용하기 위해 복잡한 Android 기능을 모두 알 필요는 없으며 ZIP 아카이브를 다운로드하여 설치하기만 하면 된다는 것입니다.

다양한 포럼과 웹사이트에서 많은 Android 기기 소유자는 커널 또는 영어 커널이라고 하는 이해할 수 없는 내용을 언급하는 경우가 많습니다. 이는 변경할 수 있으며 기기 설정 메뉴의 '태블릿(휴대전화) 정보' 섹션에 언급되어 있습니다.

더 자세히 살펴보면 커널이 운영 체제의 일부이며 Android뿐만 아니라 Windows, iOS, MacOS 등의 다른 운영 체제에도 있다는 것을 알 수 있습니다. 하지만 우리는 안드로이드 커널에 관심을 가질 것이고, 그것이 무엇인지 초보 사용자 수준에서 설명하려고 노력할 것입니다.

Android를 포함한 모든 운영 체제는 대체로 전체 장치의 작동을 관리하고 게임, 파일 관리자, 웹 브라우저 등과 같은 사용자 응용 프로그램 실행을 담당하는 프로그램 세트라는 것을 알고 계실 것입니다.

그리고 안드로이드 커널은 운영 체제에서 실질적으로 가장 중요한 부분으로, 시스템의 모든 하드웨어와 소프트웨어 부분 간의 상호 작용을 담당합니다. 커널은 장치의 모든 장비를 위한 드라이버 세트와 메모리, 네트워킹, 보안 및 운영 체제의 기타 기본 기능을 관리하기 위한 하위 시스템으로 구성됩니다.
예를 들어, 응용 프로그램을 실행하기 위해 화면을 터치하면 화면 터치패드 드라이버는 터치가 발생한 위치를 파악하고 다른 프로그램에 좌표를 보고합니다. 다른 프로그램은 다시 커널을 사용하여 장치 메모리에서 원하는 응용 프로그램을 찾아 실행합니다. 그것. 물론 이것은 매우 단순화된 모델이지만 운영 체제의 본질을 반영합니다.

따라서 우리는 어떤 소프트웨어가 어떤 작업을 수행하기 위해 태블릿이나 휴대폰의 하드웨어가 필요할 때 이를 수행하기 위해 운영 체제 커널을 사용한다는 사실을 발견했습니다.

커널은 Wi-Fi, Bluetooth, GPS, 메모리 및 기타 장치 등 모든 장비를 절대적으로 제어합니다. 장치의 "심장"인 프로세서도 예외는 아닙니다. 코어는 주파수와 전원 공급을 제어할 수 있습니다.
Android 운영 체제의 핵심은 개발자인 Google이 Linux 운영 체제에서 빌려온 것입니다.

커널은 모든 하드웨어를 제어하고 모든 태블릿과 휴대폰의 하드웨어가 다르기 때문에 기본 Android 커널은 각 장치마다 제조업체에서 별도로 수정합니다.

펌웨어와 마찬가지로 커널도 표준(공장)일 수도 있고 독립 개발자가 만든 맞춤형 대안일 수도 있습니다.

맞춤형 커널이 필요한 이유는 무엇입니까? 기본 코어는 제조업체에서 특정 장치에 대해 최대로 최적화하지만 일반적으로 프로세서 주파수 제어와 같은 중요한 핵심 기능을 차단합니다. 그리고 태블릿 프로세서를 오버클럭해야 하는 경우 커널을 프로세서 주파수 제어 기능이 잠금 해제된 맞춤형 커널로 ​​변경해야 합니다.

또한 사용자 정의 커널은 일반적으로 최신 버전의 Linux 커널을 기반으로 합니다. 다음은 사용자 정의 커널이 제공하는 대략적인 기능 목록입니다.

  • 넓은 범위 내에서 프로세서 주파수를 변경하십시오.
  • 그래픽 하위 시스템(GPU) 오버클러킹
  • 프로세서 주파수와 전압을 줄여 배터리 수명을 연장합니다.
  • 예를 들어 GPS 속도를 높이거나 새로운 기능을 추가하는 최신 고품질 드라이버
  • 사운드 및 화면 색상을 사용자 정의하고 구성하기 위한 다양한 옵션;
  • 대체 파일 시스템(XFS, ReiserFS 등)을 지원합니다.

대체 커널은 독립 개발자가 만들었기 때문에 사용자 정의 커널을 설치한 후 태블릿이나 휴대폰이 문제 없이 작동한다는 보장은 없습니다. 따라서 새 커널을 플래시하기 전에 시스템 전체 백업을 만드는 것이 좋습니다.

일요일 저녁, 새로운 Linux 커널 3.10이 공식적으로 출시되었습니다. Linus Torvalds에 따르면 커널은 지난 몇 년 동안 혁신 측면에서 가장 큰 것으로 나타났습니다. Linus는 처음에는 다른 릴리스 후보를 출시하려고 했지만 최종 릴리스 3.10을 출시하려는 경향이 있었습니다. 그리고 그의 메시지에서 그는 Linux 3.9와 같은 새 커널은 성능 문제가 발생하지 않으며 일상적으로 사용할 준비가 되어 있다고 언급했습니다.

RC 버전 발표에서 Torvalds는 일반적으로 코드의 특정 부분을 보낸 사람들의 이름 목록을 포함했지만 이번에는 목록이 너무 커서 하나의 메일링 목록에 완전히 나열할 수 없다고 썼습니다.

커널 3.10에 적용된 일부 변경 사항 목록:

  • 스크립트가 프로그램으로 실행되는 것을 방지할 수 있습니다. "#!" 헤더에 인터프리터 경로가 포함된 스크립트 실행 기능을 이제 커널 모듈로 컴파일할 수 있습니다.
  • Google에서 개발하고 사용하는 Bcache 시스템이 통합되어 있습니다. Bcache를 사용하면 빠른 SSD 드라이브의 느린 하드 드라이브에 대한 액세스 캐싱을 구성할 수 있습니다. 캐싱은 블록 장치 수준에서 수행됩니다. 이를 통해 장치에서 사용되는 파일 시스템에 관계없이 드라이브에 대한 액세스 속도를 높일 수 있습니다.
  • LLVMLinux 프로젝트에서 준비한 패치 덕분에 Clang 컴파일러를 사용하여 커널을 컴파일할 수 있습니다.
  • 타이머 인터럽트 생성을 제어하는 ​​동적 시스템이 등장했습니다. 이제 현재 상태에 따라 초당 수천 틱에서 초당 1개의 인터럽트 범위의 인터럽트를 변경할 수 있습니다. 이를 통해 시스템이 비활성 상태일 때 인터럽트를 처리할 때 CPU의 로드를 최소화할 수 있습니다. 현재 이 기능은 실시간 시스템 및 HPC(고성능 컴퓨팅)에 사용되지만 다음 커널 릴리스에서는 데스크톱 시스템에도 사용될 예정입니다.
  • 이제 프로세스/시스템(cgroups)에서 사용할 수 있는 메모리가 거의 고갈되었음을 애플리케이션에 알리는 이벤트를 생성할 수 있습니다.
  • 이제 perf 명령에 대해 메모리 액세스 프로파일링을 사용할 수 있습니다.
  • 새로운 드라이버 "sync"(실험적)가 있습니다. 이는 Android 플랫폼 내에서 개발되었으며 다른 드라이버 간의 동기화에 사용됩니다.
  • Microsoft Hyper-V 가상 비디오 어댑터용 드라이버가 나타났습니다(일반적으로 Hyper-V 작동도 개선되었습니다).
  • 이제 AMD의 16h(Jaguar) 프로세서 제품군에 도입된 새로운 전원 관리 기능이 지원됩니다.
  • 최신 AMD GPU에 내장된 하드웨어 UVD 디코더를 사용하여 비디오 디코딩 가속화 지원이 Radeon DRM에 추가되었습니다.
  • iSCSI 하위 시스템에 RDMA(iSER) 프로토콜에 대한 지원이 추가되었습니다.
  • 암호화 기능(sha256, sha512, 복어, twofish, 뱀 및 동백)의 실행은 AVX/AVX2 및 SSE 명령어를 사용하여 최적화됩니다.
  • QXL 가상 그래픽 카드 드라이버가 통합되었습니다(SPICE 프로토콜을 사용하여 그래픽 출력을 가속화하기 위해 가상화 시스템에 사용됨).

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

일요일 저녁, Linux의 모회사이자 운영 체제 커널 개발자인 Linus Torvalds는 두 달 간의 작업 끝에 Linux 커널 3.10의 새 버전을 출시한다고 발표했습니다.

개발자 자신에 따르면 이 커널은 지난 몇 년 동안 혁신 측면에서 가장 큰 커널입니다.

Linus는 처음에는 또 다른 릴리스 후보를 출시할 계획이었으나 숙고 끝에 3.10이라는 최종 릴리스를 즉시 출시하려는 경향이 있음을 인정했습니다. Torvalds는 또한 그의 메시지에서 버전 3.9와 같은 새로운 커널이 일상적으로 사용할 준비가 완전히 되어 있다고 언급했습니다.

또한, RC 버전 커널 발표에서 Linus Torvalds는 이전에는 항상 코드의 특정 부분을 보낸 사람들의 이름 목록을 포함했지만 이번에는 이 목록이 너무 커서 표시할 수 없다고 썼습니다. 한 장의 우편물에 전적으로 제공됩니다.

커널 3.10의 주요 변경 사항 목록:

  • 이제 스크립트가 프로그램으로 실행되는 것을 방지할 수 있습니다. "#!" 헤더에 인터프리터 경로가 포함된 스크립트를 시작하는 기능을 이제 커널 모듈로 컴파일할 수 있습니다.
  • Google에서 개발하고 사용하는 Bcache 시스템이 통합되어 있습니다. Bcache를 사용하면 빠른 SSD 드라이브의 느린 하드 드라이브에 대한 액세스 캐싱을 구성할 수 있습니다. 캐싱은 블록 장치 수준에서 수행됩니다. 이를 통해 장치에서 사용되는 파일 시스템에 관계없이 드라이브에 대한 액세스 속도를 높일 수 있습니다.
  • LLVMLinux 프로젝트에서 준비한 패치 덕분에 Clang 컴파일러를 사용하여 커널을 컴파일할 수 있습니다.
  • 타이머 인터럽트 생성을 제어하는 ​​동적 시스템이 등장했습니다. 이제 현재 상태에 따라 초당 수천 틱에서 초당 1개의 인터럽트 범위의 인터럽트를 변경할 수 있습니다. 이를 통해 시스템이 비활성 상태일 때 인터럽트를 처리할 때 CPU의 로드를 최소화할 수 있습니다. 현재 이 기능은 실시간 시스템 및 HPC(고성능 컴퓨팅)에 사용되지만 다음 커널 릴리스에서는 데스크톱 시스템에도 사용될 예정입니다.
  • 이제 프로세스/시스템(cgroups)에서 사용할 수 있는 메모리가 거의 고갈되었음을 애플리케이션에 알리는 이벤트를 생성할 수 있습니다.
  • 이제 perf 명령에 대해 메모리 액세스 프로파일링을 사용할 수 있습니다.
  • iSCSI 하위 시스템에 RDMA(iSER) 프로토콜에 대한 지원이 추가되었습니다.
  • 새로운 드라이버 "sync"(실험적)가 있습니다. 이는 Android 플랫폼 내에서 개발되었으며 다른 드라이버 간의 동기화에 사용됩니다.
  • QXL 가상 그래픽 카드 드라이버가 통합되었습니다(SPICE 프로토콜을 사용하여 가속화된 그래픽 출력을 위해 가상화 시스템에 사용됨).
  • 이제 AMD의 16h(Jaguar) 프로세서 제품군에 도입된 새로운 전원 관리 기능이 지원됩니다.
  • 최신 AMD GPU에 내장된 하드웨어 UVD 디코더를 사용하여 비디오 디코딩 가속화 지원이 Radeon DRM에 추가되었습니다.
  • Microsoft Hyper-V 가상 비디오 어댑터용 드라이버가 나타났습니다(일반적으로 Hyper-V 작동도 개선되었습니다).
  • 암호화 기능(sha256, sha512, 복어, twofish, 뱀 및 동백)의 실행은 AVX/AVX2 및 SSE 명령어를 사용하여 최적화됩니다.