č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

CAcert_to_Android.bat


Zurück zu: Andreas Terpotiz


siehe auch FAQ


CAcertFürAndroid-Import (last edited 2016-03-06 15:52:22 by AlesKastner)