gradle+셸 자동 시스템 서명 실현
때때로 우리 의 응용 은 일부 기능(예 를 들 어 침묵 설치)을 실현 하기 위해 시스템 급 권한 이 필요 합 니 다.이 럴 때 응용 프로그램 에 시스템 서명 을 해 야 합 니 다.일반적인 조작 패키지 apk,압축 풀기 apk,META-INF 에서 CERT.RSA 와
CERT.SF,그리고 압축 해서 시스템 서명 도구 로 서명 합 니 다.한 끼 작업 후 10 분 이 지 났 을 수도 있 습 니 다.너무 번 거 로 웠 습 니 다.그래서 우 리 는 간단 한 작업 을 했 습 니 다.gradle+shell 로 자동 화 를 실현 해 주 었 습 니 다.
준비 하 다.
1.android studio
2.시스템 서명 파일(signapk.jar,platform.x509.pem,platform.pk8)
3.mac 시스템 이 라면 libconscrypt 가 필요 합 니 다.openjdk_jni.dylib 이 파일
4.platform.x509.pem 과 platform.pk8 은 대응 하 는 시스템 의 서명 으로 공장 마다 다 를 수 있 습 니 다.
서명 파일 입 니 다.저 는 구 글 원생 의 서명 파일 입 니 다.
5.바 이 두 네트워크 에 있 는 파일
링크:https://pan.baidu.com/s/1_wGxfZcpmfmvCGPLSU-XWw추출 코드:d46k
6.본 고 는 mac 시스템 을 예 로 들 면 윈도 우즈 가 이 사고방식 에 따라 차이 가 많 지 않다
시스템 서명 스 크 립 트 작성
#
unzip -q app-release.apk -d ./release
# cert
rm -f ./release/META-INF/CERT.RSA
rm -f ./release/META-INF/CERT.SF
#
cd ./release
for file in $(ls)
do
zip -r -q app-release-tmp.apk -xi $file;
done
mv app-release-tmp.apk ../
cd ..
#
java -jar signapk.jar platform.x509.pem platform.pk8 app-release-tmp.apk app-sign.apk
#
rm -f app-release-tmp.apk
rm -rf ./release
sign.sh 로 저장 하고 signapk.jar,platform.x509.pem,platform.pk8,libconscryptopenjdk_jni.dylib 는 같은 디 렉 터 리 에 놓 여 있 습 니 다.저 는 프로젝트 에 놓 여 있 습 니 다.app/release/sign/디 렉 터 리 아래
패키지 및 호출 시스템 서명 스 크 립 트 작성
#
#home shell
#debugDir assembleDebug
#releaseDir assembleRelease
#signDir
home=/Volumes/Samsung_T5/android/Demo/
debugDir=$home/app/build/outputs/apk/debug/
releaseDir=$home/app/build/outputs/apk/release/
signDir=$home/app/release/sign/
#
cd $home
# $home/out
if [ ! -d out ];then
echo "create directory out..."
mkdir out
echo "create directory out success"
fi
# release
echo "assembleRelease..."
./gradlew assembleRelease
echo "assembleRelease success"
# release
mv -f $releaseDir/app-release.apk $signDir/app-release.apk
echo "system sign apk..."
# ,
cd $signDir
./sign.sh
# $home/out ,
cd $home
mv $quanyuyueSignDir/app-sign.apk ./out/app-sign-`date +%Y%m%d%H%M`.apk
echo "sign success"
위의 코드 를 package.sh 로 저장 하고 프로젝트 디 렉 터 리 에 놓 습 니 다.저 는$home 디 렉 터 리 에 있 습 니 다.ps:release 패 키 지 를 만 들 려 면 app/build.gradle 을 설정 해 야 합 니 다.
android {
...
//
signingConfigs {
release {
storeFile file(" ")
storePassword " "
keyAlias " keyAlias"
keyPassword " keyPassword"
}
}
buildTypes {
release {
signingConfigs.release
...
}
}
task 호출 package.sh 스 크 립 트 작성app/build.gradle 에 입력
task getPackage(type: Exec) {
executable "sh"
args "-c", "../packge.sh"
}
이렇게 하면 우 리 는 이 task 를 실행 하면 시스템 서명 의 apk 를 얻 을 수 있 습 니 다.총결산
위 에서 말 한 것 은 소 편 이 소개 한 gradle+shell 이 자동 시스템 서명 을 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Groupie의 ViewHolder를 사용해 보았습니다.Groupie는 Android의 recycler-view를 쉽게 사용할 수있는 라이브러리이지만 groupie-databinding은 deprecated되었습니다. 이번에는 권장되는 (Poi) groupie-viewb...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.