Ben bizim junior IT personeli bizim LifeSize telefonlar firmware yönetmenizi sağlayacak bir web denetimi inşa ediyorum. Şu anda biz sonra yükseltmek istediğiniz her telefon için bu komutu çalıştıran merkezi bir sunucu üzerine yeni firmware yükleyerek bunu
cat new_firmware.cramfs | ssh -T cli@1.1.1.1 "upgrade all"
Bu şifre, daha sonra firmware yükler bana soruyor. Bir şampiyon gibi çalışır, ama tüm telefonlarının tüm IP'leri bakmak için CLI araçları ile rahat birisi, bu sunucuya SSH erişimi ve sabır alır.
Biz belgeleri ile test felaket olmuştur bir parola ile oturum ile sıkışmış konum gibi görünüyor. Üzerinde hareket ediliyor Cihaz küçük, özel gömülü bir işletim sistemi çalıştıran bir telefon var, tam teşekküllü bir bilgisayar değildir.
Tüm telefonlar üzerinde yineleme, ancak temelde bu işlevi yinelenen bir PHP komut dosyası üzerinde çalışıyorum. Bu ben bugüne kadar ne var:
<?php
$firmware_filename = "new_firmware.cramfs";
$firmware_stream = fopen($firmware_filename,"rb");
$ssh_connection = ssh2_connect("1.1.1.1", 22);
ssh2_auth_password($ssh_connection, "cli", "password");
$ssh_stream = ssh2_exec($ssh_connection,'upgrade all');
$written = stream_copy_to_stream($firmware_stream,$ssh_stream,-1);
if($written != filesize($full_filename)){
echo "The file is " . filesize($firmware_filename) . " bytes, I only wrote $written" . PHP_EOL;
}else{
echo "All Good" . PHP_EOL;
}
?>
Ancak bu her zaman döner
The file is 26988590 bytes, I only wrote 8192
Ve yükseltme doğru devam etmez.