česky | cymraeg | deutsch | english | español | français | nederlands | português --- weitere Android-Anleitungen
Zurück zu: Andreas Terpotiz
CAcert für Android - Import
Beschreibung
Mit dieser Batch-Datei können die CAcert Root Zertifikate auf ein Android Handy importiert werden.
Benötigte Dateien werden automatisch heruntergeladen.
Passwörter werden im Bedarfsfall abgefragt.
Wenn die auch die eigenen Zertifikate auf das Android Handy kopiert werden sollen,
gehören diese in einem Unerverzeichniss names Own gespeichert. Dieses Unterverzeichniss
sollte im gleichen Verzeichniss liegen, wie die Batch-Datei.
Das Format der Datei(en) muß .pks bzw .p12 sein.
Getestet mit Windows 7 Home Professional x64
Download der Datei am Ende des Quelltextes.
@ECHO OFF
CLS
REM ##########################################################################################################################################
REM ### (c) 2013 Andreas Terpotiz <andreas.terpotiz@cacert.org> ###
REM ##########################################################################################################################################
REM ### Funktion: Aktualisieren der CA-Zertifkate auf einem Android Handy. ###
REM ### Voraussetzung: Internet Zugriff ###
REM ### wget: http://downloads.sourceforge.net/project/gnuwin32/wget/1.11.4-1/wget-1.11.4-1-bin.zip?r=&ts=1357593613&use_mirror=netcologne ###
REM ### Das Passwort für die Eigene Zertifikats-Datei und die vom Handy ###
REM ##########################################################################################################################################
REM ######################################################################################################################
SET /P WGET_PATH="Wo liegt die ausführbare WGET-Datei? "
IF NOT EXIST "%WGET_PATH%\wget.exe" CALL :ERROR_MSG "WGET kann nicht gefunden werden."
REM ######################################################################################################################
REM DOWNLOAD der benötigten Dateien
ECHO Lade benötigte Dateien herunter
"%WGET_PATH%\wget" -qc http://stahlforce.com/dev/unzip.exe
"%WGET_PATH%\wget" -qc http://dottech.org/downloads/adb_fastboot_and_other_tools.zip
unzip -qq adb_fastboot_and_other_tools.zip
MOVE adb_fastboot_and_other_tools adb 2>NUL 1>&2
SET PATH=%PATH%;%CD%\adb\android
IF EXIST "%ProgramFiles(x86)%\java\j*" GOTO SET_JAVA
IF EXIST "%ProgramFiles%\java\j*" GOTO SET_JAVA
CALL :ERROR_MSG "Keine Java installiert"
:SET_JAVA
SET OLD_DIR="%CD%"
CD "%ProgramFiles(x86)%\Java\j*"
SET JAVA_HOME="%CD%"
SET PATH=%PATH%;%JAVA_HOME%\bin
CD "%OLD_DIR%"
REM ######################################################################################################################
REM ANLEGEN der benötigten Dateien
REM Hier können die Passwörter hinzugefügt werden
REM welche auf den KeyStore fetestet werden
ECHO "" > cert_passwords_for_store.txt
ECHO changeme >> cert_passwords_for_store.txt
ECHO changeit >> cert_passwords_for_store.txt
REM Hier können die zu löschenden CAcert Alias hinzugefügt werden
ECHO CACERT3 > cert_alias_to_del.txt
ECHO CACERT >> cert_alias_to_del.txt
ECHO cacertclass3 >> cert_alias_to_del.txt
ECHO cacertclass1 >> cert_alias_to_del.txt
ECHO class3 >> cert_alias_to_del.txt
ECHO root >> cert_alias_to_del.txt
REM Hier können die zu löschenden Eigenen Alias hinzugefügt werden
REM mit welchen die Zertifikate angesprochen werden
ECHO sso >> cert_alias_to_del.txt
ECHO andreas@terpotiz.net >> cert_alias_to_del.txt
ECHO aterpotiz@terpotiz.net >> cert_alias_to_del.txt
ECHO a.terpotiz@terpotiz.net >> cert_alias_to_del.txt
ECHO terpotiz@buz.at >> cert_alias_to_del.txt
ECHO andreas.terpotiz@live.at >> cert_alias_to_del.txt
ECHO CAcert Inc. ID von Andreas Terpotiz >> cert_alias_to_del.txt
ECHO CAcert Inc. ID von Andreas Terpotiz #5 >> cert_alias_to_del.txt
ECHO CAcert Inc. ID von Andreas Terpotiz #4 >> cert_alias_to_del.txt
ECHO CAcert Inc. ID von Andreas Terpotiz #2 >> cert_alias_to_del.txt
REM Hier sind die Befehle für die Zertifikat Rückspielung
REM auf das Android Handy
ECHO su -c "mount -o rw,remount -t rfs /dev/block/stl9 /system" > android.txt
ECHO sleep 5 >> android.txt
ECHO su -c "cat /mnt/sdcard/cacerts.bks > /system/etc/security/cacerts.bks" >> android.txt
ECHO sleep 5 >> android.txt
ECHO su -c "mount -o ro,remount -t rfs /dev/block/stl9 /system" >> android.txt
ECHO sleep 5 >> android.txt
ECHO "reboot" >> android.txt
REM ######################################################################################################################
REM Prüfe Handy
ECHO Bitte scliessen Sie das Android Handy an.
adb wait-for-device shell exit
ECHO Hole Zertifikatsliste vom Handy
adb pull /system/etc/security/cacerts.bks cacerts.bks 2>NUL 1>&2
ECHO Prüfe Passwort für Zertifikats Datei
CALL :CHECK_DL http://bouncycastle.org/download/bcprov-jdk16-141.jar "J/n" J
FOR /F %%a IN (cert_passwords_for_store.txt) DO (
SET PASSWORD=%%a
keytool -keystore cacerts.bks -storetype BKS -providerpath bcprov-jdk16-141.jar -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass %PASSWORD% -v -list 2>NUL 1>&2
IF ERRORLEVEL 0 GOTO WEITER
)
REM Händische Eingabe
SET /P PASSWORD="Bitte das Passwort eingeben: " || set PASSWORD=""
keytool -keystore cacerts.bks -storetype BKS -providerpath bcprov-jdk16-141.jar -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass %PASSWORD% -v -list 2>NUL 1>&2
IF %ERRORLEVEL% EQU 0 GOTO WEITER
CALL :ERROR_MSG "Passwort ist nicht gültig"
:WEITER
IF %PASSWORD%=="" (ECHO Leeres Passwort für die Zertifikatesdatei) ELSE ECHO Passwort: %PASSWORD%
REM ######################################################################################################################
REM ################################################
REM ### Zertifikate über den ALIAS Namen löschen ###
REM ################################################
:DEL_CERT
SET /P DEL_CERT="Alte Zertifikate löschen?(J/n): " || SET DEL_CERT=j
IF /I "%DEL_CERT%" EQU "j" ( GOTO DEL_CERT_YES) ELSE ( GOTO DEL_CERT_NO )
GOTO DEL_CERT
:DEL_CERT_YES
ECHO Lösche eventuell vorhandene alte Zertifikate
FOR /F %%a IN (cert_alias_to_del.txt) DO @keytool -keystore cacerts.bks -storetype BKS -providerpath bcprov-jdk16-141.jar -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass %PASSWORD% -alias %%a -delete 2>NUL 1>&2
:DEL_CERT_NO
REM ######################################################################################################################
REM ######################################
REM ### CAcert Zertifikate importieren ###
REM ######################################
:CACERT_IMP
SET /P CACERT_IMP="CAcert Zertifikate importieren?(J/n): " || SET CACERT_IMP=j
IF /I "%CACERT_IMP%" EQU "j" ( GOTO CACERT_IMP_YES) ELSE ( GOTO CACERT_IMP_NO )
GOTO CACERT_IMP
:CACERT_IMP_YES
ECHO Importiere CAcert Zertifikate
"%WGET_PATH%\wget" -qc http://www.cacert.org/certs/root.crt
"%WGET_PATH%\wget" -qc http://www.cacert.org/certs/class3.crt
FOR /F "tokens=*" %%a in ('dir /b /a-d *.crt') DO @keytool -keystore cacerts.bks -storetype BKS -providerpath bcprov-jdk16-141.jar -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass %PASSWORD% -importcert -trustcacerts -alias "%%~na" -file %%a -v -noprompt
:CACERT_IMP_NO
REM ######################################
REM ### Eigene Zertifikate importieren ###
REM ######################################
:CACERT_IMP
SET /P CACERT_IMP="Eigene Zertifikate importieren?(j/N): " || SET CACERT_IMP=n
IF /I "%CACERT_IMP%" EQU "j" ( GOTO CACERT_IMP_YES) ELSE ( GOTO CACERT_IMP_NO )
GOTO CACERT_IMP
:CACERT_IMP_YES
ECHO Importiere Eigene Zertifikate
REM Setzen des Eigenen Zertifikates Passworts
set /P CERTPASS="Bitte das Passwort für die Zertifikate eingeben: " || set /P CERTPASS=undef
FOR /F "tokens=*" %%a in ('dir /b /a-d Own\*.p12') DO @keytool -importkeystore -srckeystore Own\%%a -srcstoretype pkcs12 -srcstorepass %CERTPASS% -providerpath bcprov-jdk16-141.jar -provider org.bouncycastle.jce.provider.BouncyCastleProvider -destkeystore cacerts.bks -deststoretype BKS -deststorepass %PASSWORD% -noprompt
:CACERT_IMP_NO
REM ######################################################################################################################
ECHO Schreibe Zertifikatsliste auf Handy SD-Card
adb push cacerts.bks /mnt/sdcard/ 2>NUL 1>&2
ECHO Arbeiten am Handy werden durchgeführt
adb shell < android.txt
GOTO ENDE
REM ######################################################################################################################
REM ######################
REM ### UNTERPROGRAMME ###
REM ######################
:CHECK_DL
SETLOCAL
:START
SET /P CHKDL="Download von %1 %2" || SET CHKDL=%3
IF /I "%CHKDL%" EQU "j" ( GOTO CHKDL_DL) ELSE ( GOTO CHKDL_END )
GOTO START
:CHKDL_DL
ECHO Hole "%1"
"%WGET_PATH%\wget" -qc "%1"
IF ERRORLEVEL 1 CALL :ERROR_MSG "%1 konnte nicht geladen werden"
:CHKDL_END
ENDLOCAL
GOTO:EOF
:ERROR_MSG
CLS
ECHO "%~1"
ECHO VORGANG wird abgebrochen.
EXIT
REM ######################################################################################################################
:ENDE
DEL /F /S /Q adb 2>NUL 1>&2 & RD /S /Q adb 2>NUL 1>&2
DEL adb_fastboot_and_other_tools.zip 2>NUL 1>&2
DEL unzip.exe 2>NUL 1>&2
DEL cert_passwords_for_store.txt 2>NUL 1>&2
DEL cert_alias_to_del.txt 2>NUL 1>&2
DEL android.txt 2>NUL 1>&2
DEL cacerts.bks 2>NUL 1>&2
DEL class3.crt 2>NUL 1>&2
DEL root.crt 2>NUL 1>&2
DEL bcprov-jdk16-141.jar 2>NUL 1>&2
Zurück zu: Andreas Terpotiz
Quelltext kopieren und mit Wordpad als "Textdokument - MS-DOS-Format" speichern. Dann stimmen auch die Umlaute beim Ausführen.
Die Datei zum Download ist schon im richtigen Format.