img 확장 펌웨어를 사용하여 태블릿을 플래싱하는 프로그램입니다. img 펌웨어 편집. ext4 시스템 이미지 분해

MTwinTools는 펌웨어 파일 및 이미지 boot.img, Recovery.img 및 system.img로 작업할 수 있는 유틸리티입니다. 이 유틸리티의 작성자는 4pda 포럼의 vin2809입니다. MTwinTool은 소유자에게 유용할 것입니다 화웨이 스마트폰 MTK 프로세서 기반.

MTwinTools 작업을 위한 사용자 가이드

1. 소개.

1.1. 목적.

MTwinTools 도구는 MT 칩 기반 장치의 이미지를 분해/조립하는 데 사용됩니다.

다음에서 사용하도록 제작되었습니다. 명령줄 RK29xx-RK31xx 칩의 장치와 일부 무료 배포 프로그램과 함께 작동하도록 설계된 RKwinTools 도구를 기반으로 합니다.

CYGWIN을 설치하지 않고도 Windows 7 이상에서만 작동하며, CYGWIN에 추가 경로 등록이 필요하지 않습니다. 환경 변수 OS.

이 도구를 사용하면 다음을 수행할 수 있습니다.

  • Boot.img 이미지의 압축을 풀고 압축합니다.
  • Recovery.img 이미지의 압축을 풀고 압축합니다.
  • Kernel.img 이미지의 압축을 풀고 압축합니다.
  • yaffs 유형과 ext2-ext4 모두 System.img 이미지의 압축을 풀고 압축합니다.
  • sparse 유형의 스파스 파일을 ext4 유형의 이미지로 변환합니다.
  • md5 형식의 파일 체크섬을 계산합니다.
  • 슈퍼유저를 시작합니다.

1.2. MTwinTools 설치.
도구 설치는 편리한 장소에 아카이브의 포장을 풀어서 수행됩니다. 그러면 다음을 포함하는 MTwinTools 폴더가 생성됩니다.

  • 폴더 _In/, App/ 및 Cygwin/;
  • Readme.txt 및 menu.bat 파일도 있습니다.

_In 폴더는 비어 있으며 처리할 소스 이미지를 포함하기 위한 것입니다. App/ 폴더에는 이미지를 처리하는 명령 파일 세트가 포함되어 있습니다. Cygwin/ 폴더에는 자유롭게 재배포 가능한 유틸리티 라이브러리와 파일이 포함되어 있습니다. Readme.txt 파일에는 사용자 지침이 포함되어 있습니다. 현재 읽고 있는 텍스트. menu.bat 파일은 MTwinTools 도구 메뉴를 생성하는 데 사용됩니다.

주목. Windows OS 환경 변수에서 서비스 파일에 대한 액세스 경로를 지정하는 데 필수 사항은 없습니다.

작업하는 동안 필요한 다른 폴더가 나타납니다.

  • 이후 부팅, 복구 및 시스템 파일이 포함되는 팩
    패키지, 체크섬이 있는 파일이 포함된 md5 폴더 및 폴더
    펌웨어(어셈블된 부팅 파일이 위치할 이미지 하위 폴더)
    복구 및 시스템;
  • 압축 풀기, 부팅, 복구 및 시스템 파일이 완전히 압축 해제됩니다.
    이미지 하위 폴더의 펌웨어 폴더에 있습니다.

1.3. MTwinTools 제거.

도구의 루트 폴더를 삭제하면 도구가 제거됩니다. MTwinTools 폴더.

2. 기본 업무 규칙.

2.1. 시작하려면 도구 메뉴를 실행하는 menu.bat 파일을 실행해야 합니다.

2.2.압축해제용 이미지는 도구의 _In 폴더에 배치해야 합니다. 입력 파일의 이름에는 키워드가 포함되어야 하며 다음과 같은 이름을 가질 수 있습니다.

  • *부팅*.img;
  • *복구*.img;
  • *커널*.img;
  • *시스템*.img.

2.3.처음 시작할 때 도구를 초기화하십시오. 도구가 초기화되면 _In 폴더에 있는 모든 파일이 작업 입력 폴더 Unpack/Firmware/Image에 복사됩니다. 이는 원본 파일을 보존하기 위해 수행됩니다.

2.4.이미지를 분해한 후 해당 내용은 Unpack 폴더에 배치되며 여기에 다음 폴더 구조가 생성됩니다.

부팅(복구)/cfg/
핵심/
램디스크/

cfg/ 폴더에는 이미지 설정이 포함되며, 커널 폴더에는 커널이 있습니다. zImage 바이너리 파일과 ramdisk 폴더에는 다른 모든 것이 포함됩니다. 이미지, 즉 구성 요소를 조립하려면 Unpack의 적절한 폴더에 램디스크, 커널 및 설정을 배치합니다. 생성된 이미지는 Pack 출력 폴더에 위치합니다.

3. 제품 설명.

3.1. 주 명령 메뉴.

도구 명령의 기본 메뉴는 다음과 같습니다.

**************************
* MTwinTools_V_0.6 *
**************************
*이미지 명령:*
* ————— *
*1-부팅*
*2-복구*
*3-커널*
*4-시스템*
*5-기타 명령*
* *
**************************
* 도구 명령: *
* ————— *
*6-초기화 도구*
*7-클린*
* *
**************************
*8-출구*
**************************
명령을 선택하십시오:

명령 앞에 표시된 숫자를 입력하면 명령이 선택됩니다. 현재 버전에서는 다음을 수행할 수 있습니다.

— 숫자 "1"을 입력하여 부팅 이미지 처리 메뉴로 이동합니다.
— 복구 이미지 처리 메뉴로 이동 — "2";
— 커널 이미지 처리 메뉴로 이동 — "3";
— 시스템 이미지 처리 메뉴로 이동 — "4";
— 다른 명령 메뉴로 이동 — "5";
— 도구의 작업 영역 초기화 — "6";
— 제품의 작업 영역을 청소하십시오 — "7";
— 작업을 완료합니다. 즉 시설에서 나가기 - "8".

3.2. 부팅 메뉴.

부팅 이미지 처리를 진행하려면 "1-Boot" 명령을 실행하세요. 그러면 "부팅 명령" 메뉴로 이동합니다.

부팅 이미지 처리 메뉴는 다음과 같습니다.

