File "AndroCertif.inc"
Path: /AndroCertif/AndroCertif.inc
File size: 5.31 KB
MIME-type: text/plain
Charset: utf-8
'------------------------------------------------------------------------------
'--------------- COMMON FUNCTIONS USED BY ANDROCERTIF UTILITIES ---------------
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
GLOBAL toolsPath AS STRING
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
TYPE NATIVE_SYSTEM_INFO
wProcessorArchitecture AS WORD
wReserved AS WORD
dwPageSize AS DWORD
lpMinimumApplicationAddress AS DWORD
lpMaximumApplicationAddress AS DWORD
dwActiveProcessorMask AS DWORD
dwNumberOfProcessors AS DWORD
dwProcessorType AS DWORD
dwAllocationGranularity AS DWORD
wProcessorLevel AS WORD
wProcessorRevision AS WORD
END TYPE
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
FUNCTION IsWindowsx64() AS LONG
LOCAL si AS NATIVE_SYSTEM_INFO
LOCAL arch,CPUnum AS LONG
LOCAL SystemInfo AS NATIVE_SYSTEM_INFO
LOCAL pGetNativeSystemInfo AS LONG
pGetNativeSystemInfo = GetProcAddress(GetModuleHandle("kernel32.dll"), "GetNativeSystemInfo")
IF (pGetNativeSystemInfo) THEN
CALL DWORD pGetNativeSystemInfo USING GetNativeSystemInfo(SystemInfo)
arch = SystemInfo.wProcessorArchitecture
CPUnum=SystemInfo.dwNumberOfProcessors
'stdout "CPU:"+str$(CPUnum)+" Architektur:"+hex$(arch)
IF (arch = %PROCESSOR_ARCHITECTURE_AMD64) THEN
FUNCTION = %True
ELSE
FUNCTION = %False
END IF
ELSE
'get system information
GetSystemInfo BYVAL VARPTR(si)
arch = si.wProcessorArchitecture
'STDOUT "CPUs:"+STR$(si.dwNumberOfProcessors) 'this is just for testing, if structure is still OK
IF arch = %PROCESSOR_ARCHITECTURE_AMD64 OR _
arch = %PROCESSOR_ARCHITECTURE_IA64 THEN
FUNCTION = %True
ELSEIF arch = %PROCESSOR_ARCHITECTURE_INTEL THEN
FUNCTION = %False
ELSE
FUNCTION = %False
END IF
END IF
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
FUNCTION MissingTools() AS LONG
IF IsWindowsx64() THEN toolsPath = "tools_x64" ELSE toolsPath = "tools_x86"
IF NOT EXIST(toolsPath + "\keytool.exe") _
OR NOT EXIST(toolsPath + "\openssl.exe") _
OR NOT EXIST(toolsPath + "\openssl.cfg") _
OR NOT EXIST(toolsPath + "\splitpem.exe") _
OR NOT EXIST(toolsPath + "\jli.dll") _
OR NOT EXIST(toolsPath + "\libeay32.dll") _
OR NOT EXIST(toolsPath + "\ssleay32.dll") _
THEN
?"Fatal Error:"+$CR _
+"Some tools are missing."+$CR _
+"Please re-install from"+$CR _
+"http://mougino.free.fr", _
%MB_ICONERROR, _
EXE.NAME$+$SPC+$VER
FUNCTION = -1
END IF
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
FUNCTION PDQ(e AS STRING) AS STRING ' Protect with double quote
FUNCTION = e
IF INSTR(e, " ") > 0 OR e = "" THEN FUNCTION = $DQ + e + $DQ
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
FUNCTION EXIST(BYVAL fileOrFolder AS STRING) AS LONG
LOCAL Dummy&
ON ERROR GOTO Inexistant
Dummy& = GETATTR(fileOrFolder)
Inexistant:
RESUME FLUSH
FUNCTION = (ERRCLEAR = 0)
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
FUNCTION FileName(tx AS STRING) AS STRING
LOCAL i AS LONG
i = INSTR(-1, tx, "\")
IF i > 0 THEN FUNCTION = MID$(tx, i+1)
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
FUNCTION FilePath(tx AS STRING) AS STRING
LOCAL i AS LONG
i = INSTR(-1, tx, "\")
IF i > 0 THEN FUNCTION = LEFT$(tx, i)
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
FUNCTION BATCH(cmd AS STRING) AS STRING
LOCAL ff AS LONG
LOCAL r AS STRING
' Build and run script
ff = FREEFILE
OPEN EXE.NAME$ + ".bat" FOR OUTPUT AS #ff
PRINT #ff, "@echo off"
PRINT #ff, "set PATH=%CD%;%PATH%;"
PRINT #ff, "set OPENSSL_CONF=%~dp0\openssl.cfg"
PRINT #ff, cmd
CLOSE #ff
SHELL ENVIRON$("COMSPEC") + " /C " _
+ EXE.NAME$ + ".bat > " _
+ EXE.NAME$ + ".log 2>&1", 0
KILL EXE.NAME$ + ".bat"
' Get result of operation
IF NOT EXIST(EXE.NAME$ + ".log") THEN EXIT FUNCTION
ff = FREEFILE
OPEN EXE.NAME$ + ".log" FOR BINARY AS #ff
GET$ #ff, LOF(#ff), r
CLOSE #ff
KILL EXE.NAME$ + ".log"
FUNCTION = TRIM$(r, ANY $CRLF)
END FUNCTION
'------------------------------------------------------------------------------