แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜

แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ“แƒ แƒแƒ แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒแƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒแƒ แƒ˜แƒก แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒงแƒ แƒ“แƒœแƒแƒ‘แƒ˜แƒ— cryptoarmpkcs แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ— แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ  แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒแƒ–แƒ”, แƒ™แƒ”แƒ แƒซแƒแƒ“ Android-แƒ–แƒ”.

แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฉแƒแƒ›แƒแƒงแƒแƒšแƒ˜แƒ‘แƒ“แƒ cryptoarmpkcs แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ›แƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒ˜แƒชแƒแƒ“แƒแƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒฃแƒฎแƒ”แƒ แƒฎแƒฃแƒšแƒแƒ‘แƒ แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ—แƒแƒ•แƒแƒ–แƒแƒ‘แƒ— แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒžแƒ”แƒ แƒกแƒแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ˜แƒก แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒขแƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก PKCS#11 แƒ“แƒ/แƒแƒœ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜ PKCS#12. แƒฃแƒœแƒ“แƒ แƒ˜แƒ—แƒฅแƒ•แƒแƒก, แƒ แƒแƒ› PKCS#12-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฎแƒจแƒ˜แƒ  แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ˜แƒ’แƒ˜แƒ•แƒ” PKCS#11 แƒขแƒแƒ™แƒ”แƒœแƒ”แƒ‘แƒก แƒแƒ  แƒ’แƒแƒแƒฉแƒœแƒ˜แƒแƒ— แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒ“แƒแƒ’แƒ•แƒ”แƒฌแƒงแƒ cryptoarmpkcs แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒแƒ–แƒ” PKCS#12 แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒ—.

แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒแƒ—, แƒ แƒแƒ› แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ C แƒ“แƒ Tcl/Tk แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒแƒ–แƒ”, แƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒแƒ› แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒ แƒ แƒแƒ˜แƒ›แƒ” แƒคแƒฃแƒœแƒ“แƒแƒ›แƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”. แƒ”แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ’แƒแƒฎแƒ“แƒ แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒฌแƒงแƒแƒšแƒแƒ‘แƒ˜แƒ— แƒแƒœแƒ“แƒ แƒแƒ˜แƒจ. แƒ’แƒแƒจแƒšแƒ˜แƒ— แƒ“แƒ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ แƒแƒœแƒแƒ˜แƒ แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒแƒ  แƒงแƒแƒคแƒ˜แƒšแƒ (แƒฉแƒ”แƒ›แƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ’แƒแƒ แƒ”แƒ›แƒ แƒแƒ แƒ˜แƒก Linux - Mageia-7.0). แƒ›แƒ” แƒ›แƒ˜แƒ•แƒชแƒ”แƒ› แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก Android Command Line Tools-แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒšแƒแƒ“ (sdk-tools-linux-xxxx.zip):