**************************
* 부팅 명령: *
* ————— *
*1-부팅 풀기*
*2-부팅 팩*
* *
**************************
*3-반품*
**************************
명령을 선택하십시오:

명령 “1”은 부팅 이미지의 압축을 풀고, 명령 “2”는 부팅 이미지의 압축을 해제합니다. "3" 명령은 도구의 기본 메뉴로 돌아갑니다.

2.2.1. boot.img 이미지를 분해합니다.

2.2.2. boot.img 이미지를 빌드합니다.

부팅 이미지를 빌드하면 데이터 소스를 선택하는 메뉴가 나타납니다.

**************************
* 선택 소스 이미지 : *
* 1. 압축 풀기 디렉토리 *
* 2. 팩 디렉토리 *
*3.반품*
**************************
소스를 선택하세요:

Unpack/Boot 폴더에 있는 압축이 풀린 이미지에서 이미지를 만들 수 있습니다. 이렇게 하려면 메뉴 항목 “1. 압축을 풀어주세요." 메뉴 항목 “2. Pack dir"을 선택하면 Pack/boot 폴더에 있는 데이터에서 이미지가 생성됩니다. 작업을 취소하려면 메뉴 항목 “3. 반품". 동시에 당신은
"부팅 명령" 메뉴로 돌아갑니다.

3.3. 복구 메뉴.

복구 이미지 처리를 진행하려면 “2-Recovery” 명령을 실행하세요. 그러면 "복구 명령" 메뉴로 이동됩니다. 복구 이미지 처리 메뉴는 다음과 같습니다.

**************************
* 복구 명령: *
* —————— *
* 1-복구 풀기 *
* 2-리커버리 팩 *
* *
**************************
*3-반품*
**************************
명령을 선택하십시오:

명령 "1"은 복구 이미지의 압축을 풀고, 명령 "2"는 복구 이미지의 압축을 해제합니다. "3" 명령은 도구의 기본 메뉴로 돌아갑니다.
2.3.1. Recovery.img 이미지를 분해합니다.

모든 작업은 자동으로 수행됩니다. 여러분의 참여 없이는 여기서 설명할 것이 없습니다.

2.3.2. Recovery.img 이미지를 빌드합니다.

복구 이미지를 생성하면 데이터 소스를 선택하는 메뉴가 나타납니다.

**************************
* 선택 소스 이미지 : *
* 1. 압축 풀기 디렉토리 *
* 2. 팩 디렉토리 *
*3.반품*
**************************
소스를 선택하세요:

Unpack/recovery 폴더에 있는 압축이 풀린 이미지에서 이미지를 만들 수 있습니다. 이렇게 하려면 메뉴 항목 “1. 압축을 풀어주세요." 메뉴 항목 “2. Pack dir"을 선택하면 Pack/recovery 폴더에 있는 데이터에서 이미지가 생성됩니다.

작업을 취소하려면 메뉴 항목 “3. 반품". 그러면 "복구 명령" 메뉴로 돌아갑니다.

3.4. 커널 메뉴.

커널 이미지 처리를 진행하려면 “3-Kernel” 명령을 실행하세요. 그러면 "커널 명령" 메뉴로 이동합니다.

커널 이미지 처리 메뉴는 다음과 같습니다.

**************************
* 커널 명령: *
* —————— *
* 1-커널 압축 풀기 *
*2-커널 팩*
* *
**************************
*3-반품*
**************************
명령을 선택하십시오:

명령 "1"은 커널 이미지의 압축을 풀고 명령 "2"는 커널 이미지의 압축을 해제합니다. "3" 명령은 도구의 기본 메뉴로 돌아갑니다.

3.4.1. kernel.img 이미지를 분해합니다.

모든 작업은 자동으로 수행됩니다. 여러분의 참여 없이는 여기서 설명할 것이 없습니다.

3.4.2. kernel.img 이미지를 빌드합니다.

커널 이미지를 빌드하면 데이터 소스를 선택하는 메뉴가 나타납니다.

**************************
* 선택 소스 이미지 : *
* 1. 압축 풀기 디렉토리 *
* 2. 팩 디렉토리 *
*3.반품*
**************************
소스를 선택하세요:

Unpack/Kernel 폴더에 있는 압축이 풀린 이미지에서 이미지를 만들 수 있습니다. 이렇게 하려면 메뉴 항목 “1. 압축을 풀어주세요." 메뉴 항목 “2. Pack dir"을 선택하면 Pack/Kernel 폴더에 있는 데이터에서 이미지가 생성됩니다.

작업을 취소하려면 메뉴 항목 “3. 반품". 그러면 "커널 명령" 메뉴로 돌아갑니다.

3.5. 메뉴 시스템.

시스템 이미지 처리를 진행하려면 "3-System" 명령을 실행하세요. 그러면 "시스템 명령" 메뉴로 이동합니다.

시스템 이미지 처리 메뉴는 다음과 같습니다.


* 시스템 명령: *
* ——————————————— *
* 야프 1팩 * 야프 2팩 *
* 3팩 풀기 ext3 * 4팩 ext3 *
* 5팩 ext4 * 6팩 ext4 *
* 7-스파스에서 ext4로 * *
* * *
***************************************************
*8-반환*
***************************************************
명령을 선택하십시오:

3.5.1. Yaff와 같은 시스템 이미지를 분해합니다.

"1" 명령은 yaffs 유형의 시스템 이미지를 Unpack/System 폴더에 압축 해제합니다.

3.5.2. Yaff와 같은 시스템 이미지 구축.

명령 "2"는 yaffs 유형의 시스템 이미지를 압축합니다. 데이터 소스를 선택하는 메뉴가 나타납니다.

**************************
* 선택 소스 이미지 : *
* 1. 압축 풀기 디렉토리 *
* 2. 팩 디렉토리 *
*3.반품*
**************************
소스를 선택하세요:

Unpack/system 폴더에 있는 압축이 풀린 이미지에서 이미지를 만들 수 있습니다. 이렇게 하려면 메뉴 항목 “1. 압축을 풀어주세요." 메뉴 항목 “2. Pack dir"을 선택하면 Pack/system 폴더에 있는 데이터에서 이미지가 생성됩니다.

작업을 취소하려면 메뉴 항목 “3. Return”을 선택하면 이전 “시스템 명령” 메뉴로 돌아갑니다.

