## Please edit system and help pages ONLY in the master wiki!
## For more information, please see MoinMoin:MoinDev/Translation.
## IMPORTANT NOTE:
## When you use this page as a template for creating your project page:
## * please remove all lines starting with two hashes (##)
## * except the acl line, please keep that, but remove one hash, so it reads #acl ...
## * fix the acl line so it has the correct page instead of the sample Project/...Group
##acl Project/AdminGroup:admin,read,write,delete,revert Project/ReadWriteGroup:read,write Project/ReadGroup:read
##master-page:Unknown-Page
##master-date:Unknown-Date
#format wiki
#language de
## 06.03.2016 AK
----
[[CAcertFürAndroid-Import/CZ|česky]] | [[CAcertFürAndroid-Import/CY|cymraeg]] | '''deutsch''' | [[CAcertFürAndroid-Import/EN|english]] | [[CAcertFürAndroid-Import/ES|español]] | [[CAcertFürAndroid-Import/FR|français]] | [[CAcertFürAndroid-Import/NL|nederlands]] | [[HowTocuments/CAcertFürAndroid-Import/PT|português]] --- [[HowToDocuments/Android|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.
{{{#!python numbers=off
@ECHO OFF
CLS
REM ##########################################################################################################################################
REM ### (c) 2013 Andreas Terpotiz ###
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
}}}
[[attachment:CAcert_to_Android.bat]]
{{{#!wiki comment/dotted
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.
}}}
----
Zurück zu: [[Andreas Terpotiz]]
----
[[FAQ/ImportRootCert|siehe auch FAQ]]
----
. CategoryCommunity
. CategoryConfiguration
. CategoryGuide
. CategorySoftware