приставка mag250
Модератор: immortal
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 694 раза
- Контактная информация:
Re: приставка mag250
попробовал с телефона послать UPD запрос {"protocol":"remote_stb_1.0","port":8778} на порт 6000 по адресу 192.168.1.255 и мне пришел требуемый ответ. Почему-то если эти порты прописать в скрипте, никакого ответа нет. Использовал программу UDP Sender/Receiver.
Через телефон, если тоже самое отправить на порт 6777, приходит такая-же зашифрованная ерунда.
Через телефон, если тоже самое отправить на порт 6777, приходит такая-же зашифрованная ерунда.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 694 раза
- Контактная информация:
Re: приставка mag250
Из приложения же работает. Что я делаю не так?
СпойлерПоказать
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 694 раза
- Контактная информация:
Re: приставка mag250
Когда-нибудь и до приставок руки дойдут. Хотелось бы конечно большего функционала, не только http пульт. В приставках по сути есть dnla клиент. Но видимо он какойто урезанный. Нельзя на приставку вывести контент через bubbleUpnp
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: приставка mag250
а кто может дешифровать єту фуункцию - помогите плиз
Код: Выделить всё
protected List<STB> doInBackground(String... params) {
DatagramSocket socketR;
JSONException e;
SocketException e2;
IOException e3;
DiscoveryActivity.this.stbs = new ArrayList();
STB stb = new STB();
stb.setName(DiscoveryActivity.this.getResources().getString(C0454R.string.manual));
stb.setIp("");
stb.setPort("7666");
stb.setSerial(DiscoveryActivity.this.manualSerialNumber);
stb.setType("");
DiscoveryActivity.this.stbs.add(stb);
DatagramSocket socketR2 = null;
STB stb2 = stb;
while (DiscoveryActivity.this.listen) {
try {
socketR = new DatagramSocket(null);
try {
socketR.setReuseAddress(true);
socketR.setBroadcast(true);
socketR.bind(new InetSocketAddress(8777));
socketR.setSoTimeout(5000);
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socketR.receive(packet);
JSONObject json = new JSONObject(new String(buf, "UTF-8").trim());
stb = new STB();
try {
stb.setName(json.getString("name"));
stb.setIp(packet.getAddress().getHostAddress().toString());
stb.setPort(json.getString("port"));
stb.setSerial(json.getString("serialNumber"));
stb.setType(json.getString("type"));
DiscoveryActivity.this.stbs.add(stb);
socketR2 = socketR;
stb2 = stb;
} catch (JSONException e4) {
e = e4;
} catch (SocketException e5) {
e2 = e5;
} catch (IOException e6) {
e3 = e6;
}
} catch (JSONException e7) {
e = e7;
stb = stb2;
} catch (SocketException e8) {
e2 = e8;
stb = stb2;
} catch (IOException e9) {
e3 = e9;
stb = stb2;
}
} catch (JSONException e10) {
e = e10;
socketR = socketR2;
stb = stb2;
} catch (SocketException e11) {
e2 = e11;
socketR = socketR2;
stb = stb2;
} catch (IOException e12) {
e3 = e12;
socketR = socketR2;
stb = stb2;
}
}
socketR = socketR2;
stb = stb2;
return DiscoveryActivity.this.stbs;
e2.printStackTrace();
return DiscoveryActivity.this.stbs;
e3.printStackTrace();
return DiscoveryActivity.this.stbs;
e.printStackTrace();
return DiscoveryActivity.this.stbs;
}
Спасибо нам ПОМОЖЕТ..!
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: приставка mag250
Ура - получил ответ от приставки на пхп скрипте..
.
Правильно работающая функция
Код: Выделить всё
<?php
$arr=array('protocol'=>'remote_stb_1.0','port'=>7666);
$post_data = json_encode($arr);
echo $post_data;
echo "<br>";
//$sock = socket_create_listen(7666);
$sock = socket_create(AF_INET, SOCK_DGRAM, 0);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
// not nedded $post_data = iconv("UTF-8", "ASCII", $post_data);
socket_bind($sock, 0, 7666);
socket_sendto($sock, $post_data, strlen($post_data), 0, '239.255.255.250', 6000);
socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array("sec"=>5, "usec"=>1000));
$response = array();
do {
$buf = null;
@socket_recvfrom($sock, $buf, 2048, 0, $host, $sport);
if (!is_null($buf)) {
$response[] =$buf;
$hex=bin2hex ($buf);
$decript=decript($buf, $password);
// echo "<br>Messagge : < $buf > , hex: < $hex > , decript < $decript > $host : $sport <br>";
echo "<br>Messagge : < $buf > , $host : $sport <br>";
}
} while (!is_null($buf));
echo "<br>";
$password = '1';
$password = substr(hash('sha256', $password, true), 0, 32);
/////////////////
echo "<br>---------------------<br>";
echo "pingRequest $host <br>";
$arr=array('msgType'=>'pingRequest');
$post_data = json_encode($arr);
//$post_data = encript($post_data, $password);
echo $post_data;
socket_sendto($sock, $post_data, strlen($post_data), 0, '192.168.100.200', 7666);
$response = array();
do {
$buf = null;
@socket_recvfrom($sock, $buf, 2048, 0, $host, $port);
if (!is_null($buf)) {
$response[] =$buf;
$hex=bin2hex ($buf);
$decript=decript($buf,$password);
echo "<br>Messagge : < $buf > , hex: < $hex > , decript < $decript > $host : $port <br>";
//echo "<br>Messagge : < $buf > , decript < $decript > $host : $port $hex <br>";
}
} while (!is_null($buf));
socket_close($sock);
echo "<br>---------------------<br>";
$phrase="test";
$dphrase= encrypt_decrypt('encrypt', $phrase);
$ephrase=encrypt_decrypt('decrypt', $phrase);
echo "<br>$phrase :::: $dhrase :::: $ephrase <br>";
function encrypt_decrypt($action, $string) {
$output = false;
$encrypt_method = "AES-256-CBC";
$secret_key = '10000000000000000';
$secret_iv = '00000000000000000';
// hash
$key = hash('sha256', $secret_key);
// iv - encrypt method AES-256-CBC expects 16 bytes - else you will get a warning
$iv = substr(hash('sha256', $secret_iv), 0, 16);
if ( $action == 'encrypt' ) {
$output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
$output = base64_encode($output);
} else if( $action == 'decrypt' ) {
$output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
}
return $output;
}
function decript($phrase, $password){
$method = 'AES-256-CBC';
$iv = 'erghnlhbnmbnkghy';
$encrypted = base64_encode(openssl_encrypt($phrase, $method, $password, OPENSSL_RAW_DATA, $iv));
return $encrypted;
}
function encript($phrase, $password){
$method = 'AES-256-CBC';
$iv = 'erghnlhbnmbnkghy';
$decrypted = openssl_decrypt(base64_decode($phrase), $method, $password, OPENSSL_RAW_DATA, $iv);
return $decrypted;
}
Правильно работающая функция
Код: Выделить всё
<?php
$arr=array('protocol'=>'remote_stb_1.0','port'=>6777);
$post_data = json_encode($arr);
echo $post_data;
$ports = '7666';
echo "<br>";
//$sock = socket_create_listen(7666);
$sock = socket_create(AF_INET, SOCK_DGRAM, 0);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
// not nedded $post_data = iconv("UTF-8", "ASCII", $post_data);
socket_bind($sock, 0, 6777);
socket_sendto($sock, $post_data, strlen($post_data), 0, '239.255.255.250', 6000);
socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array("sec"=>1, "usec"=>10));
$response = array();
do {
$buf = null;
@socket_recvfrom($sock, $buf, 2048, 0, $host, $sport);
if (!is_null($buf)) {
$response[] =$buf;
$hex=bin2hex ($buf);
// echo "<br>Messagge : < $buf > , hex: < $hex > , $host : $sport <br>";
echo "<br>Messagge : < $buf > , $host : $sport <br>";
}
} while (!is_null($buf));
echo "<br>";
/////////////////
echo "<br>---------------------<br>";
echo "pingRequest $host <br>";
$arr=array('msgType'=>'pingRequest');
$post_data = json_encode($arr);
//$post_data = tobytes($post_data);
echo $post_data;
socket_sendto($sock, $post_data, strlen($post_data), 0, '192.168.100.200', 7666);
socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array("sec"=>1, "usec"=>10));
$response = array();
do {
$buf = null;
@socket_recvfrom($sock, $buf, 1024, 0, $host, $ports);
if (!is_null($buf)) {
$response[] = $buf;
$plaintext = $buf;
$hex=bin2hex ($buf);
// echo "<br>Messagge : < $buf > , hex: < $hex > , $host : $ports <br>";
//echo "<br>Messagge : < $buf > , base64 < $base64 > $host : $port $hex <br>";
}
} while (!is_null($buf));
//socket_close($sock);
$dataToDecrypt = $plaintext;
$aesKey = '1';
$iv = 'erghnlhbnmbnkghy';
$result = openssl_decrypt($plaintext, 'AES-256-CBC', $aesKey, OPENSSL_RAW_DATA, $iv);
echo ($result);
/////////////////
echo "<br>---------------------<br>";
$metaState = Hex2String (49);
echo $metaState ;
$keycode = Hex2String (0);
$unicode = Hex2String (49);
echo "pingRequest $host <br>";
$arr=array("msgType"=>"keyboardKey","action"=>"press","metaState"=>0,"keycode"=>49,"unicode"=>1,"action"=>"press");
$post_data = json_encode($arr);
$result = openssl_encrypt($post_data, 'AES-256-CBC', $aesKey, OPENSSL_RAW_DATA, $iv);
echo $post_data;
socket_sendto($sock, $result, strlen($result), 0, '192.168.100.200', 7666);
socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array("sec"=>1, "usec"=>10));
$response = array();
do {
$buf = null;
@socket_recvfrom($sock, $buf, 1024, 0, $host, $ports);
if (!is_null($buf)) {
$response[] = $buf;
$plaintext = $buf;
$hex=bin2hex ($buf);
// echo "<br>Messagge : < $buf > , hex: < $hex > , $host : $ports <br>";
//echo "<br>Messagge : < $buf > , base64 < $base64 > $host : $port $hex <br>";
}
} while (!is_null($buf));
socket_close($sock);
$dataToDecrypt = $plaintext;
$aesKey = '1';
//$iv = hex2bin("657267686e6c68626e6d626e6b676879");
$iv = 'erghnlhbnmbnkghy';
$result = openssl_decrypt($plaintext, 'AES-256-CBC', $aesKey, OPENSSL_RAW_DATA, $iv);
}
Код: Выделить всё
{"protocol":"remote_stb_1.0","port":6777}
Messagge : < {"msgType":"Info","name":"aura","deviceFamily":"stbapp","type":"AuraHD2","serialNumber":"102014N030135","screenHeight":480,"screenWidth":720,"port":7666,"protocolVersion":"1.0","modes":["MOUSE","KEYBOARD"]} > , 192.168.100.200 : 7666
---------------------
pingRequest 192.168.100.200
{"msgType":"pingRequest"}
Messagge : < ��4�!��@�Rt���>�!���q���S� > , hex: < bdfb0134e021c41de2408d5274c09cf33e96218d111bb4f771b8c9ee050b5384 > , 192.168.100.200 : 7666
---------------------
Base64 encode:vfsBNOAhxB3iQI1SdMCc8z6WIY0RG7T3cbjJ7gULU4Q=
Base64 decode:�j
Password:10000000000000000000000000000000
plaintext=��4�!��@�Rt���>�!���q���S�
cipher=aes-256-cbc
encrypted to: 6��S�h��ᣁ_����W�vȩvI�����=��k'��!1�f����
decrypted to:
- Вложения
-
- 111.php.txt
- code encode
- (988 байт) 547 скачиваний
-
- array.txt
- (50 байт) 542 скачивания
Последний раз редактировалось tarasfrompir Чт сен 27, 2018 1:29 pm, всего редактировалось 1 раз.
- За это сообщение автора tarasfrompir поблагодарили (всего 2):
- directman66 (Вт сен 25, 2018 11:16 am) • chimik (Вт сен 25, 2018 10:28 pm)
- Рейтинг: 2.33%
Спасибо нам ПОМОЖЕТ..!
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: приставка mag250
Получил пингреспонс - УРА 3 бессоных ночи...
при декодировании не надо получать хеши пароля и солстринга - тупо их вписывать
solstring (iv ) = erghnlhbnmbnkghy
Теперь приступаю к написанию класса управления для приставки
при декодировании не надо получать хеши пароля и солстринга - тупо их вписывать
solstring (iv ) = erghnlhbnmbnkghy
Теперь приступаю к написанию класса управления для приставки
Последний раз редактировалось tarasfrompir Чт сен 27, 2018 10:16 am, всего редактировалось 2 раза.
Спасибо нам ПОМОЖЕТ..!
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: приставка mag250
Вот это по управлению пультом кнопок - все команды отрабатывают с дистанционного управления только так (вроде)
1. построение самого запроса json -
2. this.hex - тут находится сама комманда - metaState, keycode, unicode (только по идее они идут в 16чном коде - их надо преобразовывать в десятичный)
1. построение самого запроса json -
Код: Выделить всё
this.json.put("msgType", "keyboardKey");
this.json.put("action", "press");
this.json.put("metaState", new Integer(metaState));
this.json.put("keycode", new Integer(keycode));
this.json.put("unicode", new Integer(unicode));
this.json.put("action", "press");
Код: Выделить всё
public void onClick(View v) {
switch (v.getId()) {
case C0182R.id.power:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0043 0022 0021 0044 0021 0022 0d74";
break;
} else {
this.hex = "85,134217728,117";
break;
}
case C0182R.id.mute:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0043 0022 0021 0044 0021 0022 0021 0022 0021 0022 0d74";
break;
} else {
this.hex = "96,134217728,96";
break;
}
case C0182R.id.audiomode:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0043 0044 0021 0022 0021 0022 0043 0022 0021 0022 0d53";
break;
} else {
this.hex = "71,134217728,0";
break;
}
case C0182R.id.settings:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0043 0022 0021 0044 0021 0022 0043 0022 0021 0022 0d53";
break;
} else {
this.hex = "16777272,67108864,120";
break;
}
case C0182R.id.red:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000a 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0043 0022 0021 0044 0021 0022 0043 0044 0d74";
break;
} else {
this.hex = "16777264,67108864,112";
break;
}
case C0182R.id.green:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0043 0022 0021 0044 0021 0022 0021 0022 0043 0022 0d53";
break;
} else {
this.hex = "16777265,67108864,113";
break;
}
case C0182R.id.yellow:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0043 0022 0021 0022 0021 0044 0021 0022 0043 0022 0d53";
break;
} else {
this.hex = "16777266,67108864,114";
break;
}
case C0182R.id.blue:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000a 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0043 0022 0021 0022 0021 0044 0043 0044 0d74";
break;
} else {
this.hex = "16777267,67108864,115";
break;
}
case C0182R.id.menu:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000a 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0043 0044 0043 0044 0d74";
break;
} else {
this.hex = "16777274,67108864,122";
break;
}
case C0182R.id.back:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000c 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0043 0022 0021 0022 0021 0022 0021 0022 0d53";
break;
} else {
this.hex = "16777219,0,8";
break;
}
case C0182R.id.exit:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0043 0022 0021 0044 0043 0022 0d53";
break;
} else {
this.hex = "16777216,0,27";
break;
}
case C0182R.id.info:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0043 0022 0d53";
break;
} else {
this.hex = "89,134217728,121";
break;
}
case C0182R.id.app:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0d74";
break;
} else {
this.hex = "16777275,67108864,123";
break;
}
case C0182R.id.tv:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000a 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0043 0022 0021 0044 0043 0044 0043 0022 0d53";
break;
} else {
this.hex = "16777273,67108864,121";
break;
}
case C0182R.id.guide:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000a 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0043 0022 0021 0044 0043 0022 0021 0044 0d74";
break;
} else {
this.hex = "16777271,67108864,119";
break;
}
case C0182R.id.keyboard:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0043 0022 0021 0044 0021 0022 0021 0022 0d74";
break;
} else {
openDialogKeyboard();
break;
}
case C0182R.id.rew:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000a 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0043 0044 0043 0022 0021 0044 0d74";
break;
} else {
this.hex = "66,134217728,98";
break;
}
case C0182R.id.ffwd:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0043 0044 0021 0022 0021 0022 0021 0022 0d74";
break;
} else {
this.hex = "70,134217728,102";
break;
}
case C0182R.id.play:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0043 0044 0043 0022 0021 0022 0d53";
break;
} else {
this.hex = "82,134217728,114";
break;
}
case C0182R.id.stop:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0043 0022 0021 0044 0021 0022 0043 0022 0d53";
break;
} else {
this.hex = "83,134217728,115";
break;
}
case C0182R.id.n1:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000c 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0021 0022 0021 0022 0021 0022 0043 0022 0d53";
break;
} else {
this.hex = "49,0,49";
break;
}
case C0182R.id.n2:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0021 0022 0021 0022 0043 0044 0d74";
break;
} else {
this.hex = "50,0,50";
break;
}
case C0182R.id.n3:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000c 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0021 0022 0021 0022 0043 0022 0021 0022 0d53";
break;
} else {
this.hex = "51,0,51";
break;
}
case C0182R.id.n4:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0021 0022 0043 0044 0021 0022 0d74";
break;
} else {
this.hex = "52,0,52";
break;
}
case C0182R.id.n5:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0021 0022 0043 0044 0043 0022 0d53";
break;
} else {
this.hex = "53,0,53";
break;
}
case C0182R.id.n6:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0021 0022 0043 0022 0021 0044 0d74";
break;
} else {
this.hex = "54,0,54";
break;
}
case C0182R.id.n7:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000c 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0021 0022 0043 0022 0021 0022 0021 0022 0d53";
break;
} else {
this.hex = "55,0,55";
break;
}
case C0182R.id.n8:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0043 0044 0021 0022 0021 0022 0d74";
break;
} else {
this.hex = "56,0,56";
break;
}
case C0182R.id.n9:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0043 0044 0021 0022 0043 0022 0d53";
break;
} else {
this.hex = "57,0,57";
break;
}
case C0182R.id.size:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000b 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0043 0044 0043 0022 0021 0022 0021 0022 0d53";
break;
} else {
this.hex = "16777269,67108864,117";
break;
}
case C0182R.id.n0:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000c 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0021 0022 0021 0022 0021 0022 0021 0022 0021 0022 0021 0022 0d74";
break;
} else {
this.hex = "48,0,48";
break;
}
case C0182R.id.reload:
if (!this.useWiFi.booleanValue()) {
this.code = "0000 006d 000a 0000 0022 0021 0044 0021 0022 0043 0022 0021 0022 0021 0044 0043 0044 0043 0022 0021 0022 0021 0044 0d74";
break;
} else {
this.hex = "16777268,0,116";
break;
}
Спасибо нам ПОМОЖЕТ..!
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: приставка mag250
Вроде как сделано набор функций для управления устройством
- правое значение в функции джави код кнопки
// metastate in center
На ваш взгляд выкладываю - проверено только кнопка 1... Потом дописывал на работе
Проведу тест и в бой...
маска для шифта -1 зажатого -64 и контрола - 2 - зажатого -128
все описано здесь - https://docs.oracle.com/javase/7/docs/a ... _DOWN_MASK
encode($hex) - функция для символа - таблица https://www.google.com.ua/search?q=asci ... WIkU9WcTeM:
- правое значение в функции джави код кнопки
// metastate in center
На ваш взгляд выкладываю - проверено только кнопка 1... Потом дописывал на работе
Проведу тест и в бой...
маска для шифта -1 зажатого -64 и контрола - 2 - зажатого -128
все описано здесь - https://docs.oracle.com/javase/7/docs/a ... _DOWN_MASK
encode($hex) - функция для символа - таблица https://www.google.com.ua/search?q=asci ... WIkU9WcTeM:
Код: Выделить всё
<?php
echo (serialize(scan_device()));
// $answer = key_2('192.168.100.200', 1);
echo 'answer - ' . $answer;
$answer = key_power('192.168.100.200', '1');
echo 'answer - ' . $answer;
// scan device
function scan_device()
{
$arr = array(
'protocol' => 'remote_stb_1.0',
'port' => 6777
);
$post_data = json_encode($arr);
// create socket
$sock = socket_create(AF_INET, SOCK_DGRAM, 0);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
socket_bind($sock, 0, 6777);
socket_sendto($sock, $post_data, strlen($post_data) , 0, '255.255.255.255', 6000);
socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array(
"sec" => 1,
"usec" => 10
));
$response = array();
do
{
$buf = null;
@socket_recvfrom($sock, $buf, 2048, 0, $host, $sport);
if (!is_null($buf))
{
$response[] = $buf;
}
}
while (!is_null($buf));
return $response;
};
// send command to device and wait answer from device 1-ok 0-false
// command must be array
function send_command($ip, $command, $password)
{
// create socket
$sock = socket_create(AF_INET, SOCK_DGRAM, 0);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
socket_bind($sock, 0, 6777);
// convert array to json
$command = json_encode($command);
// coded to aes-256-cbc
$post_data = encrypt_answer($command, $password);
// send command
socket_sendto($sock, $post_data, strlen($post_data) , 0, $ip, 7666);
socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array(
"sec" => 1,
"usec" => 50
));
// recive command
do
{
$buf = null;
@socket_recvfrom($sock, $buf, 2048, 0, $host, $port);
if (!is_null($buf))
{
$plaintext = $buf;
echo ($buf);
}
}
while (!is_null($buf));
socket_close($sock);
return $plaintext;
}
// decription text
function decrypt_answer($text, $password)
{
$iv = 'erghnlhbnmbnkghy';
$result = openssl_decrypt($text, 'AES-256-CBC', $password, OPENSSL_RAW_DATA, $iv);
return $result;
};
// encription text
function encrypt_answer($text, $password)
{
$iv = 'erghnlhbnmbnkghy';
$result = openssl_encrypt($text, 'AES-256-CBC', $password, OPENSSL_RAW_DATA, $iv);
return $result;
};
function key_power($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 134217728,
"keycode" => 85,
"unicode" => 117,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_mute($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 134217728,
"keycode" => 96,
"unicode" => 96,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_audiomode($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 134217728,
"keycode" => 71,
"unicode" => 0,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_setting($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 67108864,
"keycode" => 16777272,
"unicode" => 120,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_red($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 67108864,
"keycode" => 16777264,
"unicode" => 112,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_green($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 67108864,
"keycode" => 16777265,
"unicode" => 113,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_yellow($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 67108864,
"keycode" => 16777266,
"unicode" => 114,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_blue($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 67108864,
"keycode" => 16777267,
"unicode" => 115,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_menu($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 67108864,
"keycode" => 16777274,
"unicode" => 122,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_back($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 16777219,
"unicode" => 8,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_exit($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 16777216,
"unicode" => 27,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_info($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 134217728,
"keycode" => 89,
"unicode" => 121,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_app($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 67108864,
"keycode" => 16777275,
"unicode" => 123,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_tv($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 67108864,
"keycode" => 16777273,
"unicode" => 121,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_guide($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 134217728,
"keycode" => 67108864,
"unicode" => 119,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_rew($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 134217728,
"keycode" => 66,
"unicode" => 98,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_ffwd($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 134217728,
"keycode" => 70,
"unicode" => 102,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_play($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 134217728,
"keycode" => 82,
"unicode" => 114,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_stop($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 134217728,
"keycode" => 83,
"unicode" => 115,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_size($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 67108864,
"keycode" => 16777269,
"unicode" => 11,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_reload($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 16777272,
"unicode" => 116,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_1($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 49,
"unicode" => 1,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_2($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 50,
"unicode" => 2,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_3($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 51,
"unicode" => 3,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_4($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 52,
"unicode" => 4,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_5($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 53,
"unicode" => 5,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_6($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 54,
"unicode" => 6,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_7($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 55,
"unicode" => 7,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_8($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 56,
"unicode" => 8,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_9($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 57,
"unicode" => 9,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_0($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 48,
"unicode" => 0,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_home($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 16777216,
"unicode" => 27,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_ok($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 16777220,
"unicode" => 13,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_volumedown($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 45,
"unicode" => 45,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
function key_volumeup($ip, $password)
{
$command = array(
"msgType" => "keyboardKey",
"action" => "press",
"metaState" => 0,
"keycode" => 43,
"unicode" => 43,
"action" => "press"
);
$answer = send_command($ip, $command, $password);
return $answer;
};
- За это сообщение автора tarasfrompir поблагодарил:
- chimik (Сб сен 29, 2018 7:32 pm)
- Рейтинг: 1.16%
Спасибо нам ПОМОЖЕТ..!
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: приставка mag250
Таки прикрутил приставку - все работает через изменение свойства или запуск метода
- За это сообщение автора tarasfrompir поблагодарил:
- chimik (Сб сен 29, 2018 7:32 pm)
- Рейтинг: 1.16%
Спасибо нам ПОМОЖЕТ..!