2017-11-21 28 views
2

사용 사례 : 나는 라스베리 파이를위한 IoT 리눅스 시스템을 개발 중이다. 읽기 전용 rootfs는 실행 파일을 즉시 업그레이드하기 때문에 옵션이 아닙니다. 필자는 ELF-Files (Linux 실행 파일 및 라이브러리)에 서명 할 수있는 도구를 개발했습니다. 일부 pub/priv 키가있는 섹션에 서명하고 서명을 섹션에 저장 한 다음 실행하기 전에 파일을 확인합니다 (예 : DigSig와 비슷하지만 openssl-lib 사용). 라이브러리 로더 (glibc)는 또한로드하기 전에 모든 리눅스 ".so"라이브러리를 검사하도록 수정됩니다. 마지막에 오픈 소스 라이선스에 따라 프로젝트와 솔루션을 게시하고 싶습니다. 현재는 안정성과는 거리가 멀다.Yocto/Bitbake : 시스템에서 모든 바이너리 빌드를 수행하는 방법은 무엇입니까?

Develoment 상태 :

  • ELF-파일 서명 도구가 완료됩니다.
  • 커널이 수정되었습니다 (새 보안 모듈/elf-binary 서명을 확인하기위한 자체 syscall 함수).
  • 내 로컬 소스에 대해 Glibc가 수정되고 패치되었습니다.
  • 내 새로운 시스템 호출을 지원하기 위해 Quemu가 패치되었습니다.
  • Yocto 환경이 설정되었습니다. 그리고 이미지는 내 RaspberryPi 2 테스트 머신에서 실행됩니다.

지금까지 그렇게 좋았습니다. 나는 나의 해결책에 아주 가깝다고 느낀다.

는 지금은 필요에 : ALL ELF-파일은 빌드 프로세스 이후에 체결되는 것을 가능하게 bitbake/경우 yocto을 확인합니다. rpm 파일에 이미 서명 된 ELF 파일이 포함되어있는 것이 가장 좋습니다. 서명 절차는 다른 모든 패키지에 대한 하나의 방법으로 수행됩니다. (따라서 루트 폴더의 파일 만 수정하는 설치 설치 스크립트를 만들고 싶지 않습니다.

Google에서 시간을 검색하고 yocto의 문서를 확인한 후 해결책이 없습니다. 누군가가 나를 도울 수 있다면 아주 좋을 것입니다.

답변

0

난 당신이 비좁은/메타/클래스에 package.bbclass을 사용자 정의 할 수 있습니다 생각, 특히, 함수가 모든 파일

oe.utils.multiprocess_exec(sfiles, oe.package.runstrip)을 제거하는 데 도움이 split_and_strip_files

당신은 비좁은에서 사용자 정의 도구를 추가 한 후 서명을 추가 할 수 있습니다

/meta/lib/oe/package.py