3.5.3. ext3 유형 시스템 이미지를 디스어셈블합니다.

명령 "3"은 ext2-ext3 유형의 시스템 이미지를 Unpack/System 폴더에 압축 해제합니다.

3.5.4. ext3 유형의 시스템 이미지를 구축합니다.

명령 "4"는 ext2-ext3 유형의 시스템 이미지를 구축합니다. 포장은 3.5.2절과 유사하게 수행됩니다. 출력 이미지만 ext3 유형이 됩니다.

3.5.5. ext4 유형 시스템 이미지를 분해합니다.

“5” 명령은 ext4 시스템 이미지의 압축을 Unpack/System 폴더에 푼다.

3.5.6. ext4 유형의 시스템 이미지를 구축합니다.

명령 “6”은 ext4 유형의 시스템 이미지를 빌드합니다. 포장은 3.5.2절과 유사하게 수행됩니다. 출력 이미지만 ext4 유형이 됩니다.

3.5.7. 희소 압축 이미지를 ext4로 변환합니다.

"7" 명령은 희소 유형의 압축 이미지를 ext4 유형의 이미지로 변환(변환 또는 트랜스코딩)합니다(simg2img 작업과 유사).

3.5.8.메인메뉴로 돌아갑니다.

"8" 명령은 도구의 기본 메뉴로 돌아갑니다.

3.6. 다른 명령 메뉴.

다른 명령을 실행하려면 “5-기타 명령” 명령을 실행하세요. 그러면 “기타 명령” 메뉴로 이동합니다. 다른 명령을 실행하기 위한 메뉴는 다음과 같습니다.

**************************
* 기타 명령: *
* —————- *
*1-수퍼유저 초기화*
* 2-md5 계산 *
* *
**************************
*3-반품*
**************************
명령을 선택하십시오:

명령 “1”은 시스템 이미지에서 슈퍼유저를 초기화하고, 명령 “2”는 파일 체크섬을 계산합니다. "3" 명령은 도구의 기본 메뉴로 돌아갑니다.

3.6.1. 슈퍼유저를 초기화하는 중입니다.

슈퍼유저를 초기화하면 소스 선택 메뉴가 나타납니다.

**************************
* 선택 소스 초기화: *
* 1. 압축 풀기 디렉토리 *
* 2. 팩 디렉토리 *
*3.반품*
**************************
소스를 선택하세요:

Unpack/system 폴더에 있는 압축이 풀린 이미지를 초기화할 수 있는 기회가 있습니다. 이를 위해 메뉴 항목 “1. 압축을 풀어주세요." 메뉴 항목 “2. Pack dir"을 선택하면 Pack/system 폴더에 있는 이미지가 초기화됩니다. 작업을 취소하려면 메뉴 항목 “3. 반품".
초기화는 복사로 이루어집니다. 필요한 파일(su 및 SuperSU.apk)를 분해된 System.img 이미지로 복사합니다. 루트 액세스 권한을 얻으려면 다음이 필요합니다.

— 주 메뉴의 "3" 명령을 사용하여 시스템 이미지의 압축을 풉니다.
도구를 사용하거나 압축을 푼 이미지를 Unpack(또는 Pack)/System/ 폴더에 넣습니다.
— "기타 명령" 메뉴에서 "1-init SuperUser" 명령을 실행합니다.

System.img 이미지를 플래시한 후에는 장치에 대한 루트 액세스 권한을 갖게 됩니다. 장치에서 루트 액세스를 얻기 위해 다른 버전의 파일을 사용하는 경우 App/ 폴더에서 su 및 SuperSU.apk 파일을 업데이트(교체)하기만 하면 됩니다.

3.6.2. 체크섬 계산.

파일의 체크섬을 계산하려면 해당 파일을 Pack/md5/ 폴더에 넣으십시오. "2-Calculate md5" 명령을 실행하면 Pack/md5 폴더에 있는 모든 파일이 추가됩니다. 체크섬, md5 알고리즘을 사용하여 계산됩니다. 확장자가 없거나 확장자가 .img, .tar, .zip인 파일만 처리됩니다.

3.7. 초기화.

초기화를 수행하려면 "6-init Tools" 명령을 실행하십시오. 그러면 MTwinTools가 작동하는 데 필요한 모든 폴더 구조가 생성되고 입력 이미지가 작업 폴더 Unpack/Firmware/Image에 복사됩니다.

3.8. 제품을 청소합니다.

작업 영역을 지우려면 “7-CLEAN”을 입력하세요. 이 경우 모든 추가 폴더와 해당 내용이 삭제되고 MTwinTools는 작업을 완료하고 설치 직후의 형식을 사용합니다.

3.9. 출구.

종료하려면 "8-Exit"를 누르십시오. 이 경우 별도의 청소 없이 제품만 나옵니다.

보간, 보간- 계산 수학에서 알려진 값의 기존 개별 집합에서 수량의 중간 값을 찾는 방법입니다.

과학 및 공학 계산을 다루는 많은 사람들은 경험적으로 또는 무작위 샘플링을 통해 얻은 값 세트를 사용하여 작업해야 하는 경우가 많습니다. 일반적으로 이러한 세트를 기반으로 다른 얻은 값이 높은 정확도로 포함될 수 있는 함수를 구성해야 합니다. 이 작업은 근사. 보간은 구성된 함수의 곡선이 사용 가능한 데이터 포인트를 정확하게 통과하는 근사 유형입니다.

유한 차분 보간 방법에는 여러 가지가 있습니다. 최대
순방향 보간에 대한 뉴턴 방법(Newton-Gregory 방법)이 일반적입니다. 이 경우 보간 다항식의 형식은 다음과 같습니다.

다음 공식을 사용하여 계수 C를 찾습니다.