#!/bin/sh
if [ $# -ne 1   ]
    then 
	echo "./InstallAndroidSDK.sh <sdk-tools-linux-xxxxxxxx.zip>"
	echo "ะะต ัƒะบะฐะทะฐะฝ ะฐั€ั…ะธะฒ ะธะปะธ ั‡ะธัะปะพ ะฟะฐั€ะฐะผะตั‚ั€ะพะฒ ะฑะพะปัŒัˆะต 1"
	exit 1
fi
if [ ! -f $1 ]
    then 
	echo "./InstallAndroidSDK.sh <sdk-tools-linux-xxxxxxxx.zip>"
	echo "ะฐั€ั…ะธะฒ $1 ะพั‚ััƒั‚ัั‚ะฒัƒะตั‚"
	exit 1
fi
#ะ ะฐัะฟะฐะบะพะฒั‹ะฒะฐะตะผ SDK-TOOLS ะฒ ะฟะฐะฟะบัƒ tools
#unzip sdk-tools-linux-4333796.zip
unzip $1
#ะกะพะทะดะฐะตะผ ะฟะฐะฟะบัƒ android-sdk-linux
mkdir android-sdk-linux
#ะŸะตั€ะตะผะตั‰ะฒะตะผ ะฟะฐะฟะบัƒ tools ะฒ android-sdk-linux
mv tools android-sdk-linux
cd android-sdk-linux/tools/bin
./sdkmanager "platform-tools" "platforms;android-29"  

แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒกแƒแƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒแƒœแƒ“แƒ แƒแƒ˜แƒจแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒแƒ  แƒ˜แƒœแƒขแƒ”แƒ แƒžแƒ แƒ”แƒขแƒแƒขแƒแƒ แƒก, undrowish-xxx แƒ“แƒ vanillawish-xxx, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒšแƒแƒ‘แƒ˜แƒ— แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒ˜แƒ“แƒ”แƒœแƒขแƒฃแƒ แƒ˜แƒ แƒ—แƒแƒ•แƒแƒ“ แƒแƒœแƒ“แƒ แƒแƒ˜แƒจแƒจแƒ˜ แƒจแƒ”แƒขแƒแƒœแƒ˜แƒšแƒ˜ โ€žแƒ‘แƒแƒšแƒแƒšแƒแƒ˜แƒ™แƒ”แƒ‘แƒ˜แƒกโ€œ (แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก). แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ undrowish-แƒกแƒ แƒ“แƒ vanillawish-แƒก แƒจแƒแƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒ› vanillawish-แƒก แƒแƒฅแƒ•แƒก SDL/AGG/freetype แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ” backend:

แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜

แƒแƒ› แƒแƒ แƒ˜ แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒœแƒแƒ•แƒ˜แƒ—แƒแƒ แƒแƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ—แƒแƒ•แƒแƒ“ Android-แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒกแƒ—แƒแƒœ แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ—. แƒฃแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ”แƒก แƒงแƒแƒ•แƒšแƒ˜แƒกแƒ, แƒ”แƒก แƒแƒ แƒ˜แƒก, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, undroidwish-xxx.

Android-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ”แƒ แƒกแƒแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒแƒ™แƒ”แƒขแƒ˜ แƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ AWSDK แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜. แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒฎแƒ” แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒก ~/AWSDK/assets/app แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜. แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒ›แƒแƒ“แƒฃแƒšแƒก แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ”แƒ แƒฅแƒ•แƒแƒก main.tcl. แƒ—แƒฃ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ‘แƒแƒšแƒแƒšแƒแƒ˜แƒ™แƒ”แƒ‘แƒก แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒจแƒ˜แƒœ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ“แƒ”แƒก แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒ”แƒ‘แƒจแƒ˜ ~/AWSDK/libs/x86 แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ ~/AWSDK/libs/armeabi แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ:

$wish ~/AWSDK/tools/bones

แƒ“แƒ แƒ›แƒ˜แƒฐแƒงแƒ”แƒ•แƒ˜แƒ— แƒ›แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ”แƒ‘แƒก:

แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜

แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒ˜ apk แƒžแƒแƒ™แƒ”แƒขแƒ˜ แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ“แƒ”แƒ‘แƒ ~/AWSDK/build/outputs/apk แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜.

แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ— แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ แƒแƒœ แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ˜, แƒžแƒแƒ™แƒ”แƒขแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ“แƒ”แƒก แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ•.
แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒฃแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ— แƒ—แƒแƒ•แƒแƒ“ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก. แƒ แƒ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒšแƒ˜แƒงแƒ แƒ›แƒแƒกแƒจแƒ˜?

แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜แƒ, แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜ แƒ”แƒ™แƒ แƒแƒœแƒ˜แƒก แƒ–แƒแƒ›แƒแƒก แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ. แƒ›แƒ” แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ (แƒกแƒขแƒแƒ แƒขแƒ˜แƒก แƒคแƒแƒœแƒฏแƒ แƒ˜แƒก) แƒฎแƒ”แƒšแƒแƒฎแƒแƒšแƒ˜ แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜. แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒคแƒแƒœแƒฏแƒ แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“:

แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜

แƒแƒœแƒ“แƒ แƒแƒ˜แƒ“แƒ–แƒ” แƒกแƒแƒ›แƒ˜ แƒคแƒแƒœแƒฏแƒแƒ แƒ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ:

แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒคแƒแƒœแƒฏแƒแƒ แƒ แƒแƒ แƒ˜แƒก แƒกแƒแƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ. แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒ—แƒแƒ“, แƒ˜แƒ’แƒ˜ แƒ˜แƒงแƒแƒคแƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒœแƒแƒฌแƒ˜แƒšแƒแƒ“. แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก แƒ–แƒ”แƒ“แƒ แƒœแƒแƒฌแƒ˜แƒšแƒจแƒ˜, แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก แƒ“แƒ แƒ›แƒ˜แƒก แƒšแƒแƒ’แƒแƒก.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒแƒ“แƒ˜แƒก แƒ›แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒšแƒ˜แƒก แƒšแƒแƒ’แƒ, แƒกแƒแƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒคแƒฃแƒ แƒชแƒ”แƒšแƒ˜ แƒ“แƒ แƒกแƒแƒ›แƒ˜ แƒฆแƒ˜แƒšแƒแƒ™แƒ˜ แƒแƒ•แƒกแƒ”แƒ‘แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒก.
แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ แƒขแƒ˜แƒšแƒแƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ” แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒแƒ แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒฆแƒ˜แƒšแƒแƒ™แƒ˜: แƒ”แƒ แƒ—แƒ˜ แƒ’แƒแƒ›แƒญแƒ•แƒ˜แƒ แƒ•แƒแƒšแƒ” แƒ›แƒแƒ แƒ—แƒ™แƒฃแƒ—แƒฎแƒ”แƒ“แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— (แƒจแƒฃแƒ), แƒฎแƒแƒšแƒ แƒ“แƒแƒœแƒแƒ แƒฉแƒ”แƒœแƒ˜ แƒแƒ แƒ˜ แƒ›แƒแƒ แƒ—แƒ™แƒฃแƒ—แƒฎแƒ”แƒ“แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒ›แƒแƒ›แƒ แƒ’แƒ•แƒแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒฃแƒ—แƒฎแƒ”แƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒแƒ›แƒ แƒ’แƒ•แƒแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒฃแƒ—แƒฎแƒ”แƒ”แƒ‘แƒ˜แƒ— แƒฆแƒ˜แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ“แƒ แƒ‘แƒแƒšแƒแƒšแƒแƒ˜แƒ™แƒ tkpath. แƒžแƒ˜แƒ แƒแƒ“แƒแƒ“ แƒฉแƒ”แƒ›แƒ–แƒ” แƒแƒ› แƒ‘แƒแƒšแƒแƒšแƒแƒ˜แƒ™แƒแƒ› แƒซแƒแƒšแƒ˜แƒแƒœ แƒ™แƒแƒ แƒ’แƒ˜ แƒจแƒ—แƒแƒ‘แƒ”แƒญแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ แƒ›แƒแƒแƒฎแƒ“แƒ˜แƒœแƒ. แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜แƒ, แƒขแƒ˜แƒšแƒแƒ–แƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒแƒก แƒ’แƒ”แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒ แƒ˜แƒ™แƒแƒ•แƒ”แƒ‘แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒšแƒแƒ›แƒ˜แƒก แƒฌแƒ˜แƒšแƒก. แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ create_titul_page.tcl แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“. แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒฎแƒ”แƒ“แƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“.

แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ create_titul_page.tcl

package require Tk
package require tkpath 0.3.0
global mydir
set mydir [file dirname [info script]]
#ะ“ั€ัƒะทะธะผ ะบะฐั€ั‚ะธะฝะบะธ
#ะ›ะพะณะพั‚ะธะฟ ะฟั€ะพะดัƒะบั‚ะฐ
image create photo logo_product -file [file join $mydir "imageme" "validcertkey_51x24.png"] 
#ะ›ะพะณะพั‚ะธะฟ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปั
image create photo logo_orel -file [file join $mydir "imageme" "ั_ะพั€ะตะป_425x200.png"] -format "png -alpha 1.0"
#ะะฝะดั€ะพะธะดะฐ ั tcl/tk
image create photo logo_and -file [file join $mydir "imageme" "AndTk_inv_147x173.png"] -format "png -alpha 1.0"
#ะกะฒะธั‚ะพะบ ะพะฟะตั‡ะฐั‚ะฐะฝะฝั‹ะน
image create photo svitok -file [file join $mydir "imageme" "blue_svitok.png"] -format "png -alpha 1.0"
#ะŸะปะธั‚ะบะฐ
image create photo tileand -file [file join $mydir "imageme" "tile_green_and_32x32.png"] -format "png -alpha 1.0"
#ะฃะฒะตะปะธั‡ะธั‚ัŒ/ัƒะผะตะฝัŒัˆะธั‚ัŒ (ะพั‚ั€ะธั†ะฐั‚ะตะปัŒะฝะพะต ะทะฝะฐั‡ะตะฝะธะต - ัƒะผะตะฝัŒัˆะตะฝะธะต)
proc scaleImage {im xfactor {yfactor 0}} {
set mode -subsample
if {$xfactor>=0 && $yfactor>=0} {
set mode -zoom
} else {
set xfactor [expr $xfactor * -1]
}
if {$yfactor == 0} {set yfactor $xfactor}
set t [image create photo]
$t copy $im
$im blank
$im copy $t -shrink $mode $xfactor $yfactor
image delete $t
}
proc createtile {w  backg} {
image create photo tiled
tiled copy $backg -to 0 0 $::scrwidth $::scrheight -shrink
$backg copy tiled
image delete tiled
# ะœะพัั‚ะธะผ ั…ะพะปัั‚
$w create image 0 0  
-image $backg  
-anchor nw
}
proc create_rectangle  {canv img x1 y1 x2 y2 color alfa {wbd 0} {colorline black} } {
image create photo $img -format "default -colorformat  rgb"
set rgb1 [winfo rgb $canv $color]
set cr  [lindex $rgb1 0]
set cg  [lindex $rgb1 1]
set cb  [lindex $rgb1 2]
set fill [format "#%04x%04x%04x" $cr $cg $cb ]
#ะกะพะทะดะฐะตะผ ั†ะฒะตั‚ะฝะพะน ะฟั€ะฐัะผะพัƒะณะพะปัŒะฝะธะบ
$img put $fill -to 0 0 [expr {$x2 - $x1}] [expr {$y2 -$y1}]
#ะกะพั…ั€ะฐะฝัะตะผ ะบะฐั€ั‚ะธะฝะบัƒ
set dimg [$img data -format png]
#ะกะพะทะดะฐะตะผ image ั ัƒั‡ะตั‚ะพะผ alpha ะบะฐะฝะฐะปะฐ
image create photo $img -data $dimg -format "png -alpha $alfa"
#    $img put [list $rgb1] -to 0 0 [expr {$x2 - $x1}] [expr {$y2 -$y1}]
#ะžั‚ะพะฑั€ะฐะถะฐะตะผ ั†ะฒะตั‚ะฝะพะน ะฟั€ัะผะพัƒะณะพะปัŒะฝะธะบ
set imgr [$canv create image $x1 $y1 -image $img -anchor nw] 
set cc [subst {butImg $img}]
$canv bind $imgr <ButtonPress-1> $cc
#ะžะบะพะฝั‚ะพะฒะบะฐ ะฒะพะบั€ัƒะณ ั†ะฒะตั‚ะฝะพะณะพ ะฟั€ัะผะพัƒะณะพะปัŒะฝะธะบะฐ
if {$wbd > 0 } {
set item [$canv create rect $x1 $y1 $x2 $y2 -outline $colorline -width $wbd ]
$canv bind $item <ButtonPress-1> $cc
}
return $imgr
}
proc butImg {img} {
tk_messageBox -title "ะšะฝะพะฟะบะฐ" -icon info -message "ะะฐะถะฐะปะธ ะบะฝะพะฟะบัƒ=$img" -detail "::screenwidth=$::scrwidthn::screenheight=$::scrheight" -parent .
if {$img == "exit"} {
set answer [tk_dialog .dialog2 "ะšะพะฝะตั† ั€ะฐะฑะพั‚ั‹" "ะ’ั‹ ะดะตะนัั‚ะฒะธั‚ะตะปัŒะฝะพnั…ะพั‚ะธั‚ะต ะฒั‹ะนั‚ะธ?" question 0 "ะ”ะฐ" "ะะตั‚" ]
if {$answer == 0} {
exit
}	
}
}
proc page_titul {fr  logo_manufacturer} {
global mydir
#ะกะพะทะดะฐะตะผ ั…ะพะปัั‚ ะฝะฐ ะฒะตััŒ ัะบั€ะฐะฝ
tkp::canvas $fr.can -borderwidth 0 -height [winfo screenheight .] -width [winfo screenwidth .] -relief flat
#ะœะพัั‚ะธะผ ั…ะพะปัั‚ ะฟะปะธั‚ะบะพะน 
createtile "$fr.can"  "tileand"
pack $fr.can  -anchor center -expand 1 -fill both -side top  -padx 0 -pady 0
#ะ’ั‹ั‡ะธัะปัะตะผ ะบะพะพั€ะดะธะฝะฐั‚ั‹ ะดะปั ะปะพะณะพั‚ะธะฟะฐ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปั
#update ั‡ั‚ะพะฑั‹ ะพะฑะฝะพะฒะธะปะฐััŒ ะธะฝั„ะพั€ะผะฐั†ะธั ะฒ ะ‘ะ” ะพะฑ ะพะบะฝะฐั…
update
#    set aa [winfo height $fr.labtitul]
set aa $::padly
#ะฆะตะฝั‚ั€ะธั€ัƒะตะผ ะปะพะณะพั‚ะธะฟ ั€ะฐะทั€ะฐะฑะพั‚ั‡ะธะบะฐ
set ha [image width $logo_manufacturer]
set xman [expr {($::scrwidth - $ha) / 2 }]
$fr.can create image $xman $aa -image $logo_manufacturer -anchor nw -tag tag_logo
set blogo [$fr.can bbox tag_logo]
set wexit [lindex $blogo 3]
if {$::typetlf } {
set dlx [expr {$::padlx / 1}]
$fr.can create text [expr $dlx + 6] [expr {$wexit + $::padly + 6}] -anchor nw -text "ะญะปะตะบั‚ั€ะพะฝะฝะฐั ะฟะพะดะฟะธััŒ" -fill black -font {{Roboto Condensed Medium} 15 }
$fr.can create text $dlx [expr {$wexit + $::padly}] -anchor nw -text "ะญะปะตะบั‚ั€ะพะฝะฝะฐั ะฟะพะดะฟะธััŒ" -fill white -font {{Roboto Condensed Medium} 15 } -tag id_text0
update
set blogo [$fr.can bbox id_text0]
set wexit [lindex $blogo 3]
$fr.can create text [expr $dlx + 4] [expr {$wexit + $::padly + 4 - 80}] -anchor nw -text "ะดะปั ะฟะปะฐั‚ั„ะพั€ะผั‹ Android" -fill black -font {{Roboto Condensed Medium} 13}
$fr.can create text $dlx [expr {$wexit + $::padly - 80}] -anchor nw -text "ะดะปั ะฟะปะฐั‚ั„ะพั€ะผั‹ Android" -fill white -font {{Roboto Condensed Medium} 13} -tag id_text1
set blogo [$fr.can bbox id_text1]
set wexit [lindex $blogo 3]
$fr.can create text [expr $dlx + 3] [expr {$wexit + $::padly + 3 - 50}] -anchor nw -text "โ„– 63 ะคะ— "ะžะฑ ัะปะตะบั‚ั€ะพะฝะฝะพะนnะฟะพะดะฟะธัะธ ะพั‚ 6 ะฐะฟั€ะตะปั 2011 ะณะพะดะฐ"" -fill black -font {{Roboto} 10}
$fr.can create text $dlx [expr {$wexit + $::padly - 50}] -anchor nw -text "โ„– 63 ะคะ— "ะžะฑ ัะปะตะบั‚ั€ะพะฝะฝะพะนnะฟะพะดะฟะธัะธ ะพั‚ 6 ะฐะฟั€ะตะปั 2011 ะณะพะดะฐ"" -fill white -font {{Roboto} 10} -tag id_text2
set blogo [$fr.can bbox id_text2]
set wexit [lindex $blogo 3]
$fr.can create text [expr $dlx + 2] [expr {$wexit + $::padly + 2 - 40}] -text "ะะฒั‚ะพั€ั‹: ะ’.ะ. ะžั€ะปะพะฒnhttp://soft.lissi.ru, http://www.lissi.run+7(495)589-99-53ne-mail: [email protected]" 
-anchor nw -fill black  -font {{Roboto} 9}
$fr.can create text $dlx [expr {$wexit + $::padly - 40}] -text "ะะฒั‚ะพั€ั‹: ะ’.ะ. ะžั€ะปะพะฒnhttp://soft.lissi.ru, http://www.lissi.run+7(495)589-99-53ne-mail: [email protected]" 
-anchor nw -fill white -tag id_text3  -font {{Roboto} 9}
} else {
$fr.can create text [expr $::padlx + 2] [expr {$wexit + $::padly + 2}] -anchor nw -text "ะญะปะตะบั‚ั€ะพะฝะฝะฐั ะฟะพะดะฟะธััŒ" -fill black -font {{Nimbus Sans Narrow} 20}
$fr.can create text $::padlx [expr {$wexit + $::padly}] -anchor nw -text "ะญะปะตะบั‚ั€ะพะฝะฝะฐั ะฟะพะดะฟะธััŒ" -fill white -font {{Nimbus Sans Narrow} 20} -tag id_text0
set blogo [$fr.can bbox id_text0]
set wexit [lindex $blogo 3]
$fr.can create text [expr $::padlx + 2] [expr {$wexit + $::padly + 2 - 20}] -anchor nw -text "ะดะปั ะฟะปะฐั‚ั„ะพั€ะผั‹ Android" -fill black -font {{Nimbus Sans Narrow} 18}
$fr.can create text $::padlx [expr {$wexit + $::padly - 20}] -anchor nw -text "ะดะปั ะฟะปะฐั‚ั„ะพั€ะผั‹ Android" -fill white -font {{Nimbus Sans Narrow} 18} -tag id_text1
set blogo [$fr.can bbox id_text1]
set wexit [lindex $blogo 3]
$fr.can create text [expr $::padlx + 2] [expr {$wexit + $::padly + 2}] -anchor nw -text "โ„– 63 ะคะ— "ะžะฑ ัะปะตะบั‚ั€ะพะฝะฝะพะนnะฟะพะดะฟะธัะธ ะพั‚ 6 ะฐะฟั€ะตะปั 2011 ะณะพะดะฐ"" -fill black -font {{Nimbus Sans Narrow} 14}
$fr.can create text $::padlx [expr {$wexit + $::padly}] -anchor nw -text "โ„– 63 ะคะ— "ะžะฑ ัะปะตะบั‚ั€ะพะฝะฝะพะนnะฟะพะดะฟะธัะธ ะพั‚ 6 ะฐะฟั€ะตะปั 2011 ะณะพะดะฐ"" -fill white -font {{Nimbus Sans Narrow} 14} -tag id_text2
set blogo [$fr.can bbox id_text2]
set wexit [lindex $blogo 3]
$fr.can create text [expr $::padlx + 1] [expr {$wexit + $::padly + 1}] -text "ะะฒั‚ะพั€ั‹: ะ’.ะ. ะžั€ะปะพะฒnhttp://soft.lissi.ru, http://www.lissi.run+7(495)589-99-53ne-mail: [email protected]" 
-anchor nw -fill black  -font {{Nimbus Sans Narrow} 12}
$fr.can create text $::padlx [expr {$wexit + $::padly}] -text "ะะฒั‚ะพั€ั‹: ะ’.ะ. ะžั€ะปะพะฒnhttp://soft.lissi.ru, http://www.lissi.run+7(495)589-99-53ne-mail: [email protected]" 
-anchor nw -fill white -tag id_text3  -font {{Nimbus Sans Narrow} 12} -tag id_text3
set blogo [$fr.can bbox id_text2]
}
set blogo [$fr.can bbox id_text3]
set wland [lindex $blogo 3]
$fr.can create image $::padlx $wland -image logo_and -anchor nw -tag tag_land
set ha [image height logo_and]
set wa [image width logo_and]
set ha1 [expr {$ha - ($ha / 2 ) }]
$fr.can create image [expr {$wa - 80 }] [expr {$wland + $ha1}] -image svitok -anchor nw -tag tag_land
if {$::typetlf} {
set x1 [expr {$::padlx / 2}]
set y1 [expr {$wland + 120}]
set x2 [expr {$::::scrwidth - $x1}]
set y2 [expr {$y1 + 120}]
set wd 8
set rr 18
} else {
set x1 [expr {$::padlx / 2}]
set y1 [expr {$wland + 40}]
set x2 [expr {$::::scrwidth - $x1}]
set y2 [expr {$y1 + 40}]
set wd 4
set rr 6
}
set g5 [$fr.can gradient create linear -stops {{0 lightgreen} {1 green}}] 
set S3 [$fr.can style create -stroke "skyblue" -fill  $g5 -strokewidth $wd  -fillopacity 0.6]
set im1 [$fr.can create prect $x1 $y1 $x2 $y2 -rx $rr -style $S3]
$fr.can bind $im1 <ButtonPress-1> {butImg "img1"}
#ะŸะตั‡ะฐั‚ะฐะตะผ ั‚ะตั…ั‚
set blogo [$fr.can bbox $im1]
set by2 [lindex $blogo 3]
set by1 [lindex $blogo 1]
set bb [expr {($by2 - $by1) / 2}]
set bx2 [lindex $blogo 2]
set bx1 [lindex $blogo 0]
set bbx [expr {($bx2 - $bx1) / 2}]
set txt1 [$fr.can create text [expr {$x1 + $::padlx * 2}] [expr {$y1 + 1 }] -anchor nw -text "ะกะฐะนั‚ ั€ะฐะทั€ะฐะฑะพั‚ั‡ะธะบะฐ" -fill black -font {{Arial} 10 normal}] 
#ะฆะตะฝั‚ั€ะธั€ัƒะตะผ ั‚ะตั…ั‚
set btxt1 [$fr.can bbox $txt1]
#ะกะผะตั‰ะตะฝะธะต ะฟะพ ะพัะธ Y
set ty2 [lindex $btxt1 3]
set ty1 [lindex $btxt1 1]
set tt [expr {$ty2 - $ty1}]
set tt [expr {$tt / 2}]
set offsy [expr {($by1 + $bb) - ($ty1 + $tt)}]
#ะกะผะตั‰ะตะฝะธะต ะฟะพ ะพัะธ X
set tx2 [lindex $btxt1 2]
set tx1 [lindex $btxt1 0]
set ttx [expr {$tx2 - $tx1}]
set ttx [expr {$ttx / 2}]
set offsx [expr {($bx1 + $bbx) - ($tx1 + $ttx)}]
$fr.can move $txt1 $offsx $offsy
$fr.can bind $txt1 <ButtonPress-1> {butImg "img1"}
if {$::typetlf} {
set y1 [expr $y2 + 40]
set x2 [expr {$::::scrwidth - $x1}]
set y2 [expr {$y1 + 120}]
} else {
set y1 [expr {$y1 + 60}]
set x2 [expr {$::::scrwidth - $x1}]
set y2 [expr {$y1 + 40}]
}
set im1 [create_rectangle $fr.can "but2" $x1 $y1 $x2 $y2 "#2b972d" 0.6 $wd "skyblue"]
#ะŸะตั‡ะฐั‚ะฐะตะผ ั‚ะตั…ั‚
set blogo [$fr.can bbox $im1]
set by2 [lindex $blogo 3]
set by1 [lindex $blogo 1]
set bb [expr {($by2 - $by1) / 2}]
set bx2 [lindex $blogo 2]
set bx1 [lindex $blogo 0]
set bbx [expr {($bx2 - $bx1) / 2}]
set txt1 [$fr.can create text [expr {$x1 + $::padlx * 2}] [expr {$y1 + 1 }] -anchor nw -text "ะŸะตั€ะตั…ะพะด ะฒ ะพัะฝะพะฒะฝะพะต ะผะตะฝัŽ" -fill black -font {{Roboto Condensed Medium} 12}] 
#ะฆะตะฝั‚ั€ะธั€ัƒะตะผ ั‚ะตะบัั‚
set btxt1 [$fr.can bbox $txt1]
#ะกะผะตั‰ะตะฝะธะต ะฟะพ ะพัะธ Y
set ty2 [lindex $btxt1 3]
set ty1 [lindex $btxt1 1]
set tt [expr {$ty2 - $ty1}]
set tt [expr {$tt / 2}]
set offsy [expr {($by1 + $bb) - ($ty1 + $tt)}]
#ะกะผะตั‰ะตะฝะธะต ะฟะพ ะพัะธ X
set tx2 [lindex $btxt1 2]
set tx1 [lindex $btxt1 0]
set ttx [expr {$tx2 - $tx1}]
set ttx [expr {$ttx / 2}]
set offsx [expr {($bx1 + $bbx) - ($tx1 + $ttx)}]
$fr.can move $txt1 $offsx $offsy
$fr.can bind $txt1 <ButtonPress-1> {butImg "but2"}
if {$::typetlf} {
set x1 [expr {$::padlx / 2}]
set y1 [expr $y2 + 40]
set x2 [expr {$::::scrwidth - $x1}]
set y2 [expr {$y1 + 120}]
} else {
set x1 [expr {$::padlx / 2}]
set y1 [expr {$y1 + 60}]
set x2 [expr {$::::scrwidth - $x1}]
set y2 [expr {$y1 + 40}]
}
set S3 [$fr.can style create -stroke skyblue -fill  $g5 -strokewidth $wd  -fillopacity 0.6]
set im1 [$fr.can create prect $x1 $y1 $x2 $y2 -rx $rr -style $S3]
set blogo [$fr.can bbox $im1]
$fr.can bind $im1 <ButtonPress-1> {butImg "exit"}
set by2 [lindex $blogo 3]
set by1 [lindex $blogo 1]
set bb [expr {($by2 - $by1) / 2}]
set bx2 [lindex $blogo 2]
set bx1 [lindex $blogo 0]
set bbx [expr {($bx2 - $bx1) / 2}]
set txt1 [$fr.can create text [expr {$x1 + $::padlx * 2}] [expr {$y1 + 1 }] -anchor nw -text "ะšะพะฝะตั† ั€ะฐะฑะพั‚ั‹" -fill black  -font {Arial 10 normal}]
$fr.can bind $txt1 <ButtonPress-1> {butImg "exit"}
set btxt1 [$fr.can bbox $txt1]
#ะกะผะตั‰ะตะฝะธะต ะฟะพ ะพัะธ Y
set ty2 [lindex $btxt1 3]
set ty1 [lindex $btxt1 1]
set tt [expr {$ty2 - $ty1}]
set tt [expr {$tt / 2}]
set offsy [expr {($by1 + $bb) - ($ty1 + $tt)}]
#ะกะผะตั‰ะตะฝะธะต ะฟะพ ะพัะธ X
set tx2 [lindex $btxt1 2]
set tx1 [lindex $btxt1 0]
set ttx [expr {$tx2 - $tx1}]
set ttx [expr {$ttx / 2}]
set offsx [expr {($bx1 + $bbx) - ($tx1 + $ttx)}]
$fr.can move $txt1 $offsx $offsy
}
#ะกะพะฑัั‚ะฒะตะฝะฝะพ ัะบั€ะธะฟั‚
#ะกั‡ะธั‚ั‹ะฒะฐะตะผ ั€ะฐะทะผะตั€ั‹ ัะบั€ะฐะฝะฐ
set ::scrwidth [winfo screenwidth .]
set ::scrheight [winfo screenheight .]
set ::typetlf 0
#ะŸั€ะพะฒะตั€ัะตะผ, ั‡ั‚ะพ ัั‚ะพ ั‚ะตะปะตั„ะพะฝ
if {$::scrwidth < $::scrheight} {
set ::typetlf 1
}
set ::padls 20
set ::padlx 15
set ::padly 15
if {$::typetlf} {
wm attributes . -fullscreen 1
scaleImage icon_openfile_18x16 3
scaleImage ::img::view_18x16 3
#ะ›ะพะณะพั‚ะธะฟ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปั
scaleImage logo_orel 2
#ะ›ะพะณะพั‚ะธะฟ ะฟั€ะพะดัƒะบั‚ะฒ
scaleImage logo_product 2
#ะะฝะดั€ะพะธะดะฐ tcl/tk
scaleImage logo_and 3
#ะกะฒะธั‚ะพะบ ะพะฟะตั‡ะฐั‚ะฐะฝะฝั‹ะน
scaleImage svitok 4
set ::padls 50
set ::padlx 75
set ::padly 50
} else {
#ะšะพะฝั„ะธะณัƒั€ะธั€ะพะฒะฐะฝะธะต ะฒะธะดะถะตั‚ะฐ ะฟะพะด ัะผะฐั€ั‚ั„ะพะฝ
scaleImage logo_orel -2
set ::scrwidth 370
set ::scrheight 700
wm minsize . $::scrwidth $::scrheight
set geometr $::scrwidth
append geometr "x"
append geometr $::scrheight
append geometr "+0+0"
wm geometry . $geometr
}
#ะกะพะทะดะฐะตะผ ะฝะฐะทะฒะฐะฝะธะต ะฟั€ะพะดัƒะบั‚ะฐ
set name_product "CryptoArmPKCS-A" 
label .labtitul -image logo_product -compound left -fg snow -text $name_product -font {Arial 10 bold} -anchor w  -width [winfo screenwidth .] -pady $::padls -padx 10 -bg #222222 
pack .labtitul -anchor nw -expand 0 -fill x -side top  -padx 1 -pady 0
#ะกะพะทะดะฐะตะผ ัั‚ะฐั€ั‚ะพะฒัƒัŽ ัั‚ั€ะฐะฝะธั†ัƒ
set i 0
ttk::frame .fr$i -pad 0 -padding 0
page_titul ".fr$i"  "logo_orel"
pack .fr$i -side top -anchor center -expand 1 -fill both -side top  -padx 0 -pady 0 
update

แƒแƒ› แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒจแƒ”แƒกแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ undroidwish แƒแƒœ vanillawish แƒฃแƒขแƒ˜แƒšแƒ˜แƒขแƒ:

$ /usr/local/bin64/undroidwish-e5dc71ed9d-linux64   create_titul_page.tcl 

แƒแƒœ

$/usr/local/bin64/vanillawish-e5dc71ed9d-linux64  create_titul_page.tcl 

แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒกแƒ™แƒ แƒ˜แƒœแƒจแƒแƒขแƒจแƒ˜.

แƒ›แƒ”แƒแƒ แƒ” แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ” แƒฉแƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒšแƒ˜แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒแƒšแƒแƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก cryptoarmpkcs-A แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ. แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒฎแƒแƒ–แƒ˜ แƒแƒ แƒ˜แƒก แƒฆแƒ˜แƒšแƒแƒ™แƒ˜, แƒ“แƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒฃแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜. แƒแƒ› แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ” แƒฆแƒ˜แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒ”แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒ แƒ’แƒแƒœแƒ˜แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ แƒ˜แƒคแƒขแƒ˜แƒ—. แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ create_page_functions.tcl แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ”แƒแƒ แƒ”/แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒฃแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“. แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒ›แƒกแƒฃแƒ แƒ•แƒ”แƒšแƒก แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ แƒ›แƒแƒ—แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“.

แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ create_page_functions.tcl

package require Tk
package require tkpath 0.3.0
global mydir
set mydir [file dirname [info script]]
#ะฃะฒะตะปะธั‡ะธั‚ัŒ/ัƒะผะตะฝัŒัˆะธั‚ัŒ (ะพั‚ั€ะธั†ะฐั‚ะตะปัŒะฝะพะต ะทะฝะฐั‡ะตะฝะธะต - ัƒะผะตะฝัŒัˆะตะฝะธะต)
proc scaleImage {im xfactor {yfactor 0}} {
set mode -subsample
if {$xfactor>=0 && $yfactor>=0} {
set mode -zoom
} else {
set xfactor [expr $xfactor * -1]
}
if {$yfactor == 0} {set yfactor $xfactor}
set t [image create photo]
$t copy $im
$im blank
$im copy $t -shrink $mode $xfactor $yfactor
image delete $t
}
proc createtile {w  backg} {
image create photo tiled
tiled copy $backg -to 0 0 $::scrwidth $::scrheight -shrink
$backg copy tiled
image delete tiled
# ะœะพัั‚ะธะผ ั…ะพะปัั‚
$w create image 0 0  
-image $backg  
-anchor nw
}
proc butCliked {num fr} {
pack forget  .fr1
set ::tekFrfunc $fr
pack $fr -side top -anchor center -expand 1 -fill both -side top  -padx 0 -pady 0 
tk_dialog .dialog1 "Dear user:" "Button $num was clickednFr=$fr" info 0 OK 
}
proc butImg {img} {
tk_messageBox -title "ะšะฝะพะฟะบะฐ" -icon info -message "ะะฐะถะฐะปะธ ะบะฝะพะฟะบัƒ=$img" -detail "::screenwidth=$::scrwidthn::screenheight=$::scrheight" -parent .
if {$img == "exit"} {
set answer [tk_dialog .dialog2 "ะšะพะฝะตั† ั€ะฐะฑะพั‚ั‹" "ะ’ั‹ ะดะตะนัั‚ะฒะธั‚ะตะปัŒะฝะพnั…ะพั‚ะธั‚ะต ะฒั‹ะนั‚ะธ?" question 0 "ะ”ะฐ" "ะะตั‚" ]
if {$answer == 0} {
exit
}	
}
}
proc butReturn {} {
pack forget  $::tekFrfunc
pack .fr1 -side top -anchor center -expand 1 -fill both -side top  -padx 0 -pady 0 
#    tk_dialog .dialog1 "Dear user:" "Button $num was clickednFr=$fr" info 0 OK 
}
proc page_func {fr tile titul functions} {
#ะšะฝะพะฟะบะธ  ะผะตะฝัŽ
upvar $functions but
#ะกะพะทะดะฐะตะผ ัˆั€ะธั„ั‚ ะดะปั ะบะฝะพะฟะพะบ
if {$::typetlf} {
set feFONT_button "-family {Roboto} -size 9 -weight bold -slant roman"
set widl 10
} else {
set feFONT_button "-family {Arial} -size 12 -weight bold -slant roman"
set widl 5
}
catch {font delete fontTEMP_drawer}
eval font create fontTEMP_drawer  $feFONT_button
#ะ’ั‹ั‡ะธัะปัะตะผ ะผะฐะบัะธะผะฐะปัŒะฝั‹ัŽ ะดะปะธะฝัƒ ั‚ะตะบัั‚ะฐ
set drawerCNT 0
set strMaxWidthPx 15
set Ndrawers [expr {[array size but] - 1}]
while { $drawerCNT <= $Ndrawers } {
set strWidthPx [font measure fontTEMP_drawer "$but($drawerCNT)"]
if { $strWidthPx > $strMaxWidthPx } {
set strMaxWidthPx $strWidthPx
}
incr drawerCNT
}
set drawerWidthPx [expr $strMaxWidthPx + 10]
set xxx [expr {($::::scrwidth - $drawerWidthPx) / 2}]
if {$fr != ".fr1"} {
set hret [expr $::scrheight / 4]
} else {
set hret $::scrheight
}
set hret [expr $::scrheight / 4]
tkp::canvas $fr.can -borderwidth 0 -height $hret -width $::scrwidth -relief flat
#ะœะพัั‚ะธะผ ั…ะพะปัั‚ ะฟะปะธั‚ะบะพะน 
createtile "$fr.can"  $tile
pack $fr.can  -anchor center -expand 1 -fill both -side top  -padx 0 -pady 0
if {$titul != "" } {
set allfunc $titul
catch {font delete fontTEMP_titul}
set font_titul "-family {Roboto Condensed Medium} -size 15"
eval font create fontTEMP_titul  $font_titul
set funcWidthPx [font measure fontTEMP_titul "$allfunc"]
set dlx [expr {($::::scrwidth - $funcWidthPx) / 2}]
$fr.can create text [expr $dlx + 6] [expr {6 + 6}] -anchor nw -text "$allfunc" -fill black -font fontTEMP_titul
$fr.can create text $dlx 6 -anchor nw -text "$allfunc" -fill white -font fontTEMP_titul -tag id_text0
set blogo [$fr.can bbox id_text0]
set boxbut [expr ([lindex $blogo 3] + 6 + 6)]
} else {
set boxbut [expr 6 + 6]
}
#ะ’ั‹ั‡ะธัะปัะตะผ ัะฐะผั‹ะน ัˆะธั€ะพะบะธะน ั‚ะตะบัั‚ ัƒ ะบะฝะพะฟะพะบ
#ะกะผ. ะฒั‹ัˆะต
#ะ ะฐะทะผะตั‰ะฐะตะผ ะบะฝะพะฟะบะธ
set BDwidth_canvas 0
set maxTextHeightPx [font metrics fontTEMP_drawer -linespace] 
set maxTextHeightPx [expr {$maxTextHeightPx + ( $maxTextHeightPx / 2)}]
set drawerHeightPx $maxTextHeightPx
set xLocTextPx [expr {($::::scrwidth - $drawerWidthPx) / 2}]
set yLocTextPx [expr $BDwidth_canvas + ($drawerHeightPx / 2) + $boxbut]
set canvasHeightPx [expr $Ndrawers * $drawerHeightPx]
set drawerCNT 0
set Ndrawers [expr {[array size but] - 1}]
while { $drawerCNT <= $Ndrawers } {
set yLineLocPx [ expr (( $drawerCNT ) * $drawerHeightPx + $boxbut)]
#ะ›ะธะฝะธั ะฟะตั€ะตะด ั‚ะตะบัั‚ะพะผ
$fr.can create line 
$xLocTextPx $yLineLocPx 
[expr $drawerWidthPx + $xLocTextPx] $yLineLocPx 
-fill "#a0a0a0" -width $widl
$fr.can create text [expr $xLocTextPx + 5] $yLocTextPx 
-anchor w 
-font fontTEMP_drawer 
-text "$but($drawerCNT)" 
-tag textlineTag($drawerCNT)
if {$drawerCNT == 0} {
if {$fr == ".fr1"} {
$fr.can bind textlineTag($drawerCNT)  <ButtonRelease-1>   {butImg "but1"}
} else {
$fr.can bind textlineTag($drawerCNT)  <ButtonRelease-1>   {butReturn}
}
} else {
frame .fn$drawerCNT -background white -relief flat -pady 0 -padx 0
set titul $but($drawerCNT)
set cmd "$fr.can bind textlineTag($drawerCNT)  <ButtonRelease-1>   {butCliked $drawerCNT .fn$drawerCNT}"
set cmd [subst "$cmd"]
eval $cmd 
set but1(0) "ะ’ะพะทะฒั€ะฐั‚ ะฒ ะพัะฝะพะฒะฝะพะต ะผะตะฝัŽ"
page_func ".fn$drawerCNT" voda "$titul" "but1"
}
incr drawerCNT
set yLocTextPx [ expr $yLocTextPx + $drawerHeightPx]
#ะ—ะฐะฒะตั€ัˆะฐัŽัˆะฐั ะปะธะฝะธั
if { $drawerCNT > $Ndrawers } {
set yLineLocPx [ expr (( $drawerCNT ) * $drawerHeightPx + $boxbut)]
$fr.can create line $xLocTextPx $yLineLocPx 
[expr $drawerWidthPx + $xLocTextPx] $yLineLocPx 
-fill "#a0a0a0" -width $widl
}
}
}
#ะกะพะฑัั‚ะฒะตะฝะฝะพ ัะบั€ะธะฟั‚
#ะกั‡ะธั‚ั‹ะฒะฐะตะผ ั€ะฐะทะผะตั€ั‹ ัะบั€ะฐะฝะฐ
set ::scrwidth [winfo screenwidth .]
set ::scrheight [winfo screenheight .]
set ::typetlf 0
#ะŸั€ะพะฒะตั€ัะตะผ, ั‡ั‚ะพ ัั‚ะพ ั‚ะตะปะตั„ะพะฝ
if {$::scrwidth < $::scrheight} {
set ::typetlf 1
}
set ::padls 20
set ::padlx 15
set ::padly 15
if {$::typetlf} {
wm attributes . -fullscreen 1
#ะ›ะพะณะพั‚ะธะฟ ะฟั€ะพะดัƒะบั‚ะฒ
scaleImage logo_product 2
set ::padls 50
set ::padlx 75
set ::padly 50
} else {
#ะšะพะฝั„ะธะณัƒั€ะธั€ะพะฒะฐะฝะธะต ะฒะธะดะถะตั‚ะฐ ะฟะพะด ัะผะฐั€ั‚ั„ะพะฝ
set ::scrwidth 370
set ::scrheight 700
wm minsize . $::scrwidth $::scrheight
set geometr $::scrwidth
append geometr "x"
append geometr $::scrheight
append geometr "+0+0"
wm geometry . $geometr
}
#ะ“ั€ัƒะทะธะผ ะบะฐั€ั‚ะธะฝะบะธ
image create photo voda -file [file join $mydir "imageme" "voda_400x800.png"]
#ะ›ะพะณะพั‚ะธะฟ ะฟั€ะพะดัƒะบั‚ะฐ
image create photo logo_product -file [file join $mydir "imageme" "validcertkey_51x24.png"] 
#ะกะพะทะดะฐะตะผ ะฝะฐะทะฒะฐะฝะธะต ะฟั€ะพะดัƒะบั‚ะฐ
set name_product "CryptoArmPKCS-A" 
label .labtitul -image logo_product -compound left -fg snow -text $name_product -font {Arial 10 bold} -anchor w  -width [winfo screenwidth .] -pady $::padls -padx 10 -bg #222222 
pack .labtitul -anchor nw -expand 0 -fill x -side top  -padx 1 -pady 0
#ะกะพะทะดะฐะตะผ ัั‚ั€ะฐะฝะธั†ั‹ ั ั„ัƒะฝะบั†ะธะพะฝะฐะปะพะผ
set i 1
ttk::frame .fr$i -pad 0 -padding 0
#ะšะฝะพะฟะบะธ ะพัะฝะพะฒะฝะพะณะพ ะผะตะฝัŽ
set but(0) "ะกั‚ะฐั€ั‚ะพะฒะฐั ัั‚ั€ะฐะฝะธั†ะฐ" 
set but(1) "ะŸะพะดะฟะธัะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚"
set but(2) "ะ ะฐะฑะพั‚ะฐะตะผ ั ะญะŸ (PKCS7)" 
set but(3) "ะ—ะฐะฟั€ะพั ะฝะฐ ัะตั€ั‚ะธั„ะธะบะฐั‚" 
set but(4) "ะŸั€ะพัะผะพั‚ั€ ะทะฐะฟั€ะพัะฐ/ัะตั€ั‚ะธั„ะธะบะฐั‚ะฐ" 
set but(5) "ะกะฟะธัะพะบ ะบั€ะธะฟั‚ะพะผะตั…ะฐะฝะธะทะผะพะฒ"
set but(6) "ะŸั€ะพัะผะพั‚ั€ ASN1-ัั‚ั€ัƒะบั‚ัƒั€ั‹" 
set but(7) "ะžะฑัŠะตะบั‚ั‹ ั‚ะพะบะตะฝะฐ" 
set but(8) "ะ ะฐะฑะพั‚ะฐะตะผ ั PKCS12/PFX" 
set but(9) "ะกะฐะผะพะฟะพะดะฟะธัะฐะฝะฝั‹ะน ัะตั€ั‚ะธั„ะธะบะฐั‚"
set but(10) "ะžะฑ ะฃั‚ะธะปะธั‚ะต/ะ”ะธัั‚ั€ะธะฑัƒั‚ะธะฒั‹" 
set but(11) "ะกะพะทะดะฐั‚ัŒ ะขะพะบะตะฝั‹"
set but(12) "ะšะพะฝั„ะธะณัƒั€ะธั€ะพะฒะฝะธะต ั‚ะพะบะตะฝะฐ"
if {$::typetlf} {
scaleImage voda 3 2
}
#ะกะพะทะดะฐะตะผ ัั‚ั€ะฐะฝะธั†ัƒ ั ั„ัƒะฝะบั†ะธะพะฝะฐะปะพะผ
page_func ".fr$i" voda "ะคัƒะฝะบั†ะธะพะฝะฐะป" "but"
#ะžั‚ะพะฑั€ะฐะถะฐะตะผ ัั‚ั€ะฐะฝะธั†ัƒ ั ั„ัƒะฝะบั†ะธะพะฝะฐะปะพะผ
pack .fr$i -side top -anchor center -expand 1 -fill both -side top  -padx 0 -pady 0 

แƒ”แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒก แƒ‘แƒšแƒแƒœแƒ™แƒ”แƒ‘แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒฆแƒ˜แƒšแƒแƒ™แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜

แƒ‘แƒšแƒแƒœแƒ™แƒ”แƒ‘แƒ˜ แƒ˜แƒ•แƒกแƒ”แƒ‘แƒ แƒ™แƒšแƒแƒกแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ“แƒ แƒ—แƒ”แƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒ•แƒ˜แƒฏแƒ”แƒขแƒ”แƒ‘แƒ˜แƒ— (แƒ”แƒขแƒ˜แƒ™แƒ”แƒขแƒ˜แƒก แƒฉแƒแƒ แƒฉแƒ, แƒฆแƒ˜แƒšแƒแƒ™แƒ˜ แƒ“แƒ แƒ.แƒจ.). แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒแƒกแƒ”แƒ—แƒ˜ แƒจแƒ”แƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒšแƒแƒœแƒ™แƒ˜ แƒฉแƒแƒœแƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ”แƒ™แƒ แƒแƒœแƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ–แƒ” แƒ›แƒแƒ แƒฏแƒ•แƒœแƒ˜แƒ•. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ”แƒขแƒแƒžแƒ–แƒ” แƒฉแƒ•แƒ”แƒœ แƒคแƒแƒ™แƒฃแƒกแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ˜แƒงแƒแƒ•แƒ˜แƒ— PKCS#12 แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒ–แƒ”, แƒ™แƒแƒ“แƒ˜ แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜ แƒ˜แƒงแƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ cryptoarmpkcs-A-แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ› แƒ”แƒขแƒแƒžแƒ–แƒ” แƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜:

  • แƒฎแƒ”แƒšแƒ˜ แƒ›แƒแƒแƒฌแƒ”แƒ แƒแƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒก (Cades-BES, CAdes-T, CAdes-XLT1);
  • แƒฉแƒ•แƒ”แƒœ แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ— แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒ— (PKCS7), แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒ—แƒ•แƒšแƒ˜แƒ—;
  • แƒกแƒ”แƒ แƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ”แƒ‘แƒ˜แƒก/แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒฎแƒ•แƒ:

    แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜

  • แƒฉแƒ•แƒ”แƒœ แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ— PKCS12/PFX-แƒ—แƒแƒœ;
  • แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜/แƒ“แƒ˜แƒกแƒขแƒ แƒ˜แƒ‘แƒฃแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘:

    แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜

แƒ“แƒแƒ แƒฉแƒ”แƒœแƒ˜แƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒแƒ“ แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ PKCS#11 แƒŸแƒ”แƒขแƒแƒœแƒ”แƒ‘แƒก. แƒ›แƒแƒ—แƒ˜ แƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒ แƒกแƒแƒแƒฎแƒแƒšแƒฌแƒšแƒแƒ“ แƒ’แƒแƒ“แƒแƒ˜แƒ“แƒ. แƒ“แƒแƒ’แƒ”แƒ’แƒ›แƒ˜แƒšแƒ˜แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒ˜ แƒขแƒแƒ™แƒ”แƒœแƒ˜แƒก แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒฆแƒ แƒฃแƒ‘แƒ”แƒšแƒ˜.

แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒฃแƒ แƒ˜ แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ—, แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜แƒ cryptoarmpkcs แƒฃแƒขแƒ˜แƒšแƒ˜แƒขแƒแƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒ–แƒ” แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒ”แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ, แƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ—แƒฃ แƒแƒ แƒ แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ แƒกแƒแƒฎแƒ”แƒšแƒ›แƒฌแƒ˜แƒคแƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ•แƒ”แƒ‘แƒกแƒแƒ˜แƒขแƒ–แƒ”:

แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜
แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ“แƒแƒแƒญแƒ˜แƒ แƒ”แƒ— แƒฆแƒ˜แƒšแƒแƒ™แƒก "แƒ“แƒ˜แƒแƒฎ", แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜ แƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ‘แƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒ— แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ“แƒแƒกแƒแƒ“แƒแƒกแƒขแƒฃแƒ แƒ”แƒ‘แƒšแƒแƒ“. แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ แƒแƒ› แƒ”แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒแƒ  แƒแƒ แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒกแƒ›แƒแƒ แƒขแƒคแƒแƒœแƒ˜แƒก แƒ”แƒ™แƒ แƒแƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ”แƒก แƒจแƒ”แƒกแƒแƒ›แƒฉแƒœแƒ”แƒ•แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒ แƒฉแƒ”แƒ•แƒ˜แƒกแƒแƒก แƒ“แƒ แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ›แƒแƒฎแƒกแƒœแƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒ—แƒแƒœ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ™แƒแƒ แƒ’แƒแƒ“แƒแƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒ“แƒ”แƒ’แƒก แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ—:

แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜

แƒฃแƒœแƒ“แƒ แƒ’แƒ•แƒแƒฎแƒกแƒแƒ•แƒ“แƒ”แƒก, แƒ แƒแƒ› แƒ แƒแƒ’แƒแƒ แƒช แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒก, แƒแƒกแƒ”แƒ•แƒ” แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒแƒก แƒกแƒแƒฎแƒ”แƒšแƒ›แƒฌแƒ˜แƒคแƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ•แƒ”แƒ‘แƒกแƒแƒ˜แƒขแƒ–แƒ” แƒแƒฅแƒ•แƒก แƒแƒ–แƒ แƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฃ แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ˜ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒแƒ™แƒ แƒ”แƒ“แƒ˜แƒขแƒ”แƒ‘แƒฃแƒš แƒกแƒ”แƒ แƒขแƒ˜แƒคแƒ˜แƒชแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒชแƒ”แƒœแƒขแƒ แƒจแƒ˜ (ะฃะฆ). แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ.

แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜แƒก แƒ“แƒแƒกแƒแƒ แƒ”แƒ™แƒแƒ“ แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ แƒแƒ แƒ˜ แƒฎแƒแƒ–แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ openUrl แƒžแƒ แƒแƒชแƒ”แƒ“แƒฃแƒ แƒแƒจแƒ˜:

proc openURL {url} {
global typesys
global macos
#  global windowsOS
#ะฟั€ะพะฒะตั€ะบะฐ, ั‡ั‚ะพ ัƒั‚ะธะปะธั‚ะฐ ะฒั‹ะฟะพะปะฝัะตั‚ัั ะฝะฐ ัะผะฐั€ั‚ั„ะพะฝะต Android
if {$::typetlf} {
#ะ—ะฐะฟัƒัะบ ะฑั€ะฐัƒะทะตั€ะฐ
borg activity android.intent.action.VIEW $url text/html
return
}
. . .
}

แƒแƒœแƒ“แƒ แƒแƒ˜แƒ“แƒ–แƒ” แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒก แƒแƒกแƒ” แƒฐแƒฅแƒ•แƒ˜แƒ:

borg activity android.intent.action.VIEW <URL> text/html

แƒ›แƒชแƒ˜แƒ แƒ” แƒ—แƒแƒ•แƒ˜แƒกแƒ”แƒ‘แƒฃแƒ แƒ”แƒ‘แƒแƒ แƒแƒ“แƒ แƒ” แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒš แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒฎแƒ”แƒšแƒ›แƒแƒ›แƒฌแƒ”แƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒแƒฎแƒแƒšแƒ˜ แƒฎแƒ”แƒšแƒ›แƒแƒ›แƒฌแƒ”แƒ แƒ˜แƒก แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ˜ (แƒฃแƒคแƒ แƒ แƒกแƒฌแƒแƒ แƒแƒ“, แƒ—แƒฃแƒœแƒ“แƒแƒช PKCS#12 แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ แƒกแƒ”แƒ แƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ˜แƒ— แƒ“แƒ แƒžแƒ˜แƒ แƒแƒ“แƒ˜ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒ—) แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒแƒ แƒฉแƒ”แƒฃแƒšแƒ˜ โ€žแƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒโ€œ แƒแƒœ โ€žPKCS12/PFX-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒโ€œ แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒจแƒ”แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ—. :

แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜
แƒ’แƒ แƒซแƒ”แƒšแƒ•แƒแƒ“แƒ˜แƒแƒœแƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก, แƒกแƒแƒแƒ—แƒ˜ แƒ’แƒแƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒก แƒฅแƒ แƒแƒœแƒ˜แƒ™แƒแƒก:

แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜
แƒ แƒฉแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ›แƒ˜แƒก แƒ—แƒฅแƒ›แƒ, แƒกแƒแƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ“แƒ›แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒ“แƒ˜แƒกแƒขแƒ แƒ˜แƒ‘แƒฃแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒแƒ’แƒ˜แƒšแƒแƒชแƒแƒ— แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒฌแƒ”แƒšแƒ˜ แƒ“แƒ แƒ•แƒฃแƒกแƒฃแƒ แƒ•แƒแƒ— แƒงแƒ•แƒ”แƒšแƒแƒก แƒงแƒแƒ•แƒ”แƒšแƒ˜แƒ•แƒ” แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ 2020 แƒฌแƒ”แƒšแƒก!

แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜ Android แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒแƒกแƒ” แƒ แƒแƒ›, แƒ“แƒ˜แƒกแƒขแƒ แƒ˜แƒ‘แƒฃแƒชแƒ˜แƒ”แƒ‘แƒ˜ Linux, OS X, Windows แƒ“แƒ Android-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