Archiv rubriky: Nezařazené

Připojení 3G modemu Huawei E173 k tabletu s androidem

Připojit USB modem k PC

Po nainstalování ovladačů (obvykle automaticky -lze použít i ovladače Huawei 4.2.19) je potřebné zjistit číslo COM portu pomocí Správce zařízení devmgmt.msc.

Připojíme se pomocí seriové konzoly – použijeme např. putty

Nastavení putty:

Nejprve zkusíme příkaz ATI

a dále si zkontrolujeme nastavení pomocí AT^U2DIAG? tj jaké je aktuální nastavení. Nakonec vlastní operaci AT^U2DIAG=276. K dispozici bude resetované tovární nastavení  ( modem, CD – flash, i mikroSD)
pozor: zařízení se změní na VID_12d1&PID_1c07 ( jinak je jako VID_12d1&PID_1c05)

Vygenerovat kód pomocí utility Universal_MasterCode

Provedeme nahrání odpovídající firmware E173Update_21.017.09.00.00.B726 popř.zde. Standardní FW od T-mobile dělá problémy.

V tomto okamžiku lze USB modem odpojit od PC.

A teď vlastní nastavení v tabletu.

doplnit do /system/etc/3g_dongle.cfg sekci

[E173]
dongle_name=E173
production_name=E173
vendor_name=huawei
network_type=GSM_MODE
pid_vid_origin=0x12d11c07
bcdDevice_origin=0x0
pid_vid_now=0x12d11c07
bcdDevice_now=0x0
at_port=3
ppp_port=0

Doplnit na konec souboru /system/bin/preinstall.sh
echo „12d1 1c07“ > /sys/bus/usb-serial/drivers/option1/new_id

Restartovat tablet

Editaci lze provést např přes ADB připojení.
Potřebné soubory lze stáhnout např. zde. Stačí jen rozbalit v složce, kde budeme spouštět adb.exe.

V nastavení – sekce „{} Pro vývojáře“ povolit „Ladění USB“.  Připojit pomocí USB tablet s PC.
Pustit příkazový řádek – komandové okno.   Zkusíme zda jsme připojeni příkazem

adb devices

* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
20080411382bd8e device

Provedeme zálohu (stažení do adresáře kde jsme spustili adb.exe) stávajících souborů

adb pull /system/bin/preinstall.sh

adb pull /system/etc/3g_dongle.cfg

Teď lze soubory upravit – nezapomenout je uložit v linuxovém formátu tj řádky ukončené je LF nikoli CRLF. To umí například editor pspad.  Můžete použít již upravené soubory.

Nejprve ale si zpřístupníme systém na zápis

adb remount
remount succeeded

Vrátíme upravené soubory zpět.

adb push preinstall.sh /system/bin/preinstall.sh

adb push 3g_dongle.cfg /system/etc/3g_dongle.cfg

Pokud budete mít modem v režimu ID_12d1&PID_1c05, musíte změnit odpovídající položky jak v /system/bin/preinstall.sh tak v /system/etc/3g_dongle.cfg

 


AT-příkazy – zdroj
Huawei+AT-commands
Popis obecných AT příkazů

 

Powershell – získání výstupu z webové služby s ověřením v aplikaci

/*Nejprve si pohrajeme s odchytáním komunikace na webovou službu např pomocí prográmku Fiddler ( proxy) abychom získali potřebné infomace o URL

Nejprve získáme pověření  buď pomocí Get-Credential nebo z uloženého pověření v souboru  popř pomocí System.Net.NetworkCredential*/

$cred = Get-Credential
$global:credNet=$cred.GetNetworkCredential()
#$global:credNet = New-Object System.Net.NetworkCredential -argumentlist $user,$P
$CookieContainer = New-Object System.Net.CookieContainer

$global:myCache = new-object system.net.CredentialCache
$global:WEBSRV=new-object system.uri("https://xxx.example.cz/xxx/websrv.aspx")
$global:WEBSRVb=new-object system.uri("https://xxx.example.cz")
# do cache uložíme ověření pro NTLM
$global:myCache.add($WEBSRVb,"NTLM",$credNet)
$LOGIN="//https://xxx.example.cz/xxx/login.aspx?ReturnUrl=/xxx/import.aspx"
# vytvoříme požadavek pro přihlášení
[net.httpWebRequest] $global:req = [net.webRequest]::create($LOGIN)
$global:req.AllowAutoRedirect = $false
# to zrušení přesmerování je nutné
$global:req.KeepAlive = $true
$global:req.CookieContainer = $CookieContainer
# nastavíme si odkud se budou brát Credentials
$global:req.Credentials =$global:myCache
$global:req.TimeOut = 50000
$global:req.Headers.Add("Keep-Alive: 300");
# požádáme o odpověď - responze (login.aspx)
# hlavně nám vrátí potřebné cookies<
[net.httpWebResponse] $global:res = $req.getResponse()
# nyní zkusíme zavolat vlastní službu 
[net.httpWebRequest] $global:req2 = [net.webRequest]::create($WEBSRV)
# předáme potřebné Cookie a pověření
$global:req2.CookieContainer = $CookieContainer
$global:req2.Credentials =$global:myCache
$req2.Headers.Add("Cookie", $global:res.Headers["Set-Cookie"])
# a provedeme vlastní zavolání služby
[net.httpWebResponse] $global:res2 = $req2.getResponse()
#po uspěšném dokončení si přečteme co nám služba vrátila
$data=$res2.GetResponseStream()
$reader=New-Object System.IO.StreamReader($data)
$Obsah=$reader.ReadToEnd() # celá data - HTML
$reader.close()
$data.close()
$Obsah > "./data.html" # uložíme si do souboru

