ld64로 링크하고 Mach-O kernelcache를 재구성합니다.
[링크 과정]
1. 모든 .o 파일 수집
2. 심볼 해결
3. 섹션 배치
4. 재배치 처리
[Mach-O 재구성]
• 헤더 재생성
• Load Commands 수정
• 섹션 데이터 배치
• __LINKEDIT 생성
[출력]
• output/linked/kernel.macho - 링크된 바이너리
• output/final/kernelcache - 최종 커널캐시
ForgeNet
🔍
← 파이프라인 개요
/ BlackForge / Step 9
9
Link
BlackForge Pipeline · Phase 3
✓ Active
📥 입력 (Input)
.o files
📤 출력 (Output)
kernelcache
📋 상세 설명 (Description)
📊 프로세스 흐름도 (Process Flow)
🔍 클릭하여 상세 다이어그램 보기
Drill Down →
flowchart LR
O[.o files] --> L[ld64]
L --> M[kernel.macho]
M --> R[rebuild_macho.py]
R --> K[kernelcache]
style O fill:#a371f7
style K fill:#238636
📁 소스 파일 (Source Files)
2개 파일
rebuild_macho.py
/Users/hacker/docs/700008_forgenet_center/050000_BlackForge_macmini_local/pipeline/steps/step09-리빌드/rebuild_macho.py
python
macmini
Step 9: Mach-O 리빌드
소스 코드 로딩 중...
rebuild_macho.py
pipeline/steps/step09-리빌드/rebuild_macho.py
python
Mac Mini
원본 kernelcache를 베이스로 __TEXT_EXEC 섹션을 재컴파일된 코드로 교체. NOP 패딩 처리.
소스 코드 로딩 중...
⌨️ 실행 명령어 (Commands)
# 링크 및 리빌드 실행
cd pipeline/steps/step09-리빌드
./run.sh
# 또는 개별 실행
ld64 -arch arm64 -o kernel.macho output/obj/*.o
python3 rebuild_macho.py kernel.macho kernelcache