C#으로 프로그램 구현:
시스템 사용; 네임스페이스 보간( 클래스 프로그램…

정렬 알고리즘 시각화

프로그램은 두 개의 스레드로 나누어져 하나는 정렬을 수행하고 다른 하나는 다시 그리기를 수행합니다. GUI. "정렬" 버튼을 클릭하면 프로그램은 정렬 알고리즘이 정의되고 정렬 프로세스가 실행되는 새 스레드가 생성되는 "RunSorting" 메서드를 호출합니다.
프라이빗 보이드 RunSo…

KT819G의 Kacher Brovina

오늘은 지난 겨울방학에 만들었던 카쉐르를 보여드리고자 합니다. 인터넷에 기사가 많기 때문에 전체 제조 과정에 대해서는 설명하지 않겠습니다. 주요 매개변수에 대해서만 쓰겠습니다.

아래는 장치를 조립하는 동안 찍은 몇 장의 사진입니다.

코일은 직경 50mm, 높이 200mm의 PVC 파이프에 0.08mm 와이어를 약 2000바퀴 감았습니다.

오래된 플레이트가 터미널로 사용되었습니다. 하드 드라이브. 그 밖의 모든 것은 페이지 맨 아래에 있는 다이어그램에 따라 구성되었습니다.

첫 번째 옵션은 12V 전압의 기존 컴퓨터 전원 공급 장치에서 전원을 공급 받았습니다. 그런 다음 30V 전압과 내장형 냉각 기능을 갖춘 별도의 전원 공급 장치가 만들어졌습니다.

장치 다이어그램:

CORS란 무엇이며 어떻게 사용하나요?

CORS(교차 도메인 리소스 공유)는 브라우저에서 도메인 간 통신을 허용하는 W3C 사양입니다. XMLHttpRequest 개체 위에 구축함으로써 CORS를 사용하면 개발자는 동일한 도메인의 요청과 동일한 관용구로 작업할 수 있습니다. CORS의 사용 사례는 간단합니다. alice.com에 bob.com이 얻고자 하는 일부 데이터가 있다고 가정해 보십시오. 이러한 유형의 요청은 전통적으로 동일한 브라우저 원본 정책에서는 허용되지 않습니다. 그러나 CORS 요청을 지원함으로써 alice.com은 bob.com이 데이터에 액세스할 수 있도록 허용하는 몇 가지 특수 응답 헤더를 추가할 수 있습니다. 이 예에서 볼 수 있듯이 CORS를 지원하려면 서버와 클라이언트 간의 조정이 필요합니다. 운 좋게도 클라이언트 측 개발자라면 이러한 세부 정보 대부분으로부터 보호받을 수 있습니다. 이 문서의 나머지 부분에서는 클라이언트가 원본 간 요청을 수행하는 방법과 서버가 CORS를 지원하도록 구성하는 방법을 보여줍니다. 계속되는…

거의 모든 사람 안드로이드 사용자스마트폰을 사용하면서 자신의 필요와 욕구에 맞게 펌웨어를 만들거나 편집하고 싶은 욕구가 있었습니다. 이 기사에서는 CWM용 펌웨어 편집 원리(zip 형식)를 살펴보겠습니다.

준비:

우선, 어떤 펌웨어를 기본으로 사용할지 결정해야 합니다. 오프를 사용하는 것이 좋습니다. zip의 펌웨어. 거의 모든 일반 장치에는 깨끗한 펌웨어 + 루트가 있습니다.
펌웨어를 선택하면 PC의 편리한 위치에 다운로드해야 합니다(압축을 풀 필요 없음).
아카이버도 필요합니다. 사용하는 것이 좋습니다. 7zip그리고 동종 최고 텍스트 에디터 메모장++.

펌웨어 구조:

펌웨어로 아카이브를 열면 다음이 표시됩니다.
메타-INF- 폴더에는 펌웨어 설치 스크립트가 포함되어 있습니다.
체계- 모든 펌웨어 파일(응용 프로그램, 조정, 스크립트 등)이 포함된 폴더입니다.
boot.img- 시스템의 핵심.

거의 모든 조작은 폴더에서 수행됩니다. 체계, 그 구조:
- 시스템 응용 프로그램.
큰 상자- 시스템 자체의 리소스.
- 스크립트, 조정, 구성, 프로필 및 시스템 설정.
글꼴- 시스템 글꼴.
뼈대- 주요 시스템 파일이 여기에 저장됩니다(그래픽, 애니메이션 텍스트 설정 등).
lib- 시스템 라이브러리.
미디어- 멀티미디어 파일(알림 벨소리, 로딩 애니메이션, 배경화면 등).
우리- 향후 시스템에서 변경할 수 없는 설정(읽기 전용 모드에서 작동)
x빈- 다시 한번 말씀드리지만, 시스템 구성 및 기타 조정이 필요합니다.
빌드.소품- 시스템, 로케일 설정 및 시스템 성능에 대한 정보.

신청:

시스템에 소프트웨어를 추가/제거하기 전에 펌웨어가 Deodex되었는지 확인해야 합니다. 즉, 앱 폴더에 .odex 파일이 있는지 확인해야 합니다. 파일이 있는 경우 이를 사용하여 제거해야 합니다. 지침 .
펌웨어에 소프트웨어를 추가합니다:
우선, 어셈블리에 추가하려는 프로그램을 스마트에 설치해야 합니다. 설치 후 다음을 사용하여 시스템에서 제거합니다. 루트 탐색기및 그 유사 항목은 데이터/앱 경로에 있으며 해당 lib도 필요하며(물론 존재하는 경우) 데이터/데이터 경로에 있습니다. 응용 프로그램에서 동일한 이름의 폴더에 있으며 확장자는 다음과 같습니다. .그래서. 그런 다음 압수 .apk시스템/앱 경로와 확장자를 가진 파일을 따라 아카이브에 파일을 넣습니다. .그래서(libs) 경로를 따라 system/lib .
펌웨어에서 소프트웨어를 제거합니다.
여기에서는 모든 것이 간단합니다. 폴더로 이동하세요. - 필요하지 않은 것을 결정하고 불필요한 소프트웨어를 모두 제거합니다(시스템을 건드리지 않는 것이 좋습니다).

언어 및 펌웨어 버전:

build.prop 파일을 데스크탑에 복사하십시오. 메모장으로 열고 다음 줄을 찾으세요.

ro.product.locale.언어=en
ro.product.locale.region=미국

러시아어의 경우 다음을 수행해야 합니다.

ro.product.locale.언어=ru
ro.product.locale.region=RU

해당 줄에 모드 이름을 입력하세요

동일한 build.prop에서

그래픽 아트:

펌웨어의 전체 그래픽 부분은 두 개의 파일 Framework-res.apk 파일 경로에 저장됩니다. 시스템프레임워크그리고 SystemUI.apk도 함께 진행됩니다. 시스템앱. 그리고 설정 애플리케이션의 그래픽 부분은 자연스럽게 Settings.apk 애플리케이션에 저장됩니다.

스크립트 및 조정(시스템 가속 및 최적화):

대부분의 설정은 파일에서 수행됩니다. 빌드.소품, 이에 대해 읽을 수 있습니다. 또한 커널이 지원하는 경우 init.d시스템을 최적화하기 위한 여러 스크립트가 있으며 그 중 하나가 이 문서에 설명되어 있습니다. (RAM 최적화)그리고 이 글에서는 init.d에 대한 스크립트 조정

시스템 글꼴 교체:

위에서 설명한 것처럼 모든 글꼴이 폴더에 포함되어 있습니다. 글꼴, 주요 글꼴은 DroidSans.ttf 및 DroidSans-Bold.ttf입니다. 어떤 글꼴로든 교체할 수 있으며, 위와 유사하게 이름을 바꾸고 대체 폴더에 펌웨어가 있는 아카이브로 이동할 수 있습니다. 글꼴.

핵심:

이론적으로는 충분히 교체가 가능합니다. boot.img자체적이지만 어떤 경우에는 코어에 추가 스크립트가 수반됩니다. 그러므로 의심스러운 점이 있으면 아무것도 하지 말 것을 권고합니다.



Linux가 필요하다는 사실부터 시작하겠습니다. Windows에서는 펌웨어를 분해만 할 수 있지만 순전히 기술적인 이유로 다시 조립할 수는 없습니다. 이제 펌웨어에 대해 알아보십시오. 일반적으로 사용자 정의 복구를 통해 플래시된 ZIP 아카이브 형태로 배포됩니다. 실험에 필요한 것 중 하나입니다. AOSP에 최대한 가까운 것으로 로모델의 길을 시작하는 것이 좋습니다. 맞춤형 펌웨어, 주식보다 이해하기 쉬운 경우가 많기 때문입니다.

  1. 펌웨어가 포함된 아카이브를 임의의 폴더에 압축을 풉니다.
  2. 링크에서 스크립트를 다운로드하고 임의의 폴더에 압축을 풉니다.
  3. ext 파일을 실행합니다(Java가 부족하다고 불평하는 경우 y를 눌러 건너뛰세요. Java는 패키징에만 필요합니다).
  4. 이제 버튼 1을 누르고 Enter를 눌러 포장 풀기를 선택하십시오.
  5. extract_*라는 새 폴더가 ext 파일과 도구 폴더 옆에 나타납니다. system.new.dat 및 system.transfer.list 파일을 여기에 복사합니다.
  6. 파일을 복사한 후 Enter를 누르고 기다립니다. 잠시 후 Enter를 다시 누르고 관리자 비밀번호를 입력한 후 Enter를 다시 눌러야 합니다.
  7. 준비가 된. 시스템의 내용은 extract_*/output 폴더에 있습니다.

수동 방법

펌웨어가 포함된 아카이브를 임의의 폴더(예: ROM)에 압축 해제합니다.

$ mkdir ~/rom $ unzip path_to_archive -d ~/rom/

필요한 도구를 이 폴더에 다운로드하세요.

$ cd ~/rom $ wget https://github.com/xpirt/sdat2img/raw/master/sdat2img.py

스크립트를 실행해 보겠습니다.

$ chmod +x sdat2img.py $ ./sdat2img.py system.transfer.list system.new.dat system.img

system.new.dat 파일을 system.img 라는 원시 이미지로 변환합니다. 이미지를 mnt 하위 폴더에 마운트합니다.

$ mkdir mnt $ sudo mount -t ext4 -o loop system.img ~/rom/mnt

안드로이드 디렉토리 구조

시스템 압축을 풀면 다음 디렉터리 구조가 나타납니다.

  • - 사전 설치된 애플리케이션표준 권한이 있는 경우
  • 개인 앱- 일부 시스템 구성 요소를 포함하여 높은 권한을 가진 사전 설치된 애플리케이션
  • 큰 상자- Linux의 /bin 및 /usr/bin 디렉토리와 유사한 ELF 형식의 바이너리 파일입니다. 상위 수준 시스템 구성 요소에서 사용되는 다양한 시스템 구성 요소가 포함되어 있습니다.
  • - 설정 파일. 그러나 Linux의 /etc와 완전히 유사하지만 동일한 시스템 구성 요소에서만 사용됩니다. 안드로이드 애플리케이션가게 개별 설정/data/data/ 디렉토리에 있습니다.
  • 글꼴- 글꼴. 기본적으로 Roboto 브랜드 글꼴만 포함되어 있습니다.
  • 뼈대- 시스템 및 애플리케이션에서 사용되는 Java 클래스 라이브러리. 인터페이스에 대한 전체 설명이 포함된 Framework-res.apk 파일도 있습니다. 운영 체제, 모든 그래픽 파일 포함;
  • lib그리고 lib64- 하위 수준 시스템 구성 요소에서 사용되는 Linux 라이브러리입니다. 다음을 포함하여 Linux의 /lib 및 /usr/lib 디렉토리와 유사합니다. 표준 라이브러리, libc, libz, libssl과 같습니다. ARMv7 아키텍처 이하를 사용하는 장치에서는 lib64 디렉터리가 누락됩니다.
  • 미디어- 미디어 파일: 벨소리, 알림음, 인터페이스 사운드 및 OS 로딩 애니메이션
  • ㅜㅜ- 음성 합성기에 필요한 파일
  • 우리- 일반적으로 bin 디렉터리에서 응용 프로그램을 실행하는 데 필요한 파일이 포함된 디렉터리입니다. 본질적으로 /usr/share 와 유사합니다.
  • 공급업체- 장치 제조업체에서 제공한 파일입니다. 일반적으로 Wi-Fi 모듈과 같은 다양한 하드웨어 구성 요소에 대한 바이너리 펌웨어가 포함되어 있습니다.
  • x빈- 선택적 디렉토리; 맞춤형 펌웨어는 이를 사용하여 bash 해석기, SSH, PowerTOP, BusyBox 및 기타 유용한 도구와 같은 항목을 저장합니다.
  • 빌드.소품- 어셈블리에 대한 정보와 다양한 하위 수준 설정이 포함된 파일
  • addon.d- 펌웨어 설치 후 실행되는 스크립트가 포함되어 있습니다. GApps는 또한 여기에 스크립트를 작성하므로 펌웨어를 다시 설치한 후 부활됩니다.

이제 Android의 기본 구조에 익숙해졌으니 변경 작업을 시작해 보겠습니다.

애플리케이션 제거 및 추가

모두 사전 설치된 프로그램두 개의 폴더에서 찾을 수 있습니다:

  • /시스템/앱/;
  • /시스템/priv-app/.

액세스 권한이 서로 다릅니다. 앱의 프로그램에 동일한 권한이 있는 경우 타사 프로그램(예: Play 스토어에서 설치) priv-app의 애플리케이션은 권한 있는 API(특권)를 사용할 수 있습니다. 이에 대해 자세히 알아볼 수 있습니다.

애플리케이션을 펌웨어에 사전 설치하려면 해당 APK 파일을 /system/app/ 에 놓기만 하면 됩니다. 물론 별도의 폴더를 만들 수 있지만 우리의 경우에는 폴더가 라이브러리와 odex 파일을 저장하는 데 사용되기 때문에 의미가 없습니다. 제거하려면 해당 폴더를 삭제하면 됩니다.

더 나아가서 스톡 애플리케이션을 아날로그로 대체할 수 있습니다. 예를 들어 달력을 바꾸려면 폴더를 삭제하세요. 달력그리고 우리가 가장 좋아하는 com.rpagyc.simplecalendar.apk를 /system/app에 복사하세요. 그리고 복사할 필요도 없습니다. 그러면 펌웨어에 달력이 없습니다.

기억해야 할 가장 중요한 점은 스톡 프로그램이 서로 연관될 수 있다는 것입니다. 따라서 한 프로그램을 삭제하면 다른 프로그램이 완전히 작동하지 않을 수 있습니다(예: CalendarProvider 및 Calendar: 첫 번째 프로그램을 삭제하면 주식 달력뿐만 아니라 다른 달력도 작동하지 않게 됩니다). 다행히 순수 AOSP 펌웨어에는 상호 연결이 많지 않습니다.

로딩 애니메이션 변경

애니메이션은 압축 없이 /system/media/bootanimation.zip 아카이브에 압축된 PNG 이미지로 저장됩니다. 아카이브 내부에는 다음이 있습니다.

  • 설명.txt- 애니메이션을 설명하는 파일
  • 파트0- 먼저 재생되는 애니메이션 파일이 있는 폴더
  • 1 부- 두 번째로 재생되는 애니메이션 파일이 있는 폴더
  • 부분?- 마지막 폴더, 마지막에 이미지가 재생됩니다.

desc.txt 파일에는 다음과 같은 내용이 포함될 수 있습니다.

1920 1080 60 p 1 0 부분0 p 0 0 부분1

이 선의 목적은 직관적입니다. 1920 × 1080은 이미지 해상도이고 60은 초당 프레임 수입니다. Part0과 part1은 애니메이션이 재생될 폴더와 재생 순서를 나타냅니다. 일반적으로 한 부분 또는 여러 부분(3개 이상)이 있을 수 있습니다.

부품 폴더에 있는 이미지에는 재생 순서에 따라 5개의 숫자가 지정됩니다: 00000.png, 00001.png, 00002.png... 이러한 이미지를 자신의 이미지로 교체하여 독창적인 애니메이션을 만들 수 있습니다. 또는 bootanimation.zip 파일을 삭제해도 됩니다. 그런 다음 장치는 애니메이션을 표시합니다 표준 안드로이드. 또는 w3bsit3-dns.com에서 미리 만들어진 애니메이션 컬렉션을 사용하세요.

사운드 디자인 변경

실제로 시스템에서 재생되는 모든 사운드는 /system/media/audio 폴더에 저장됩니다. 그 안에는 다음과 같은 폴더가 있습니다.

  • 경보- 알람 시계 멜로디;
  • 알림- 알림 소리
  • 벨소리- 벨소리;
  • UI- 배터리 부족, 카메라 포커싱, 인터페이스 요소 선택 등의 시스템 사운드.

알람, 알림, 벨소리에 원하는 만큼의 멜로디를 추가할 수 있습니다. 예를 들어 다음과 같이 할 수 있습니다.

  • 다양한 Nokia 휴대폰 및 스마트폰의 표준 벨소리;

그리고 약간의 생활 해킹: ui 폴더에서 파일을 삭제하면 충돌이나 오류가 발생하지 않고 시스템 사운드가 사라집니다. 따라서 이러한 소리가 포함된 파일을 삭제하기만 하면 카메라에서 사진을 찍거나 스크린샷을 찍는 소리를 쉽게 끌 수 있습니다(이름은 직관적입니다).

글꼴 추가

글꼴은 글꼴에 저장됩니다. w3bsit3-dns.com 및 XDA에서 글꼴 파일이 포함된 아카이브를 찾을 수 있습니다. 설치하려면 아카이브의 ttf 파일을 글꼴 폴더로 복사하여 교체하세요.

시스템 설정 변경(build.prop)

시스템 이미지에는 장치 하드웨어에 대한 많은 유용한 정보와 다양한 스톡 애플리케이션의 기본 설정이 포함된 흥미로운 build.prop 파일이 포함되어 있습니다. 공평하게 말하면 이것이 항상 그런 것은 아니라는 점에 주목합니다. 예를 들어 Gigaset ME 및 ME Pro에서는 build.prop가 두 부분으로 나뉩니다. 한 부분에는 Gigaset ME에 대한 설정이 포함되어 있고 ME Pro의 경우 일부 줄이 중복되지만 키(스마트폰 이름 등)가 다릅니다. 이는 서로 다른 장치에서 동일한 펌웨어가 어느 정도 올바르게 작동하도록 보장하기 위해 수행되었습니다.


Build.prop에는 수많은 설정이 포함되어 있거나 포함될 수 있습니다. 그 중 일부는 아무것도 변경하지 않고 일부는 다른 것을 희생하여 한 가지를 개선하지만 정말 유용한 것들이 있습니다.

  • ro.제품.모델그리고 ro.제품.제조업체- 스마트폰 모델 및 제조사 이름. 이 라인을 교체하면 Play 스토어에서 사용자가 다른 스마트폰을 가지고 있다고 인식하게 하여 더 많은 소프트웨어에 액세스할 수 있습니다. 거의 알려지지 않은 모든 사람들을 위해 중국 스마트폰이 선은 생명을 구할 수 있습니다.
  • hw.qemu.mainkeys- 두 가지 값만 사용합니다. 0 - 화면 탐색 키 표시, 1 - 버튼 표시 안 함. 줄이 없으면 0에 해당합니다.
  • debug.sf.nobootanimation- 값 1은 로딩 애니메이션을 비활성화하여 속도를 약간 높입니다. 0으로 설정하거나 줄을 삭제하면 애니메이션이 원래 위치로 돌아갑니다.
  • ro.telephony.default_network- 어떤 모드로 전환해야 하는지 시스템에 알려줍니다. 모바일 네트워크로딩 중;
  • ro.sf.lcd_density- 디스플레이 DPI는 디스플레이에 대한 가장 정확한 값을 편리한 웹사이트를 통해 계산할 수 있습니다. 그러나 어느 누구도 원하는 대로 더 높거나 낮은 값을 설정하는 것을 금지하지 않습니다. 값이 높을수록 인터페이스 요소가 커지고, 값이 낮을수록 인터페이스 요소가 작아집니다.
  • ro.config.vc_call_vol_steps- 통화 중 볼륨 단계 수(기본값 8)
  • ro.config.media_vol_steps- 미디어 볼륨 단계 수(기본값 15).

펌웨어에 Google Apps를 구현합니다.

거의 항상 맞춤형 펌웨어는 구글 서비스그리고 애플리케이션 스토어. 개발자는 GApps 패키지를 사용하여 별도로 설치할 것을 제안합니다. 그러나 펌웨어에 직접 통합될 수 있습니다.

먼저 GApps 패키지를 다운로드해야 합니다. Open GApps 아카이브를 가져가는 것이 좋습니다. 당신이 선택 안드로이드 버전, 프로세서 아키텍처 및 구성 옵션(Pico, Nano, Stock...)에 따라 얼마나 다양한지 결정됩니다. 구글 애플리케이션아카이브가 포함되어 있습니다. Pico 버전을 다운로드하는 것이 좋습니다. 여기에는 Play 스토어와 해당 작업에 필요한 라이브러리 세트만 포함되어 있습니다.

GApp을 펌웨어에 통합하는 작업은 다음과 같이 수행됩니다.

  1. 아카이버를 사용하여 GApps ZIP 아카이브의 압축을 풉니다.
  2. 코어 폴더로 이동합니다.
  3. 확장자가 .tar.lz인 아카이브가 많이 있습니다. lzip을 사용하여 추출합니다.
  4. 압축을 푼 후 폴더의 파일을 시스템의 해당 폴더에 복사합니다. 아카이브의 디렉터리 구조에서 무엇을 어디에 던져야 할지 추측하기 쉽습니다. 예를 들어 스크린샷의 configupdater는 priv-app 폴더에 배치되어야 합니다.
  5. GApps 폴더(Core 옆에 있음)로 이동하여 그 안에 있는 파일에 대해 3단계와 4단계를 수행합니다.
  6. 그게 다입니다. GApp을 펌웨어에 통합했습니다!

자유로운 장소

펌웨어 설치 공간이 제한되어 있다는 점을 이해해야 합니다. 장치의 시스템 파티션 크기를 초과하는 펌웨어는 설치할 수 없습니다. 다음을 사용하여 해당 값을 볼 수 있습니다.

$ adb 쉘 df /시스템

두 번째 옵션: 장치에 터미널을 놓고 명령을 입력합니다.

$df/시스템

스마트폰에 BusyBox를 설치하고 터미널에서 명령을 실행하면 파티션 크기를 바이트 단위로 확인할 수 있습니다.

$ busybox df -B 1 /시스템

아니면 같은 ADB를 사용하여:

$ adb 쉘 busybox df -B 1 /system

펌웨어가 차지하는 공간은 포장을 풀었을 때의 시스템 크기와 거의 같습니다. 일반적으로 펌웨어를 생성할 때 사용자가 그 위에 다양한 수정 사항(SuperSU, Xposed)을 플래시하거나 애플리케이션을 시스템 섹션으로 전송할 수도 있다는 점을 고려해야 합니다. 예를 들어 Google의 최소 애플리케이션 패키지(Pico)에는 최소 150MB의 추가 설치 공간이 필요합니다.

필요한 경우 펌웨어 파일의 크기를 줄일 수 있을 뿐만 아니라 불필요한 프로그램/system/app (/system/priv-app)에서, system/media/audio 및 bootanimation.zip에서 사운드를 호출할 뿐만 아니라 다음도 수행합니다.

  • /시스템/tts/lang_pico- 기본 음성 엔진 Pico TTS, Google 음성 엔진의 언어는 영향을 받지 않습니다.
  • /시스템/usr/srec/config/- 오프라인 언어. 필요한 경우 나중에 온라인으로 다운로드할 수 있습니다.

집회

변경한 후에는 모든 것을 다시 정리해야 합니다. 먼저 system 섹션을 system.new.dat 에 압축해 보겠습니다. 필요한 도구를 다운로드하세요:

$ wget https://github.com/xpirt/img2sdat/raw/master/img2sdat.py $ wget https://github.com/xpirt/img2sdat/raw/master/blockimgdiff.py $ wget https://github. com/xpirt/img2sdat/raw/master/common.py $ wget https://github.com/xpirt/img2sdat/raw/master/rangelib.py $ wget https://github.com/xpirt/img2sdat/raw/ master/sparse_img.py $ sudo apt-get 설치 android-tools-fsutils

폴더를 다시 RAW 이미지로 변환해 보겠습니다. system_new.img라고 부르자:

$ sudo make_ext4fs -T 0 -S file_contexts -l 1073741824 -a 시스템 system_new.img 출력/

1073741824는 시스템 파티션의 크기(바이트)로 변경됩니다. 조금 더 작게 만드는 것이 좋습니다. RAW 이미지에서 희소 이미지를 만듭니다.

$ img2simg system_new.img system_snew.img

이미지를 펌웨어와 함께 아카이브에 저장해야 하는 system.transfer.list 및 system.new.dat로 변환하겠습니다. 하지만 먼저 이전 파일을 삭제하겠습니다.

$ rm -rf system.transfer.list $ rm -rf system.new.dat $ rm -rf system.patch.dat $ chmod +x img2sdat.py $ ./img2sdat.py system_snew.img

펌웨어 파일을 여분의 허스크(업무용으로 다운로드한 파일)에서 분리해 보겠습니다. 이를 위해서는 펌웨어와 함께 아카이브를 사용하는 것이 편리합니다. 삭제되었나요? 이제 펌웨어를 ZIP 아카이브(아카이버 포함)에 압축해야 합니다.

남은 것은 아카이브에 서명하는 것뿐입니다. 이 작업은 Android 자체에서 ZipSigner를 사용하거나 PC(Java가 설치되어 있어야 함)에서 모두 수행할 수 있습니다.

$ wget https://github.com/appium/sign/raw/master/dist/sign.jar $ java -jar 파일.zip

수중 암석

system.new.dat를 빌드하는 동안 생성 메커니즘의 지속적인 변경으로 인해 여러 가지 문제가 발생할 수 있습니다. 안드로이드 펌웨어. 위에서 설명한 방법은 Android 5.1 기반 펌웨어의 경우 잘 작동하지만 최신 버전의 경우에는 어려움이 있을 수 있으므로 다른 버전의 빌드 도구를 사용해야 합니다. 안타깝게도 어셈블리의 모든 뉘앙스를 설명할 수 없으므로 Google에서 검색해야 할 수도 있습니다.

설치

맞춤형 펌웨어를 설치하려면 맞춤형 펌웨어가 필요합니다. 복구 TWRP, 이를 통해 서명되지 않거나 테스트 키 펌웨어로 서명된 펌웨어를 설치할 수 있습니다(이것이 바로 우리가 만든 것입니다). 잡지에서 우리는 설치 과정을 반복적으로 설명했으며, 귀하의 장치 전용 포럼 스레드에는 일반적으로 이를 수행하는 데 충분한 정보가 있습니다.

TWRP

결론

이 기사에서는 "펌웨어 수정"이라는 거대한 빙산의 일각만을 설명합니다. "심각한" 펌웨어는 많은 기능(종종 다른 커널 및 펌웨어에서 가져옴)을 갖춘 기본 응용 프로그램으로 커널과 펌웨어 자체를 보완할 뿐만 아니라 상호 작용 원리를 구성하거나 심지어 변경하기도 합니다. OS. 사실, 이러한 해킹은 더 이상 Android가 아니라 Play 서비스를 설치할 수 있더라도 별도의 OS입니다(그런데 이러한 작업은 가볍게 말하면 Google에서 권장하지 않습니다). 글쎄요, 잊지 마세요. TouchWiz, ZenUI, HTC Sense 등 제조업체의 모든 쉘은 단지 일반적인 맞춤형 쉘일 뿐이며 장치의 하드웨어 및 서로 최대한 연결되어 있습니다.

보간, 보간- 계산 수학에서 알려진 값의 기존 개별 집합에서 수량의 중간 값을 찾는 방법입니다.

과학 및 공학 계산을 다루는 많은 사람들은 경험적으로 또는 무작위 샘플링을 통해 얻은 값 세트를 사용하여 작업해야 하는 경우가 많습니다. 일반적으로 이러한 세트를 기반으로 다른 얻은 값이 높은 정확도로 포함될 수 있는 함수를 구성해야 합니다. 이 작업은 근사. 보간은 구성된 함수의 곡선이 사용 가능한 데이터 포인트를 정확하게 통과하는 근사 유형입니다.

유한 차분 보간 방법에는 여러 가지가 있습니다. 최대
순방향 보간에 대한 뉴턴 방법(Newton-Gregory 방법)이 일반적입니다. 이 경우 보간 다항식의 형식은 다음과 같습니다.

다음 공식을 사용하여 계수 C를 찾습니다.

C#으로 프로그램 구현:
시스템 사용; 네임스페이스 보간( 클래스 프로그램…

프로그램은 두 개의 스레드로 나누어져 있는데, 그 중 하나는 정렬이 수행되고 다른 하나는 그래픽 인터페이스가 다시 그려집니다. "정렬" 버튼을 클릭하면 프로그램은 정렬 알고리즘이 정의되고 정렬 프로세스가 실행되는 새 스레드가 생성되는 "RunSorting" 메서드를 호출합니다.
프라이빗 보이드 RunSo…

오늘은 지난 겨울방학에 만들었던 카쉐르를 보여드리고자 합니다. 인터넷에 기사가 많기 때문에 전체 제조 과정에 대해서는 설명하지 않겠습니다. 주요 매개변수에 대해서만 쓰겠습니다.

아래는 장치를 조립하는 동안 찍은 몇 장의 사진입니다.

코일은 직경 50mm, 높이 200mm의 PVC 파이프에 0.08mm 와이어를 약 2000바퀴 감았습니다.

오래된 하드 드라이브의 플레이트가 터미널로 사용되었습니다. 그 밖의 모든 것은 페이지 맨 아래에 있는 다이어그램에 따라 구성되었습니다.

첫 번째 옵션은 12V 전압의 기존 컴퓨터 전원 공급 장치에서 전원을 공급 받았습니다. 그런 다음 30V 전압과 내장형 냉각 기능을 갖춘 별도의 전원 공급 장치가 만들어졌습니다.

장치 다이어그램:

CORS(교차 도메인 리소스 공유)는 브라우저에서 도메인 간 통신을 허용하는 W3C 사양입니다. XMLHttpRequest 개체 위에 구축함으로써 CORS를 사용하면 개발자는 동일한 도메인의 요청과 동일한 관용구로 작업할 수 있습니다. CORS의 사용 사례는 간단합니다. alice.com에 bob.com이 얻고자 하는 일부 데이터가 있다고 가정해 보십시오. 이러한 유형의 요청은 전통적으로 동일한 브라우저 원본 정책에서는 허용되지 않습니다. 그러나 CORS 요청을 지원함으로써 alice.com은 bob.com이 데이터에 액세스할 수 있도록 허용하는 몇 가지 특수 응답 헤더를 추가할 수 있습니다. 이 예에서 볼 수 있듯이 CORS를 지원하려면 서버와 클라이언트 간의 조정이 필요합니다. 운 좋게도 클라이언트 측 개발자라면 이러한 세부 정보 대부분으로부터 보호받을 수 있습니다. 이 문서의 나머지 부분에서는 클라이언트가 원본 간 요청을 수행하는 방법과 서버가 CORS를 지원하도록 구성하는 방법을 보여줍니다. 계속되는…




맨 위