Powershell – uložení Credential do souboru

# nejprve si načteme interaktivně požadované pověření

$Credential = Get-Credential
$MujKlic = "MojeLehkéHeslo"

/*
CelyKlic vygeneruje klíč potřebné délky (lpozadovana) pro budouci XOR s kodovanym popř dekodovaným řetězcem
$keyX … puvodni klic, můze být menší než šifrovaný řetězec
—————–*/

Function CelyKlic ([string]$keyX,[int]$lpozadovana) {
   $keyL=$keyX.Length
   $j=53; // nastavime zaklad ASCII hodnoty  0-255
# [System.Console]::Write("lPozadovana="+[string]$lpozadovana+'  ');
      while($keyX.Length -lt $lpozadovana){
         $keyP='';
# vezmu puvodni klic KeyX trochu o upravim pomoci binarniho OR a $j a pridam jako rozsireni
     $j++ ;$j++ ;$j++ ;
     for ($i=0; $i -lt $keyL; $i++) {
       $pom=[char] ($keyX[$i] -bor $j) ; # nasledujici pridany znak-binarne OR s $j
       $keyP=$keyP+$pom
     }
     $KeyX=$KeyX+$KeyP
  }
  Return $KeyX # vrátíme modifikovaný klíč požadované délky
}

/* Funkce provede kodovani/dekodovani pomocí XOR, pouzije modifikovaný klíč z CelyKlic
$ret kodovaný řetězec, $bkey – zadaný klíč
*/

Function koduj ([string] $ret, [string] $bkey) {
   $private:jmP=''
   $CelyK=CelyKlic $bkey $ret.Length
   for ($i=0; $i -lt $ret.Length; $i++) {
      $private:jmP=$private:jmP+[char] ($ret[$i] -bxor $CelyK[$i])
   }
   return $private:jmP
 }

/* ted přichází vlastní zakodovaní nejprve UserName ze zadaného $credential
všiměte si zadávání parametrů, žádné závorky, žádné čárky
navíc , pokud by se objevil v těle volané funkce nějaký příkaz typu echo, pak se tento dostané do vracené hodnoty -to je na zastřelení */

$TXTjmeno=koduj $credential.UserName $MujKlic
# protože to budu ukládat do textového souboru převedu na lehčí tvar Base64String
$JMkodbase64=[System.Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($TXTjmeno))
$JMkodbase64 > ".\JMKodBase64.txt"
# vytvoří v aktualním adresáři soubor JMKodBase64.txt

/*
není třeba vkládat CRLF, vloží ho automaticky
$CRLF=“`r`n“
$CRLF >> „.\JMKodBase64.txt“
*/

# u hesla je třeba převést z specialni kontrukce SecureString na string
[string]$TXTpassword=ConvertFrom-SecureString($credential.Password)
# z důvodu paranoi ještě zakodujeme jednou
$TXTpassword=koduj $TXTpassword $MujKlic
#[System.Console]::Writeline($TXTpassword)
$TXTpassword64=[System.Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($TXTpassword))
$TXTpassword64 >> ".\JMKodBase64.txt" # a přidáme na konec souboru

#————- Pro načtení credetials zpátky

$cUserName =''
$cPassw = ''
$CRED64= gc JMKodBase64.txt
# načte obsah textového souboru do pole $CRED64, každý řádek v jednom prvku
# Prevedem zpet z BASE64
$txtJmeno=[System.Text.Encoding]::UNICODE.GetString([System.Convert]::FromBase64String($CRED64[0]))
# dekodujeme
$cUserName=koduj $txtJmeno $MujKlic
#[System.Console]::Writeline($cUserName)
$txtPassw=[System.Text.Encoding]::UNICODE.GetString([System.Convert]::FromBase64String($CRED64[1]))
$cPassw=koduj $txtPassw $MujKlic
#[System.Console]::Writeline($cPassw)
# u hesla musíme  převést na SecureString
$sPassw=ConvertTo-SecureString($cPassw)
# vytvoříme požadované Credential
$cred = New-Object System.Management.Automation.PSCredential $cUserName, $sPassw
#popr. pro dalsí pouzití
$global:credNet=$cred.GetNetworkCredential()

poskytovatel zásad a nedůvěryhodný certifikát

Řetěz certifikátů byl správně zpracován, ale poskytovatel zásad považuje jeden z certifikátů certifikační autority za nedůvěryhodný.

Pokud se objeví tato hláška při vyžádání certifikátů z místní certifikační autority z prostředí Windows 7 lze tento problém řešit z prostředí klienta naimportování kořenového certifikátu do místního uložení v registrech příkazem:

certutil -enterprise -f -addstore NTAuth myRootCA.cer

Příkaz je nutné spustit v cmd okně jako správce.

certutil -TCAInfo zobrazí info o certifikační autoritě

certutil -store -enterprise NTauth vypíše obsah úložiště textově

certutil -viewstore -enterprise NTauth vypíše obsah úložiště graficky v okně

Odstranění certifikátu z uložiště NTAuth
certutil -enterprise -delstore NTAuth poř.číslo.certifikatu

fyzické umístění úložiště

HKLM\SOFTWARE\Microsoft\EnterpriseCertificates\NTAuth\Certificates
zdroje:

http://www.tekweb.dk/manuals/command/commands/c/CERTUTIF.HTM
http://social.technet.microsoft.com/Forums/en-US/winserversecurity/thread/446d7e1f-16a7-43e1-a866-3786528b22e6
http://support.microsoft.com/kb/295663
How to import third-party certification authority (CA) certificates into the Enterprise NTAuth store