Liberar SU para desbloqueio

De Gigafull
Ir para navegação Ir para pesquisar

Algumas versões de firmwares OLT não liberam o comando su sem senha.
Para estes casos, utilizar o código abaixo em uma máquina linux com a linguagem RACKET instalada.

Instalação "RACKET" em linux (Ubuntu)
apt-get install racket

racket --version
Welcome to Racket v6.3.

Colar o conteúdo abaixo em um arquivo, exemplo: unlock.rkt

#! /usr/bin/env racket
#lang racket/base
(require openssl/md5)
(require racket/cmdline)
(require racket/list)
(define (get-su-verification-code challenge)
 ((compose1 bytes->string/latin-1 list->bytes)
  (map (lambda (x)
         (let ([r2 (* (arithmetic-shift
                        (bitwise-and
                          (*
                            (arithmetic-shift x -1)
                            #xB60B60B7)
                          #xFFFFFFFF00000000)
                        -37)
                      90)])
           (bitwise-and (+ (- x r2) #x21) #xFF))
         )
       (take
         ((compose1 bytes->list md5-bytes open-input-bytes)
          (list->bytes
            (map (lambda (b)
                   (arithmetic-shift b (if (<= b #x47) 1 -1)))
                 ((compose1 bytes->list string->bytes/latin-1)
                  challenge))))
         8))))
(command-line
 #:program "huawei-su-verification-code"
 #:args (challenge)
 (if (= (string-length challenge) 8)
   (displayln (get-su-verification-code challenge))
   (displayln "Error: Challenge must have 8 chars!" (current-error-port)))
 )

Dar privilegios ao arquivo
chmod 755 unlock.rkt

Para utilizar o validador, entre no modo su na OLT
OLT>enable

OLT#diagnose

OLT(diagnose)%%su
Challenge:DHHTE4ZD
Please input verification code:

Copiar o código da OLT e usar o unlock.rkt:
./main.rkt DHHTE4ZD
Vedljc!h

Com o código gerado, "colar" no prompt da OLT "Please input verification code:"

OLT(su)%% modo su liberado !!!