Add calc function for old laptops by hdd.
This commit is contained in:
1 parent
4170477339
commit
07287bc3f6
1 file changed
+23
-6
@@ -26,6 +26,11 @@ function toByte(arr){
|
||||
return arr;
|
||||
}
|
||||
|
||||
function calc_in(l_arr){
|
||||
return [ (l_arr[1] >> 1),
|
||||
((l_arr[1] >> 6) | (l_arr[0] << 2)),
|
||||
(l_arr[0] >> 3) ];
|
||||
}
|
||||
|
||||
function begin_calc(serial, s_arr){
|
||||
var ret_arr = [];
|
||||
@@ -41,11 +46,7 @@ function begin_calc(serial, s_arr){
|
||||
ret_arr[3] = (serial[ s_arr[2] ] >> 7) | (serial[ s_arr[1] ] << 1);
|
||||
ret_arr[4] = (serial[ s_arr[1] ] >> 4) | (serial[ s_arr[0] ] << 4);
|
||||
|
||||
|
||||
ret_arr[5] = (serial[1] >> 1);
|
||||
ret_arr[6] = (serial[1] >> 6) | (serial[0] << 2);
|
||||
ret_arr[7] = (serial[0] >> 3);
|
||||
|
||||
ret_arr = ret_arr.concat(calc_in(serial));
|
||||
|
||||
return toByte(ret_arr);
|
||||
}
|
||||
@@ -76,10 +77,26 @@ function calc_suffix_tag(serial){
|
||||
return calc_suffix_shortcut(serial, [1,2,3,4],[4,3,2]);
|
||||
}
|
||||
|
||||
function calc_suffix_hddn(serial){
|
||||
function calc_suffix_hdd_new(serial){
|
||||
return calc_suffix_shortcut(serial, [1,10,9,8], [8,9,10]);
|
||||
}
|
||||
|
||||
/* Depends only in first two chars */
|
||||
function calc_suffix_hdd_old(serial){
|
||||
// encscans[26], enscans[0xAA % enscans.length]
|
||||
var ret_arr = [49,49,49,49,49];
|
||||
var serial_arr = StrintToArray(serial);
|
||||
ret_arr = ret_arr.concat(calc_in(serial_arr));
|
||||
// lower bits then 5 are never change
|
||||
for(var i=5;i<8;i++){
|
||||
var r = 0xAA;
|
||||
(ret_arr[i] & 8) && (r ^= serial[1]);
|
||||
(ret_arr[i] & 16) && (r ^= serial[0]);
|
||||
ret_arr[i] = encscans[ r % encscans.length];
|
||||
}
|
||||
return ret_arr;
|
||||
}
|
||||
|
||||
function dell_service_tag(serial){
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user