├── .github └── workflows │ ├── wiki.yml │ └── wikiv2.yml ├── .gitignore ├── LICENSE ├── README.md ├── files └── mifiservice_mod │ ├── .gitignore │ └── Mifi │ └── assets │ ├── jetty2 │ ├── D_HCP.html │ ├── MacFilter.html │ ├── css │ │ ├── common.css │ │ ├── content.lst │ │ ├── layer.css │ │ ├── main.css │ │ └── oldcommon.css │ ├── deviceInformation.html │ ├── deviceOperation.html │ ├── help.html │ ├── img │ │ ├── Tab_button_off.gif │ │ ├── Tab_button_on.gif │ │ ├── content.lst │ │ ├── dlg_t11.png │ │ ├── dlg_t12.png │ │ ├── dlg_t13.png │ │ ├── dlg_t21.png │ │ ├── dlg_t23.png │ │ ├── dlg_t31.png │ │ ├── dlg_t32.png │ │ ├── dlg_t33.png │ │ ├── droid.png │ │ ├── end_page.jpg │ │ ├── header.jpg │ │ ├── header_bg.png │ │ ├── last_page.jpg │ │ ├── loading.gif │ │ ├── login-bg.png │ │ ├── menu.jpg │ │ ├── next_page.jpg │ │ ├── nobattery.png │ │ ├── progress.gif │ │ ├── sprites.png │ │ ├── table_line.png │ │ ├── top_page.jpg │ │ ├── waitting.gif │ │ ├── xubox_ico0.png │ │ └── xubox_title0.png │ ├── index.html │ ├── js │ │ ├── D_HCP.js │ │ ├── MacFilter.js │ │ ├── deviceInformation.js │ │ ├── deviceOperation.js │ │ ├── index.js │ │ ├── main.js │ │ ├── modifyPwd.js │ │ ├── ms.js │ │ ├── netsel.js │ │ ├── plugins │ │ │ ├── jquery.js │ │ │ ├── jquerysession.js │ │ │ ├── json2.js │ │ │ └── layer.js │ │ ├── shell.js │ │ ├── sim.js │ │ ├── status.js │ │ ├── upgrade.js │ │ ├── utils │ │ │ ├── ajax.js │ │ │ ├── alert.js │ │ │ ├── childmenu.js │ │ │ ├── cookiesHandler.js │ │ │ ├── jsonHandler.js │ │ │ ├── languageswitch.js │ │ │ └── smsHandler.js │ │ ├── wifiSecurity.js │ │ ├── wifiSetting.js │ │ └── wwanConfig.js │ ├── json │ │ ├── D_HCP.json │ │ ├── MacFilter.json │ │ ├── content.lst │ │ ├── deviceInformation.json │ │ ├── deviceOperation.json │ │ ├── en.json │ │ ├── help.json │ │ ├── index.json │ │ ├── main.json │ │ ├── modifyPwd.json │ │ ├── netsel.json │ │ ├── ru.json │ │ ├── sim.json │ │ ├── sms.json │ │ ├── status.json │ │ ├── wifiSecurity.json │ │ ├── wifiSetting.json │ │ ├── wwanConfig.json │ │ └── zh.json │ ├── main.html │ ├── ms.html │ ├── netsel.html │ ├── shell.html │ ├── sim.html │ ├── sms.html │ ├── static.html │ ├── status.html │ ├── upgrade.html │ ├── wifiSecurity.html │ ├── wifiSetting.html │ └── wwanConfig.html │ └── push.bat ├── scripts ├── flash.bat ├── initmifiservice.sh └── obselete │ ├── README.md │ ├── fetch_sms.json.sh │ ├── restoreNetwork.py │ └── testFunc.py └── wiki ├── Debian.md ├── Firmware(Dump_and_Restore).md ├── Home.md ├── Introduction.md ├── Modifications.md ├── OpenWRT.md ├── References.md └── Troubleshooting.md /.github/workflows/wiki.yml: -------------------------------------------------------------------------------- 1 | name: Wiki Documentation 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/checkout@v1 11 | - name: Upload Documentation to Wiki 12 | uses: SwiftDocOrg/github-wiki-publish-action@v1 13 | with: 14 | path: "pages" 15 | env: 16 | GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} 17 | -------------------------------------------------------------------------------- /.github/workflows/wikiv2.yml: -------------------------------------------------------------------------------- 1 | name: Publish wiki 2 | on: 3 | push: 4 | branches: [main] 5 | paths: 6 | - wiki/** 7 | - .github/workflows/wikiv2.yml 8 | concurrency: 9 | group: publish-wiki 10 | cancel-in-progress: true 11 | permissions: 12 | contents: write 13 | jobs: 14 | publish-wiki: 15 | runs-on: ubuntu-latest 16 | steps: 17 | - uses: actions/checkout@v3 18 | - uses: Andrew-Chen-Wang/github-wiki-action@v4 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | files/adbcontrol/* 2 | files/required_partitions/* 3 | misc/* 4 | *.zip 5 | *.img 6 | .env/* 7 | .vscode/* 8 | www/* 9 | build/* 10 | 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | # Copyright 2024 Allen Cruiz 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # UZ801 v3.2 USB Modem Analysis 2 | 3 | ## Quick Links 4 | 5 | - [Introduction](https://github.com/AlienWolfX/UZ801-USB_MODEM/wiki/Introduction) 6 | - [Firmware Dump and Restore]() 7 | - [Modifications](https://github.com/AlienWolfX/UZ801-USB_MODEM/wiki/Modifications) 8 | - [OpenWRT](https://github.com/AlienWolfX/UZ801-USB_MODEM/wiki/OpenWRT) 9 | - [Debian](https://github.com/AlienWolfX/UZ801-USB_MODEM/wiki/Debian) 10 | - [Troubleshooting](https://github.com/AlienWolfX/UZ801-USB_MODEM/wiki/Troubleshooting) 11 | 12 | ## Project Statistics 13 | 14 | [![Stargazers](https://reporoster.com/stars/AlienWolfX/UZ801-USB-MODEM)](https://github.com/AlienWolfX/UZ801-USB-MODEM/stargazers) 15 | 16 | 17 | 18 | 19 | 20 | Star History Chart 21 | 22 | 23 | 24 | ## Contributing 25 | 26 | Contributions are welcome! If you have insights or modifications feel free to submit a pull request or open an issue. 27 | 28 | ## License 29 | 30 | This repository is open-source software licensed under the [MIT license](https://opensource.org/licenses/MIT). 31 | 32 |

Copyright © AlienWolfX 2025

33 | -------------------------------------------------------------------------------- /files/mifiservice_mod/.gitignore: -------------------------------------------------------------------------------- 1 | *.jar 2 | *.exe 3 | *.keystore 4 | java2smali/* 5 | Mifi/build/* 6 | Mif/* 7 | jadx-1.5.0/* 8 | dex-tools-v2.4/* 9 | Mifi/smali/* 10 | Mifi/unknown/* 11 | Mifi/AndroidManifest.xml 12 | Mifi/apktool.yml 13 | Mifi/res/* 14 | Mifi/original/* 15 | *.apk 16 | *.jadx 17 | *.project -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/D_HCP.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | DHCP 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
24 |

DHCP Setting

25 |
26 | 27 | 28 | 29 | 30 | 31 | 32 | 36 | 41 | 42 | 43 |
DHCP-IP192.168.100.1
DHCP-DNS 33 | 34 | 35 |
DHCP-Range 37 | 38 | 39 | 40 |
44 | 45 | 46 | 47 |
48 |
49 |
50 |
51 | 52 | 53 |
54 |
55 |

Current Devices

56 |
57 | 58 | 70 | 71 |
72 |
73 |
74 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/MacFilter.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Wi-Fi Security 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 | 25 |
26 |
27 |

Current Devices

28 |
29 | 30 | 43 |
44 |
45 |
46 |
47 |
48 |

MAC Address Filter 49 |
50 | 51 | 52 | 53 | 60 | 61 |
MAC List 54 | 59 |
62 | 63 |
64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 |
MACSave
73 |
74 | 75 |
76 | 77 |
78 |

79 | 80 | 81 |
82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/css/content.lst: -------------------------------------------------------------------------------- 1 | glob "*.css" mime text/css 2 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/css/layer.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /**layer组件样式**/ 3 | div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,input,button,textarea,p,blockquote,th,td,form { 4 | padding: 0; 5 | margin: 0; 6 | } 7 | 8 | * html { 9 | background-image: url(about:blank); 10 | background-attachment: fixed 11 | } 12 | 13 | .xubox_shade,.xubox_layer { 14 | position: fixed; 15 | _position: absolute; 16 | font-size:14px; 17 | } 18 | 19 | .xubox_shade { 20 | top: -500px; 21 | left: 0; 22 | width: 100%; 23 | height: 2000px; 24 | _height: expression(document.body.offsetHeight + "px") 25 | } 26 | 27 | .xubox_layer { 28 | background-color: black; 29 | color: black; 30 | top: 150px; 31 | left: 50%; 32 | height: auto; 33 | width: 310px; 34 | margin-left: -155px 35 | } 36 | 37 | .xubox_border,.xubox_title,.xubox_title i,.xubox_page,.xubox_iframe,.xubox_title em,.xubox_close,.xubox_msgico,.xubox_moves { 38 | position: absolute 39 | } 40 | 41 | .xubox_border { 42 | border-radius: 5px 43 | } 44 | 45 | .xubox_title { 46 | left: 0; 47 | top: 0 48 | } 49 | 50 | .xubox_main { 51 | position: relative; 52 | height: 100%; 53 | _float: left 54 | } 55 | 56 | .xubox_page { 57 | top: 0; 58 | left: 0; 59 | width: 100%; 60 | } 61 | 62 | .xubox_load { 63 | background: url(../img/xubox_loading0.gif) #fff center center no-repeat 64 | } 65 | 66 | .xubox_loading { 67 | display: block; 68 | float: left; 69 | text-decoration: none; 70 | color: #FFF; 71 | _float: none 72 | } 73 | 74 | .xulayer_png32 { 75 | background: url(../img/xubox_ico0.png) no-repeat 76 | } 77 | 78 | .xubox_moves { 79 | border: 3px solid #333; 80 | cursor: move; 81 | opacity: .7; 82 | filter: alpha(opacity = 70) 83 | } 84 | 85 | .xubox_msgico { 86 | width: 32px; 87 | height: 32px; 88 | top: 52px; 89 | left: 15px; 90 | background: url(../img/xubox_ico0.png) no-repeat 91 | } 92 | 93 | .xubox_text { 94 | padding-left: 55px; 95 | float: left; 96 | line-height: 25px; 97 | word-break: break-all; 98 | padding-right: 20px; 99 | overflow: hidden; 100 | font-size: 14px 101 | } 102 | 103 | .xubox_msgtype0 { 104 | background-position: -91px -38px 105 | } 106 | 107 | .xubox_msgtype1 { 108 | background-position: -128px -38px 109 | } 110 | 111 | .xubox_msgtype2 { 112 | background-position: -163px -38px 113 | } 114 | 115 | .xubox_msgtype3 { 116 | background-position: -91px -75px 117 | } 118 | 119 | .xubox_msgtype4 { 120 | background-position: -163px -75px 121 | } 122 | 123 | .xubox_msgtype5 { 124 | background-position: -163px -112px 125 | } 126 | 127 | .xubox_msgtype6 { 128 | background-position: -163px -148px 129 | } 130 | 131 | .xubox_msgtype7 { 132 | background-position: -128px -75px 133 | } 134 | 135 | .xubox_msgtype8 { 136 | background-position: -91px -6px 137 | } 138 | 139 | .xubox_msgtype9 { 140 | background-position: -129px -6px 141 | } 142 | 143 | .xubox_msgtype10 { 144 | background-position: -163px -6px 145 | } 146 | 147 | .xubox_msgtype11 { 148 | background-position: -206px -6px 149 | } 150 | 151 | .xubox_msgtype12 { 152 | background-position: -206px -44px 153 | } 154 | 155 | .xubox_msgtype13 { 156 | background-position: -206px -81px 157 | } 158 | 159 | .xubox_msgtype14 { 160 | background-position: -206px -122px 161 | } 162 | 163 | .xubox_msgtype15 { 164 | background-position: -206px -157px 165 | } 166 | 167 | .xubox_loading_0 { 168 | width: 37px; 169 | height: 37px; 170 | background: url(../images/xubox_loading0.gif) no-repeat 171 | } 172 | 173 | .xubox_loading_1 { 174 | width: 48px; 175 | height: 48px; 176 | background: url(../images/xubox_loading1.gif) no-repeat 177 | } 178 | 179 | .xubox_loading_2 { 180 | width: 32px; 181 | height: 32px; 182 | background: url(../images/xubox_loading2.gif) no-repeat 183 | } 184 | 185 | .xubox_loading_3 { 186 | width: 126px; 187 | height: 22px; 188 | background: url(../images/xubox_loading3.gif) no-repeat 189 | } 190 | 191 | .xubox_title { 192 | width: 100%; 193 | height: 35px; 194 | line-height: 35px; 195 | border-bottom: 1px solid #d5d5d5; 196 | background: url(../img/xubox_title0.png) #ebebeb repeat-x; 197 | cursor: move; 198 | font-size: 14px; 199 | color: #333 200 | } 201 | 202 | .xubox_title em { 203 | display: block; 204 | height: 20px; 205 | line-height: 20px; 206 | width: 80%; 207 | top: 9px; 208 | left: 10px; 209 | font-style: normal; 210 | overflow: hidden 211 | } 212 | 213 | .xubox_close0 { 214 | right: 10px; 215 | top: 10px; 216 | width: 14px; 217 | height: 14px; 218 | background-position: -31px -7px; 219 | cursor: pointer; 220 | overflow: hidden 221 | } 222 | 223 | .xubox_close0:hover { 224 | background-position: -51px -7px 225 | } 226 | 227 | .xubox_close1 { 228 | right: -20px; 229 | top: -21px; 230 | width: 34px; 231 | height: 30px; 232 | background-position: -5px -252px; 233 | cursor: pointer; 234 | overflow: hidden; 235 | _right: 3px; 236 | _top: 3px; 237 | _width: 14px; 238 | _height: 14px; 239 | _background-position: -31px -7px 240 | } 241 | 242 | .xubox_close1:hover { 243 | background-position: -44px -252px; 244 | _background-position: -51px -7px 245 | } 246 | 247 | .xubox_botton a { 248 | position: absolute; 249 | bottom: 10px; 250 | left: 50%; 251 | background: url(../img/xubox_ico0.png) repeat; 252 | text-decoration: none; 253 | color: #FFF; 254 | font-size: 14px; 255 | text-align: center; 256 | font-weight: bold; 257 | overflow: hidden 258 | } 259 | 260 | .xubox_botton a:hover { 261 | text-decoration: none; 262 | color: #FFF 263 | } 264 | 265 | .xubox_botton .xubox_botton1 { 266 | width: 79px; 267 | height: 32px; 268 | line-height: 32px; 269 | margin-left: -39px; 270 | background-position: -6px -34px 271 | } 272 | 273 | .xubox_botton1:hover { 274 | background-position: -6px -72px 275 | } 276 | 277 | .xubox_botton .xubox_botton2 { 278 | margin-left: -76px; 279 | width: 71px; 280 | height: 29px; 281 | line-height: 29px; 282 | background-position: -5px -114px 283 | } 284 | 285 | .xubox_botton2:hover { 286 | background-position: -5px -146px 287 | } 288 | 289 | .xubox_botton .xubox_botton3 { 290 | width: 71px; 291 | height: 29px; 292 | line-height: 29px; 293 | margin-left: 10px; 294 | background-position: -81px -114px 295 | } 296 | 297 | .xubox_botton3:hover { 298 | background-position: -81px -146px 299 | } 300 | 301 | .xubox_tips { 302 | position: relative; 303 | padding: 2px 30px 2px 10px; 304 | line-height: 20px; 305 | font-size: 12px; 306 | _float: left 307 | } 308 | 309 | .xubox_tips i.layerTipsG { 310 | position: absolute; 311 | width: 0; 312 | height: 0; 313 | border-width: 6px; 314 | border-color: transparent; 315 | border-style: dashed; 316 | *overflow: hidden 317 | } 318 | 319 | .xubox_tips i.layerTipsT { 320 | left: 12px; 321 | bottom: -12px; 322 | border-top-style: solid 323 | } 324 | 325 | .xubox_tips i.layerTipsR { 326 | left: -12px; 327 | top: 6px; 328 | border-right-style: solid 329 | } 330 | 331 | .xubox_tips i.layerTipsB { 332 | left: 12px; 333 | top: -12px; 334 | border-bottom-style: solid 335 | } 336 | 337 | .xubox_tips i.layerTipsL { 338 | right: -12px; 339 | top: 6px; 340 | border-left-style: solid 341 | } 342 | 343 | /**自定义等待层loading样式,非layer部分**/ 344 | .iLoading_overlay { 345 | position: fixed; 346 | top: 0; 347 | right: 0; 348 | bottom: 0; 349 | left: 0; 350 | z-index: 99999; 351 | width: 100%; 352 | height: 100%; 353 | padding: 0 0 0 0; 354 | background: rgba(0,0,0,0.5); 355 | opacity: 0.1; 356 | display: none; 357 | } 358 | .iLoading_showbox { 359 | min-height:90px; 360 | width:100px; 361 | position: fixed; 362 | left:50%; 363 | top:45%; 364 | margin-top:-50px; 365 | margin-left:-55px; 366 | background:rgba(0,0,0,0.5); 367 | z-index:120000; 368 | text-align:center; 369 | -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; 370 | display: none; 371 | padding: 5px 5px; 372 | } 373 | .iLoading_showbox p { color:#ffffff; font-size:16px;} 374 | .iLoading_showbox, .iLoading_overlay { 375 | top: expression(eval(document . documentElement . scrollTop) ); 376 | } 377 | .iLoading_loading_pic { 378 | background: url(../images/ajaxLoading.gif); 379 | background-size: 46px 46px; 380 | width:46px; 381 | height:46px; 382 | margin:10px auto; 383 | } 384 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/css/oldcommon.css: -------------------------------------------------------------------------------- 1 | 2 | .new { background-color: #F7F7F7; } 3 | 4 | .error { background-color: red; } 5 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/deviceInformation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Device Information 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
24 |

Device Information

25 |
26 | 27 | 28 | 29 | 30 | 31 | 32 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 |
IMEI 33 | 34 |
ManufacturerQualcomm Technology
Model
dbm:
44 |
45 |
46 |
47 |
48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/deviceOperation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Device Operation 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 |
26 |

Device Operation

27 |
28 | 29 | 30 | 31 | 34 | 35 | 36 | 37 | 38 | 41 | 42 |
Device Restart 32 | 33 |
FactoryReset 39 | 40 |
43 | 44 |
45 | 46 | 47 | 52 | 53 | 54 |
55 | 56 |
57 |
58 | 59 | 60 | Restarting,please wait 61 | 62 | 63 | 64 |
65 |
66 |
67 |
68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/help.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Help 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 |
28 |

Help Information

29 |
30 | 31 | 73 |
32 | 33 | 39 | Admin UI password

40 | 41 | Wi-Fi Password:Default Wi-Fi password is 1234567890.

42 | 48 | 49 | Admin User Interface (UI)

50 | 51 | 4G Info:Shows 4G IP address, Subnet Mask, DNS.

52 | 53 | 59 | Wi-Fi Settings:Configure Wi-Fi setting such as security, SSID, and password.

60 | 66 | 67 | DHCP Settings:Configure DHCP setting such as DHCP Settings, Current Devices.

68 | 69 | 70 | Advanced Settings:Shows device info, APN setting, SIM Information and resets the device to the factory default settings.

71 | 72 |
74 |
75 |
76 |
77 |
78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/Tab_button_off.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/Tab_button_off.gif -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/Tab_button_on.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/Tab_button_on.gif -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/content.lst: -------------------------------------------------------------------------------- 1 | glob "*.gif" mime image/gif 2 | glob "*.jpg" mime image/jpeg 3 | glob "*.png" mime image/png 4 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t11.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t12.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t13.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t21.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t23.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t31.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t32.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/dlg_t33.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/droid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/droid.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/end_page.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/end_page.jpg -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/header.jpg -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/header_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/header_bg.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/last_page.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/last_page.jpg -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/loading.gif -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/login-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/login-bg.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/menu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/menu.jpg -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/next_page.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/next_page.jpg -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/nobattery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/nobattery.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/progress.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/progress.gif -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/sprites.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/sprites.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/table_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/table_line.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/top_page.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/top_page.jpg -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/waitting.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/waitting.gif -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/xubox_ico0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/xubox_ico0.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/img/xubox_title0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/img/xubox_title0.png -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 4G Modem 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 85 | 86 | 87 | 88 |
89 |
90 |
91 |
92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 110 | 111 | 112 | 116 | 117 | 118 |
Username:
Password:
113 |   114 | 115 |
119 |
120 |
121 |
122 |
123 | 124 | 125 |
126 | Copyright © 2021-2024 All rights reserved.  127 | 128 |
129 | 130 | 131 | 132 | 133 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/D_HCP.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | // _loadCss("./css/layer.css"); 3 | init(); 4 | }); 5 | 6 | function init(){ 7 | var param = {funcNo:1011}; 8 | request(param,function(data){ 9 | var flag = data.flag; 10 | var error_info = data.error_info; 11 | 12 | if(flag == "1"){//正确 13 | var result = data.results[0]; 14 | if(result.ip){ 15 | $("#ip").html(result.ip); 16 | } 17 | if(result.dns1){ 18 | $("#dns1").val(result.dns1); 19 | } 20 | if (result.dns2) { 21 | $("#dns2").val(result.dns2); 22 | } 23 | if(result.range_low){ 24 | $("#range_low").val(result.range_low); 25 | } 26 | if(result.range_high){ 27 | $("#range_high").val(result.range_high); 28 | } 29 | if(result.device_arr){ 30 | showCurrentDev(result.device_arr); 31 | } 32 | }else{//错误 33 | Alert(mifi_translate(error_info)); 34 | } 35 | }); 36 | } 37 | 38 | function showCurrentDev(deviceAttr){ 39 | if(deviceAttr == "" || deviceAttr == undefined){ 40 | return; 41 | } 42 | var html = ""; 43 | for(var i = 0;i < deviceAttr.length;i++){ 44 | html += '' + i+1 +'' + deviceAttr[i].name + '' + deviceAttr[i].ip 45 | + '' + deviceAttr[i].mac + '' + deviceAttr[i].media + ''; 46 | } 47 | $("#list").show(); 48 | $("#table").append(html); 49 | } 50 | 51 | $("#apply").bind('click', function (e) { 52 | var param = { funcNo: 1012, dns1: $("#dns1").val(), dns2: $("#dns2").val() }; 53 | request(param,function(data){ 54 | var flag = data.flag; 55 | var error_info = data.error_info; 56 | 57 | if(flag == "1"){//正确 58 | return; 59 | }else{//错误 60 | alert(error_info); 61 | } 62 | }); 63 | }); 64 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/MacFilter.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | // _loadCss("./css/layer.css"); 3 | init(); 4 | init2(); 5 | InitMacList(); 6 | bindingEvents(); 7 | }); 8 | var cn = { 9 | "fail": "失败", 10 | "pass": "成功", 11 | "LegalPin": "请输入合法的WIFI密码!", 12 | "Set":"设置", 13 | "Save All": "全部保存", 14 | "invalidMac":"非法地址" 15 | 16 | 17 | 18 | }; 19 | 20 | var en = { 21 | "fail": "Fail", 22 | "pass": "Success", 23 | "LegalPin": "Please input legal WIFI password!", 24 | "Set": "Set", 25 | "Save All": "Save All", 26 | "invalidMac": "Invalid Address" 27 | 28 | }; 29 | function get_lan_mac(m) { 30 | //获取文字 31 | var lan = getCookie('language'); //语言版本 32 | //选取语言文字 33 | switch (lan) { 34 | case 'Chinese': 35 | var t = cn[m]; 36 | break; 37 | default: 38 | var t = en[m]; 39 | } 40 | 41 | //如果所选语言的json中没有此内容就选取其他语言显示 42 | if (t == undefined) t = cn[m]; 43 | if (t == undefined) t = en[m]; 44 | 45 | 46 | if (t == undefined) t = m; //如果还是没有就返回他的标识 47 | 48 | return t; 49 | } 50 | function init(){ 51 | 52 | 53 | } 54 | 55 | 56 | function InitMacList() { 57 | var param = { funcNo: 1052 }; 58 | request(param, function(data) { 59 | var flag = data.flag; 60 | var error_info = data.error_info; 61 | 62 | if (flag == "1") {//正确 63 | var result = data.results[0]; 64 | nType = result.type; //black list:0 white list:1 close:3 65 | 66 | var osel = document.getElementById("selectMactype"); //得到select的ID 67 | var opts = osel.getElementsByTagName("option"); 68 | if (nType == 0) { 69 | opts[0].selected = true; 70 | opts[1].selected = false; 71 | opts[2].selected = false; 72 | 73 | } else if (nType == 1) { 74 | opts[1].selected = true; 75 | opts[0].selected = false; 76 | opts[2].selected = false; 77 | } else if (nType == 3) { 78 | opts[2].selected = true; 79 | opts[1].selected = false; 80 | opts[0].selected = false; 81 | } 82 | $("#typename").html(nType); 83 | showMacList(result.info_arr); 84 | 85 | 86 | } else {//错误 87 | alert(error_info); 88 | } 89 | }); 90 | } 91 | function showMacList(deviceAttr) { 92 | if (deviceAttr == "" || deviceAttr == undefined) { 93 | return; 94 | } 95 | var html = ""; 96 | var temp = ""; 97 | var buttonIds = ["set1", "set2", "set3", "set4", "set5", "set6", "set7", "set8", "set9", "set10"]; 98 | var buttonidName; 99 | for (var i = 0; i < deviceAttr.length; i++) { 100 | buttonidName = buttonIds[i]; 101 | temp = ''; 102 | html += '' + deviceAttr[i].id + '' + temp + ' '; 103 | } 104 | 105 | html += '' + '' + ''; 106 | $("#list").show(); 107 | $("#table").append(html); 108 | } 109 | 110 | 111 | 112 | function setMacfilterList() { 113 | 114 | var obj = document.getElementById("selectMactype"); 115 | var index = obj.selectedIndex; //序号,取当前选中选项的序号 116 | var stat = obj.options[index].value; //获取值 117 | 118 | var param = { funcNo: 1053, type: stat }; 119 | request(param, function(data) { 120 | var flag = data.flag; 121 | var error_info = data.error_info; 122 | 123 | if (flag == "1") {//正确 124 | commitMacfilter(); 125 | 126 | } else {//错误 127 | alert(error_info); 128 | } 129 | }); 130 | } 131 | function validate_mac(ch) { 132 | if (ch >= 65 && ch <= 90) return true; 133 | if (ch >= 97 && ch <= 122) return true; 134 | if (ch >= 48 && ch <= 58) return true; 135 | return false; 136 | } 137 | function setMacfilterMac(nId, nMac) { 138 | var i, c; 139 | 140 | if (nMac.length == 17) { 141 | if (nMac.charAt(2) != ':' || nMac.charAt(5) != ':' || nMac.charAt(8) != ':' || nMac.charAt(11) != ':' || nMac.charAt(14) != ':') { 142 | Alert(mifi_translate('invalidMac')); 143 | return; 144 | } 145 | for (i = 0; i < nMac.length; ++i) { 146 | c = nMac.charCodeAt(i); 147 | if (!validate_mac(c)) { 148 | Alert(mifi_translate('invalidMac')); 149 | return; 150 | } 151 | } 152 | } 153 | else if(nMac.length == 0) { 154 | } 155 | else { 156 | Alert(mifi_translate('invalidMac')); 157 | return; 158 | } 159 | 160 | 161 | var param = { funcNo: 1054, id: nId, mac: nMac }; 162 | request(param, function(data) { 163 | var flag = data.flag; 164 | var error_info = data.error_info; 165 | 166 | if (flag == "1") {//正确 167 | 168 | Alert(mifi_translate('pass')); 169 | 170 | 171 | } else {//错误 172 | alert(error_info); 173 | } 174 | }); 175 | } 176 | 177 | function commitMacfilter() { 178 | var param = { funcNo: 1055 }; 179 | request(param, function(data) { 180 | var flag = data.flag; 181 | var error_info = data.error_info; 182 | 183 | if (flag == "1") {//正确 184 | Alert(mifi_translate('pass')); 185 | 186 | } else {//错误 187 | alert(error_info); 188 | } 189 | }); 190 | } 191 | 192 | 193 | //事件绑定 194 | bindingEvents = function() { 195 | $("#set1").die().live("click", function() { 196 | setMacfilterMac(1, $("#Macinput1").val()); 197 | 198 | }); 199 | $("#set2").die().live("click", function() { 200 | setMacfilterMac(2, $("#Macinput2").val()); 201 | }); 202 | $("#set3").die().live("click", function() { 203 | setMacfilterMac(3, $("#Macinput3").val()); 204 | }); 205 | $("#set4").die().live("click", function() { 206 | setMacfilterMac(4, $("#Macinput4").val()); 207 | }); 208 | $("#set5").die().live("click", function() { 209 | setMacfilterMac(5, $("#Macinput5").val()); 210 | }); 211 | $("#set6").die().live("click", function() { 212 | setMacfilterMac(6, $("#Macinput6").val()); 213 | }); 214 | $("#set7").die().live("click", function() { 215 | setMacfilterMac(7, $("#Macinput7").val()); 216 | }); 217 | $("#set8").die().live("click", function() { 218 | setMacfilterMac(8, $("#Macinput8").val()); 219 | }); 220 | $("#set9").die().live("click", function() { 221 | setMacfilterMac(9, $("#Macinput9").val()); 222 | }); 223 | $("#set10").die().live("click", function() { 224 | setMacfilterMac(10, $("#Macinput10").val()); 225 | }); 226 | 227 | $("#Submit1").die().live("click", function() { 228 | setMacfilterList(); 229 | 230 | }); 231 | } 232 | 233 | $("#selectMactype").bind('change', function(e) { 234 | 235 | 236 | }); 237 | 238 | function showMacList2(deviceAttr) { 239 | if (deviceAttr == "" || deviceAttr == undefined) { 240 | return; 241 | } 242 | var html = ""; 243 | var temp = ""; 244 | var buttonIds = ["set1", "set2", "set3", "set4", "set5", "set6", "set7", "set8", "set9", "set10"]; 245 | var buttonidName; 246 | for (var i = 0; i < deviceAttr.length; i++) { 247 | buttonidName = buttonIds[i]; 248 | temp = ''; 249 | html += '' + deviceAttr[i].id + '' + temp + ' '; 250 | } 251 | 252 | html += '' + '' + ''; 253 | $("#list").show(); 254 | $("#table").append(html); 255 | } 256 | 257 | function showCurrentDev(deviceAttr) { 258 | if (deviceAttr == "" || deviceAttr == undefined) { 259 | 260 | $("#list2").show(); 261 | $("#noData").show(); 262 | $("#table2").hide(); 263 | 264 | return; 265 | } 266 | var html = ""; 267 | var iTmp = 0; 268 | for (var i = 0; i < deviceAttr.length; i++) { 269 | iTmp = i + 1; 270 | html += '' + iTmp + '' + deviceAttr[i].name + '' + deviceAttr[i].ip 271 | + '' + deviceAttr[i].mac + '' + deviceAttr[i].media + ''; 272 | } 273 | $("#list2").show(); 274 | $("#table2").append(html); 275 | $("#noData").hide(); 276 | } 277 | function init2() { 278 | var param = { funcNo: 1011 }; 279 | request(param, function(data) { 280 | var flag = data.flag; 281 | var error_info = data.error_info; 282 | 283 | if (flag == "1") {//正确 284 | var result = data.results[0]; 285 | if (result.device_arr) { 286 | showCurrentDev(result.device_arr); 287 | } 288 | 289 | 290 | } else {//错误 291 | alert(error_info); 292 | } 293 | }); 294 | } 295 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/deviceInformation.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/js/deviceInformation.js -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/deviceOperation.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | // _loadCss("./css/layer.css"); 3 | init(); 4 | }); 5 | var cn = { 6 | "fail": "失败", 7 | "pass": "成功" 8 | 9 | 10 | }; 11 | 12 | var en = { 13 | "fail": "Fail", 14 | "pass": "Success" 15 | 16 | 17 | }; 18 | function get_lan_operation(m) { 19 | //获取文字 20 | var lan = getCookie('language'); //语言版本 21 | //选取语言文字 22 | switch (lan) { 23 | case 'Chinese': 24 | var t = cn[m]; 25 | break; 26 | default: 27 | var t = en[m]; 28 | } 29 | 30 | //如果所选语言的json中没有此内容就选取其他语言显示 31 | if (t == undefined) t = cn[m]; 32 | if (t == undefined) t = en[m]; 33 | 34 | 35 | if (t == undefined) t = m; //如果还是没有就返回他的标识 36 | 37 | return t; 38 | } 39 | function init() { 40 | document.getElementById("content2").style.display = "none"; 41 | 42 | } 43 | 44 | $("#restart").bind('click', function(e) { 45 | document.getElementById("content2").style.display = "inline"; 46 | var param = {funcNo:1013}; 47 | request(param,function(data){ 48 | var flag = data.flag; 49 | var error_info = data.error_info; 50 | 51 | if (flag == "1") {//正确 52 | Alert(mifi_translate('pass')); 53 | return; 54 | } else {//错误 55 | Alert(mifi_translate('fail')); 56 | Alert(mifi_translate(error_info)); 57 | } 58 | }); 59 | setTimeout(function() { 60 | location.reload(true); 61 | 62 | 63 | }, 80000); 64 | }); 65 | 66 | $("#factory").bind('click', function(e) { 67 | document.getElementById("content2").style.display = "inline"; 68 | var param = {funcNo:1014}; 69 | request(param,function(data){ 70 | var flag = data.flag; 71 | var error_info = data.error_info; 72 | 73 | if (flag == "1") {//正确 74 | Alert(mifi_translate('pass')); 75 | return; 76 | } else {//错误 77 | Alert(mifi_translate('fail')); 78 | Alert(mifi_translate(error_info)); 79 | } 80 | }); 81 | setTimeout(function() { 82 | location.reload(true); 83 | 84 | 85 | }, 60000); 86 | }); 87 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/index.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | // _loadCss("./css/layer.css"); 3 | init(); 4 | }); 5 | 6 | function init(){ 7 | if(getCookie("language") == null) 8 | { 9 | setCookie("language", "English"); //default is English 10 | window.location = 'index.html'; 11 | } 12 | var qqq = getCookie("language"); 13 | if(getCookie("language") == "Chinese") 14 | { 15 | $("#zh").html("简体中文"); 16 | $("#en").html("英文"); 17 | $("#ru").html("俄文"); 18 | $("#zh").attr("selected", "selected"); 19 | $("#en").removeAttr("selected"); 20 | $("#ru").removeAttr("selected"); 21 | document.getElementById("helpEn").style.display = "none"; 22 | document.getElementById("HelpZh").style.display = "inline"; 23 | } 24 | else if (getCookie("language") == "Russion") { 25 | $("#zh").html("китайский язык "); 26 | $("#en").html("английский"); 27 | $("#ru").html("русский язык"); 28 | $("#ru").attr("selected", "selected"); 29 | $("#en").removeAttr("selected"); 30 | $("#zh").removeAttr("selected"); 31 | document.getElementById("body6").style.display = "inline"; 32 | document.getElementById("body7").style.display = "none"; 33 | } 34 | else { 35 | $("#zh").html("Chinese"); 36 | $("#en").html("English"); 37 | $("#ru").html("Russion"); 38 | $("#en").attr("selected", "selected"); 39 | $("#zh").removeAttr("selected"); 40 | $("#ru").removeAttr("selected"); 41 | document.getElementById("body6").style.display = "inline"; 42 | document.getElementById("body7").style.display = "none"; 43 | 44 | } 45 | } 46 | 47 | $("#select").bind('change', function (e) { 48 | if($("#en").attr("selected") == "selected"){ 49 | $("#en").attr("selected","selected"); 50 | $("#zh").removeAttr("selected"); 51 | $("#ru").removeAttr("selected"); 52 | setCookie("language","English"); 53 | window.location = 'index.html'; 54 | }else if($("#zh").attr("selected") == "selected"){ 55 | $("#zh").attr("selected","selected"); 56 | $("#en").removeAttr("selected"); 57 | $("#ru").removeAttr("selected"); 58 | setCookie("language","Chinese"); 59 | window.location = 'index.html'; 60 | } 61 | else { 62 | $("#ru").attr("selected", "selected"); 63 | $("#zh").removeAttr("selected"); 64 | $("#en").removeAttr("selected"); 65 | setCookie("language", "Russion"); 66 | window.location = 'index.html'; 67 | } 68 | }); 69 | 70 | $("#frm").bind('keypress', function (e) { 71 | if (e.keyCode == 13){ 72 | if(verify()){ 73 | login(); 74 | } 75 | } 76 | }); 77 | 78 | $("#login").bind('click', function (e) { 79 | if(verify()){ 80 | login(); 81 | } 82 | }); 83 | 84 | function verify(){ 85 | 86 | var username = $("#username").val(); 87 | var password = $("#password").val(); 88 | 89 | if(username == ""){ 90 | Alert(mifi_translate('Please input username')); 91 | return false; 92 | } 93 | if(password == ""){ 94 | Alert(mifi_translate('Please input password')); 95 | return false; 96 | } 97 | return true; 98 | } 99 | 100 | function login(){ 101 | 102 | var user = $("#username").val(); 103 | var pwd = $("#password").val(); 104 | var param = {funcNo:1000,username:user,password:pwd}; 105 | request(param,function(data){ 106 | var flag = data.flag; 107 | var error_info = data.error_info; 108 | 109 | if(flag == "1"){//正确 110 | var result = data.results[0]; 111 | //保存需要的数据 112 | $.session.set("conn_mode", result.conn_mode);//自动连接or手动连接 113 | $.session.set("net_mode", result.net_mode);//0:Auto,1:3G Only,2:4G Only 114 | $.session.set("imei", result.imei);//IMEI 115 | $.session.set("fwversion", result.fwversion);//sw 116 | 117 | window.location = "main.html";//跳转到主页面 118 | }else{//错误 119 | Alert(mifi_translate(error_info)); 120 | } 121 | }); 122 | 123 | } 124 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/main.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | // _loadCss("./css/layer.css"); 3 | setInterval(init, 5000); 4 | init(); 5 | }); 6 | var cn = { 7 | connected: "网络已连接", 8 | disconnected: "网络已断开", 9 | UNKNOWN: "未知", 10 | }; 11 | 12 | var en = { 13 | connected: "Connected", 14 | disconnected: "Disconnected", 15 | UNKNOWN: "UNKNOWN", 16 | }; 17 | function get_lan_main(m) { 18 | //获取文字 19 | var lan = getCookie("language"); //语言版本 20 | //选取语言文字 21 | switch (lan) { 22 | case "Chinese": 23 | var t = cn[m]; 24 | break; 25 | default: 26 | var t = en[m]; 27 | } 28 | 29 | //如果所选语言的json中没有此内容就选取其他语言显示 30 | if (t == undefined) t = cn[m]; 31 | if (t == undefined) t = en[m]; 32 | 33 | if (t == undefined) t = m; //如果还是没有就返回他的标识 34 | 35 | return t; 36 | } 37 | function init() { 38 | var param = { funcNo: 1001 }; 39 | 40 | var isEn = 0; 41 | var b = "Connected"; 42 | var c = "UNKNOWN"; 43 | 44 | if (getCookie("language") == null) { 45 | setCookie("language", "English"); //default is English 46 | window.location = "main.html"; 47 | } 48 | request(param, function (data) { 49 | var flag = data.flag; 50 | var error_info = data.error_info; 51 | 52 | if (flag == "1") { 53 | // 54 | var result = data.results[0]; 55 | if (result.rssi) { 56 | // 57 | mifi_signal_bar(result.rssi); 58 | } 59 | if (result.netmode) { 60 | // 61 | if (result.netmode.toLowerCase() == c.toLowerCase()) 62 | $("#network1").html(mifi_translate("UNKNOWN")); 63 | else $("#network1").html(result.netmode); 64 | } 65 | if (result.oper) { 66 | // 67 | $("#operation").html(result.oper); 68 | } 69 | 70 | if (result.netstatus) { 71 | // 72 | if (result.netstatus.toLowerCase() == b.toLowerCase()) 73 | $("#activate").html(mifi_translate("connected")); 74 | else $("#activate").html(mifi_translate("disconnected")); 75 | } 76 | } else { 77 | //���� 78 | Alert(mifi_translate(error_info)); 79 | } 80 | }); 81 | var qqq = getCookie("language"); 82 | if (getCookie("language") == "Chinese") { 83 | $("#zh").html("简体中文"); 84 | $("#en").html("英文"); 85 | $("#ru").html("俄文"); 86 | $("#zh").attr("selected", "selected"); 87 | $("#en").removeAttr("selected"); 88 | $("#ru").removeAttr("selected"); 89 | 90 | // Add null checks before accessing style 91 | var helpEn = document.getElementById("helpEn"); 92 | var helpZh = document.getElementById("HelpZh"); 93 | if (helpEn) helpEn.style.display = "none"; 94 | if (helpZh) helpZh.style.display = "inline"; 95 | } else if (getCookie("language") == "Russion") { 96 | $("#zh").html("китайский язык "); 97 | $("#en").html("английский"); 98 | $("#ru").html("русский язык"); 99 | $("#ru").attr("selected", "selected"); 100 | $("#en").removeAttr("selected"); 101 | $("#zh").removeAttr("selected"); 102 | 103 | // Add null checks before accessing style 104 | var body6 = document.getElementById("body6"); 105 | var body7 = document.getElementById("body7"); 106 | if (body6) body6.style.display = "inline"; 107 | if (body7) body7.style.display = "none"; 108 | } else { 109 | $("#zh").html("Chinese"); 110 | $("#en").html("English"); 111 | $("#ru").html("Russion"); 112 | $("#en").attr("selected", "selected"); 113 | $("#zh").removeAttr("selected"); 114 | $("#ru").removeAttr("selected"); 115 | 116 | // Add null checks before accessing style 117 | var body6 = document.getElementById("body6"); 118 | var body7 = document.getElementById("body7"); 119 | if (body6) body6.style.display = "inline"; 120 | if (body7) body7.style.display = "none"; 121 | } 122 | } 123 | $("#select").bind("change", function (e) { 124 | if ($("#en").attr("selected") == "selected") { 125 | $("#en").attr("selected", "selected"); 126 | $("#zh").removeAttr("selected"); 127 | $("#ru").removeAttr("selected"); 128 | setCookie("language", "English"); 129 | window.location = "main.html"; 130 | } else if ($("#zh").attr("selected") == "selected") { 131 | $("#zh").attr("selected", "selected"); 132 | $("#en").removeAttr("selected"); 133 | $("#ru").removeAttr("selected"); 134 | setCookie("language", "Chinese"); 135 | window.location = "main.html"; 136 | } else { 137 | $("#ru").attr("selected", "selected"); 138 | $("#zh").removeAttr("selected"); 139 | $("#en").removeAttr("selected"); 140 | setCookie("language", "Russion"); 141 | window.location = "main.html"; 142 | } 143 | }); 144 | 145 | //�ź�ǿ�ȴ��� 146 | function mifi_signal_bar(signalnum) { 147 | switch (signalnum) { 148 | case 0: 149 | document.getElementById("signal_grid").className = "rssi0"; 150 | break; 151 | case 1: 152 | document.getElementById("signal_grid").className = "rssi1"; 153 | break; 154 | case 2: 155 | document.getElementById("signal_grid").className = "rssi2"; 156 | break; 157 | case 3: 158 | document.getElementById("signal_grid").className = "rssi3"; 159 | break; 160 | case 4: 161 | document.getElementById("signal_grid").className = "rssi4"; 162 | break; 163 | case 5: 164 | document.getElementById("signal_grid").className = "rssi5"; 165 | break; 166 | default: 167 | document.getElementById("signal_grid").className = "rssi0"; 168 | break; 169 | } 170 | } 171 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/modifyPwd.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | // _loadCss("./css/layer.css"); 3 | init(); 4 | }); 5 | var cn = { 6 | "fail" : "失败", 7 | "pass" : "成功", 8 | "inputOldpin": "请输入旧密码!", 9 | "inputLegalpin": "请输入合法密码!", 10 | "inputnewpin": "请输入新密码!", 11 | "cannotSame": "新密码不能与旧密码一样!", 12 | "modifyOk": "修改成功!" 13 | 14 | }; 15 | 16 | var en = { 17 | "fail": "Fail", 18 | "pass": "Success", 19 | "inputOldpin": "Please input old password!", 20 | "inputLegalpin": "Please input legal password!", 21 | "inputnewpin": "Please input new password!", 22 | "cannotSame": "The new password can not be the same as the old password!", 23 | "modifyOk": "Successful modification!" 24 | 25 | }; 26 | function get_lan_modifypwd(m) { 27 | //获取文字 28 | var lan = getCookie('language'); //语言版本 29 | //选取语言文字 30 | switch (lan) { 31 | case 'Chinese': 32 | var t = cn[m]; 33 | break; 34 | default: 35 | var t = en[m]; 36 | } 37 | 38 | //如果所选语言的json中没有此内容就选取其他语言显示 39 | if (t == undefined) t = cn[m]; 40 | if (t == undefined) t = en[m]; 41 | 42 | 43 | if (t == undefined) t = m; //如果还是没有就返回他的标识 44 | 45 | return t; 46 | } 47 | function init(){ 48 | 49 | } 50 | 51 | $("#apply").bind('click', function(e) { 52 | 53 | var oldpwd = $("#oldpwd").val(); 54 | var newpwd = $("#newpwd").val(); 55 | var reg = /^[a-zA-Z0-9]$/; 56 | 57 | if (oldpwd == "") { 58 | //Alert("Please input old password!"); 59 | Alert(mifi_translate('inputOldpin')); 60 | return; 61 | } 62 | /* 63 | if(!reg.test(oldpwd)){ 64 | Alert("Please input legal password!"); 65 | return; 66 | } 67 | */ 68 | if (newpwd == "") { 69 | //Alert("Please input new password!"); 70 | Alert(mifi_translate('inputnewpin')); 71 | return; 72 | } 73 | /* 74 | if(!reg.test(newpwd)){ 75 | Alert("Please input legal password!"); 76 | return; 77 | } 78 | */ 79 | if (oldpwd == newpwd) { 80 | //Alert("The new password can not be the same as the old password!"); 81 | Alert(mifi_translate('cannotSame')); 82 | //Alert(lang["The new password can not be the same as the old password!"]); 83 | return; 84 | } 85 | 86 | var param = { "funcNo": 1020, 87 | "oldpwd": oldpwd, 88 | "newpwd": newpwd 89 | }; 90 | request(param, function(data) { 91 | var flag = data.flag; 92 | var error_info = data.error_info; 93 | 94 | if (flag == "1") {//正确 95 | // Alert("Successful modification!"); 96 | Alert(mifi_translate('modifyOk')); 97 | return; 98 | } else {//错误 99 | Alert(mifi_translate(error_info)); 100 | } 101 | }); 102 | }); 103 | 104 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/ms.js: -------------------------------------------------------------------------------- 1 | var mode = "0"; 2 | 3 | $(function () { 4 | init(); 5 | updateStatusIndicators(); 6 | }); 7 | 8 | function init() { 9 | var param = { funcNo: 1021 }; 10 | request(param, function (data) { 11 | var flag = data.flag; 12 | var error_info = data.error_info; 13 | 14 | if (flag == "1") { 15 | //正确 16 | var result = data.results[0]; 17 | if (result.mode == "1") { 18 | $("#radio").attr("onoroff", "on"); 19 | $("#radio").attr("checked", "checked"); 20 | } 21 | } else { 22 | //错误 23 | Alert(mifi_translate(error_info)); 24 | } 25 | }); 26 | } 27 | 28 | function updateStatusIndicators() { 29 | // Check debug mode status 30 | var param = { funcNo: 1021 }; 31 | request(param, function (data) { 32 | if (data.flag == "1") { 33 | var result = data.results[0]; 34 | if (result.mode == "1") { 35 | $("#debug_status").addClass("status-active"); 36 | $("#radio").prop("checked", true); 37 | // Enable ADB when DIAG is active 38 | $("#adb_status").addClass("status-active"); 39 | $("#adb").prop("checked", true); 40 | } else { 41 | $("#debug_status").removeClass("status-active"); 42 | $("#radio").prop("checked", false); 43 | } 44 | } 45 | }); 46 | } 47 | 48 | $("#radio").on("change", function () { 49 | if (this.checked) { 50 | if ( 51 | confirm( 52 | "Are you sure you want to enable debug mode? This will also enable ADB." 53 | ) 54 | ) { 55 | var param = { funcNo: 1022, mode: "1" }; 56 | request(param, function (data) { 57 | if (data.flag == "1") { 58 | Alert("Debug mode and ADB enabled"); 59 | $("#debug_status").addClass("status-active"); 60 | // Also enable ADB 61 | $("#adb_status").addClass("status-active"); 62 | $("#adb").prop("checked", true); 63 | } else { 64 | Alert(mifi_translate(data.error_info)); 65 | $(this).prop("checked", false); 66 | } 67 | }); 68 | } else { 69 | $(this).prop("checked", false); 70 | } 71 | } else { 72 | var param = { funcNo: 1022, mode: "0" }; 73 | request(param, function (data) { 74 | if (data.flag == "1") { 75 | Alert("Debug mode disabled"); 76 | $("#debug_status").removeClass("status-active"); 77 | // Also disable ADB 78 | $("#adb_status").removeClass("status-active"); 79 | $("#adb").prop("checked", false); 80 | } else { 81 | Alert(mifi_translate(data.error_info)); 82 | $(this).prop("checked", true); 83 | } 84 | }); 85 | } 86 | }); 87 | 88 | $("#adb").on("change", function () { 89 | if (this.checked) { 90 | if (confirm("Are you sure you want to enable ADB?")) { 91 | var param = { funcNo: 1022 }; 92 | request(param, function (data) { 93 | if (data.flag == "1") { 94 | Alert("ADB enabled"); 95 | $("#adb_status").addClass("status-active"); 96 | } else { 97 | Alert(mifi_translate(data.error_info)); 98 | $(this).prop("checked", false); 99 | } 100 | }); 101 | } else { 102 | $(this).prop("checked", false); 103 | } 104 | } else { 105 | var param = { funcNo: 1022, mode: "0" }; 106 | request(param, function (data) { 107 | if (data.flag == "1") { 108 | Alert("ADB disabled"); 109 | $("#adb_status").removeClass("status-active"); 110 | } else { 111 | Alert(mifi_translate(data.error_info)); 112 | $(this).prop("checked", true); 113 | } 114 | }); 115 | } 116 | }); 117 | 118 | $("#bootloader").on("click", function () { 119 | if (confirm("Are you sure you want to reboot to bootloader?")) { 120 | var param = { funcNo: 2000 }; 121 | request(param, function (data) { 122 | if (data.flag == "1") { 123 | Alert("Rebooting to bootloader..."); 124 | } else { 125 | Alert(mifi_translate(data.error_info)); 126 | } 127 | }); 128 | } 129 | }); 130 | 131 | $("#apply").bind("click", function (e) { 132 | window.location.reload(); 133 | }); 134 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/netsel.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | // _loadCss("./css/layer.css"); 3 | init(); 4 | }); 5 | 6 | var cn = { 7 | "fail" : "失败", 8 | "pass" : "成功", 9 | 10 | }; 11 | 12 | var en = { 13 | "fail": "Fail", 14 | "pass": "Success" 15 | 16 | }; 17 | function init(){ 18 | var net_mode = $.session.get("net_mode"); 19 | if(net_mode == 0){ 20 | $("option").removeAttr("selected"); 21 | $("option:eq(0)").attr("selected","selected"); 22 | }else if(net_mode == 1){ 23 | $("option").removeAttr("selected"); 24 | $("option:eq(1)").attr("selected","selected"); 25 | }else if(net_mode == 2){ 26 | $("option").removeAttr("selected"); 27 | $("option:eq(2)").attr("selected","selected"); 28 | } 29 | } 30 | 31 | $("#select").bind('change', function (e) { 32 | if($("option:eq(0)").attr("selected") == "selected"){ 33 | $("option").removeAttr("selected"); 34 | $("option:eq(0)").attr("selected","selected"); 35 | }else if($("option:eq(1)").attr("selected") == "selected"){ 36 | $("option").removeAttr("selected"); 37 | $("option:eq(1)").attr("selected","selected"); 38 | }else if($("option:eq(2)").attr("selected") == "selected"){ 39 | $("option").removeAttr("selected"); 40 | $("option:eq(2)").attr("selected","selected"); 41 | } 42 | }); 43 | 44 | $("#apply").bind('click', function (e) { 45 | var stat; 46 | 47 | 48 | if($("option:eq(0)").attr("selected") == "selected"){ 49 | stat = $("option:eq(0)").val(); 50 | }else if($("option:eq(1)").attr("selected") == "selected"){ 51 | stat = $("option:eq(1)").val(); 52 | }else if($("option:eq(2)").attr("selected") == "selected"){ 53 | stat = $("option:eq(2)").val(); 54 | } 55 | var param = {funcNo:1005,net_mode:stat}; 56 | request(param,function(data){ 57 | var flag = data.flag; 58 | var error_info = data.error_info; 59 | 60 | if(flag == "1"){//正确 61 | $.session.set("net_mode", stat); 62 | Alert(mifi_translate('pass')); 63 | return; 64 | }else{//错误 65 | Alert(mifi_translate('fail')); 66 | Alert(mifi_translate(error_info)); 67 | } 68 | }); 69 | }); 70 | 71 | function get_lan(m) { 72 | //获取文字 73 | var lan = getCookie('language'); //语言版本 74 | //选取语言文字 75 | switch (lan) { 76 | case 'Chinese': 77 | var t = cn[m]; 78 | break; 79 | default: 80 | var t = en[m]; 81 | } 82 | 83 | //如果所选语言的json中没有此内容就选取其他语言显示 84 | if (t == undefined) t = cn[m]; 85 | if (t == undefined) t = en[m]; 86 | 87 | 88 | if (t == undefined) t = m; //如果还是没有就返回他的标识 89 | 90 | return t; 91 | } -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/plugins/jquerysession.js: -------------------------------------------------------------------------------- 1 | (function($){ 2 | 3 | $.session = { 4 | 5 | _id: null, 6 | 7 | _cookieCache: undefined, 8 | 9 | _init: function() 10 | { 11 | if (!window.name) { 12 | window.name = Math.random(); 13 | } 14 | this._id = window.name; 15 | this._initCache(); 16 | 17 | // See if we've changed protcols 18 | 19 | var matches = (new RegExp(this._generatePrefix() + "=([^;]+);")).exec(document.cookie); 20 | if (matches && document.location.protocol !== matches[1]) { 21 | this._clearSession(); 22 | for (var key in this._cookieCache) { 23 | try { 24 | window.sessionStorage.setItem(key, this._cookieCache[key]); 25 | } catch (e) {}; 26 | } 27 | } 28 | 29 | document.cookie = this._generatePrefix() + "=" + document.location.protocol + ';path=/;expires=' + (new Date((new Date).getTime() + 120000)).toUTCString(); 30 | 31 | }, 32 | 33 | _generatePrefix: function() 34 | { 35 | return '__session:' + this._id + ':'; 36 | }, 37 | 38 | _initCache: function() 39 | { 40 | var cookies = document.cookie.split(';'); 41 | this._cookieCache = {}; 42 | for (var i in cookies) { 43 | var kv = cookies[i].split('='); 44 | if ((new RegExp(this._generatePrefix() + '.+')).test(kv[0]) && kv[1]) { 45 | this._cookieCache[kv[0].split(':', 3)[2]] = kv[1]; 46 | } 47 | } 48 | }, 49 | 50 | _setFallback: function(key, value, onceOnly) 51 | { 52 | var cookie = this._generatePrefix() + key + "=" + value + "; path=/"; 53 | if (onceOnly) { 54 | cookie += "; expires=" + (new Date(Date.now() + 120000)).toUTCString(); 55 | } 56 | document.cookie = cookie; 57 | this._cookieCache[key] = value; 58 | return this; 59 | }, 60 | 61 | _getFallback: function(key) 62 | { 63 | if (!this._cookieCache) { 64 | this._initCache(); 65 | } 66 | return this._cookieCache[key]; 67 | }, 68 | 69 | _clearFallback: function() 70 | { 71 | for (var i in this._cookieCache) { 72 | document.cookie = this._generatePrefix() + i + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 73 | } 74 | this._cookieCache = {}; 75 | }, 76 | 77 | _deleteFallback: function(key) 78 | { 79 | document.cookie = this._generatePrefix() + key + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 80 | delete this._cookieCache[key]; 81 | }, 82 | 83 | get: function(key) 84 | { 85 | return window.sessionStorage.getItem(key) || this._getFallback(key); 86 | }, 87 | 88 | set: function(key, value, onceOnly) 89 | { 90 | try { 91 | window.sessionStorage.setItem(key, value); 92 | } catch (e) {} 93 | this._setFallback(key, value, onceOnly || false); 94 | return this; 95 | }, 96 | 97 | 'delete': function(key){ 98 | return this.remove(key); 99 | }, 100 | 101 | remove: function(key) 102 | { 103 | try { 104 | window.sessionStorage.removeItem(key); 105 | } catch (e) {}; 106 | this._deleteFallback(key); 107 | return this; 108 | }, 109 | 110 | _clearSession: function() 111 | { 112 | try { 113 | window.sessionStorage.clear(); 114 | } catch (e) { 115 | for (var i in window.sessionStorage) { 116 | window.sessionStorage.removeItem(i); 117 | } 118 | } 119 | }, 120 | 121 | clear: function() 122 | { 123 | this._clearSession(); 124 | this._clearFallback(); 125 | return this; 126 | } 127 | 128 | }; 129 | 130 | $.session._init(); 131 | 132 | })(jQuery); -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/shell.js: -------------------------------------------------------------------------------- 1 | function executeCommand() { 2 | const cmd = document.getElementById("cmdInput").value; 3 | const output = document.getElementById("output"); 4 | 5 | const data = { 6 | funcNo: "1020", 7 | cmd: cmd, 8 | }; 9 | 10 | fetch("http://192.168.100.1/ajax", { 11 | method: "POST", 12 | headers: { 13 | "Content-Type": "application/json", 14 | Accept: "application/json", 15 | }, 16 | body: JSON.stringify(data), 17 | }) 18 | .then((response) => response.json()) 19 | .then((result) => { 20 | const timestamp = new Date().toLocaleTimeString(); 21 | 22 | // Create command line element 23 | const cmdLine = document.createElement("div"); 24 | cmdLine.className = "cmd-line"; 25 | cmdLine.textContent = `[${timestamp}] $ ${cmd}`; 26 | output.appendChild(cmdLine); 27 | 28 | // Create output element 29 | if (result.flag === "1") { 30 | const cmdOutput = document.createElement("pre"); 31 | cmdOutput.className = "cmd-output"; 32 | cmdOutput.textContent = result.result; 33 | output.appendChild(cmdOutput); 34 | } else { 35 | const cmdError = document.createElement("div"); 36 | cmdError.className = "cmd-error"; 37 | cmdError.textContent = `Command failed: ${result.result}`; 38 | output.appendChild(cmdError); 39 | } 40 | 41 | output.scrollTop = output.scrollHeight; 42 | }) 43 | .catch((error) => { 44 | const errorDiv = document.createElement("div"); 45 | errorDiv.className = "cmd-error"; 46 | errorDiv.textContent = `Error: ${error.message}`; 47 | output.appendChild(errorDiv); 48 | output.scrollTop = output.scrollHeight; 49 | }); 50 | 51 | document.getElementById("cmdInput").value = ""; 52 | } 53 | 54 | function clearOutput() { 55 | document.getElementById("output").innerHTML = ""; 56 | } 57 | 58 | document.addEventListener("DOMContentLoaded", function () { 59 | document 60 | .getElementById("cmdInput") 61 | .addEventListener("keypress", function (e) { 62 | if (e.key === "Enter") { 63 | executeCommand(); 64 | } 65 | }); 66 | }); 67 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/sim.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | // _loadCss("./css/layer.css"); 3 | setInterval(update,20000); 4 | update(); 5 | }); 6 | var cn = { 7 | "Ready": "就绪", 8 | "Absent" : "无SIM卡", 9 | "Pin Required" : "Pin锁", 10 | "PUK Required" : "PUK锁", 11 | "Network Locked" : "网络锁" 12 | 13 | 14 | 15 | }; 16 | 17 | var en = { 18 | "Ready": "Ready", 19 | "Absent": "Absent", 20 | "Pin Required": "Pin Required", 21 | "PUK Required": "PUK Required", 22 | "Network Locked": "Network Locked" 23 | 24 | }; 25 | function get_SIM(m) { 26 | //获取文字 27 | var lan = getCookie('language'); //语言版本 28 | //选取语言文字 29 | switch (lan) { 30 | case 'Chinese': 31 | var t = cn[m]; 32 | break; 33 | default: 34 | var t = en[m]; 35 | } 36 | 37 | //如果所选语言的json中没有此内容就选取其他语言显示 38 | if (t == undefined) t = cn[m]; 39 | if (t == undefined) t = en[m]; 40 | 41 | 42 | if (t == undefined) t = m; //如果还是没有就返回他的标识 43 | 44 | return t; 45 | } 46 | function update(){ 47 | var param = {funcNo:1015}; 48 | request(param, function(data) { 49 | var flag = data.flag; 50 | var error_info = data.error_info; 51 | var b = "ready"; 52 | var d = "Absent"; 53 | var e = "Pin Required"; 54 | var f = "PUK Required"; 55 | var g = "Network Locked"; 56 | 57 | if (flag == "1") {//正确 58 | var result = data.results[0]; 59 | if (result.sim_status) { 60 | if (result.sim_status.toLowerCase() == b) 61 | $("#simsta").html(mifi_translate('Ready')); 62 | else if (result.sim_status.toLowerCase() == d.toLowerCase()) 63 | $("#simsta").html(mifi_translate('Absent')); 64 | else if (result.sim_status.toLowerCase() == e.toLowerCase()) 65 | $("#simsta").html(mifi_translate('Pin Required')); 66 | else if (result.sim_status.toLowerCase() == f.toLowerCase()) 67 | $("#simsta").html(mifi_translate('PUK Required')); 68 | else if (result.sim_status.toLowerCase() == g.toLowerCase()) 69 | $("#simsta").html(mifi_translate('Network Locked')); 70 | else 71 | $("#simsta").html(result.sim_status); 72 | } 73 | if (result.imsi) { 74 | $("#sim_imsi").html(result.imsi); 75 | } 76 | if (result.iccid) { 77 | $("#sim_iccid").html(result.iccid); 78 | } 79 | } else {//错误 80 | Alert(mifi_translate(error_info)); 81 | } 82 | }); 83 | } 84 | 85 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/status.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | // _loadCss("./css/layer.css"); 3 | setInterval(update,5000); 4 | update(); 5 | setInterval(update2,5000); 6 | update2(); 7 | init(); 8 | }); 9 | var cn = { 10 | "fail" : "失败", 11 | "pass" : "成功", 12 | 13 | }; 14 | 15 | var en = { 16 | "fail": "Fail", 17 | "pass": "Success" 18 | 19 | }; 20 | 21 | function get_lan_status(m) { 22 | //获取文字 23 | var lan = getCookie('language'); //语言版本 24 | //选取语言文字 25 | switch (lan) { 26 | case 'Chinese': 27 | var t = cn[m]; 28 | break; 29 | default: 30 | var t = en[m]; 31 | } 32 | 33 | //如果所选语言的json中没有此内容就选取其他语言显示 34 | if (t == undefined) t = cn[m]; 35 | if (t == undefined) t = en[m]; 36 | 37 | 38 | if (t == undefined) t = m; //如果还是没有就返回他的标识 39 | 40 | return t; 41 | } 42 | function init(){ 43 | var conn_mode = $.session.get("conn_mode"); 44 | if(conn_mode == "1"){//手动 45 | $("#manual").attr("selected","selected"); 46 | $("#auto").removeAttr("selected"); 47 | }else{//auto 48 | $("#auto").attr("selected","selected"); 49 | $("#manual").removeAttr("selected"); 50 | } 51 | 52 | } 53 | 54 | function update2(){ 55 | var param = {funcNo:1002}; 56 | request(param,function(data){ 57 | var flag = data.flag; 58 | var error_info = data.error_info; 59 | 60 | if(flag == "1"){//正确 61 | var result = data.results[0]; 62 | if(result.IP){//IP 63 | $("#mifi_ip").html(result.IP); 64 | } 65 | if(result.mask){//掩码 66 | $("#g3_mask").html(result.mask); 67 | } 68 | if(result.dns1){//DNS 69 | $("#g3_dns").html(result.dns1); 70 | } 71 | if (result.dns2) {//DNS 72 | $("#g3_dns2").html(result.dns2); 73 | } 74 | if(result.ssid){//ssid 75 | $("#ssid").html(result.ssid); 76 | } 77 | if(result.wlan_ip){//wlan IP 78 | $("#wlan_ip").html(result.wlan_ip); 79 | } 80 | if (result.pwd) {//密码 81 | $("#password").html(result.pwd); 82 | } 83 | }else{//错误 84 | Alert(mifi_translate(error_info)); 85 | } 86 | }); 87 | } 88 | function update(){ 89 | var param = {funcNo:1003}; 90 | request(param,function(data){ 91 | var flag = data.flag; 92 | var error_info = data.error_info; 93 | 94 | if(flag == "1"){//正确 95 | var result = data.results[0]; 96 | 97 | $("#mifi_tx_data").html(parseInt(result.up_bytes) + " KB"); 98 | $("#mifi_rx_data").html(parseInt(result.down_bytes) + " KB"); 99 | $("#client_num").html(result.client_num + " / " + result.maxSta); 100 | //Alert(get_lan_status('pass')); 101 | 102 | }else{//错误 103 | Alert(mifi_translate('fail')); 104 | Alert(mifi_translate(error_info)); 105 | 106 | } 107 | }); 108 | } 109 | 110 | $("#connect").bind('change', function (e) { 111 | if($("#manual").attr("selected") == "selected"){ 112 | $("#manual").attr("selected","selected"); 113 | $("#auto").removeAttr("selected"); 114 | }else{ 115 | $("#auto").attr("selected","selected"); 116 | $("#manual").removeAttr("selected"); 117 | } 118 | }); 119 | 120 | $("#apply").bind('click', function (e) { 121 | var connmode; 122 | 123 | if($("#auto").attr("selected") == "selected"){ 124 | connmode = $("#auto").val(); 125 | }else if($("#manual").attr("selected") == "selected"){ 126 | connmode = $("#manual").val(); 127 | } 128 | var param = {funcNo:1004,conn_mode:connmode}; 129 | request(param,function(data){ 130 | var flag = data.flag; 131 | var error_info = data.error_info; 132 | 133 | if(flag == "1"){//正确 134 | $.session.set("conn_mode", connmode); 135 | Alert(mifi_translate('pass')); 136 | return; 137 | }else{//错误 138 | Alert(mifi_translate('fail')); 139 | Alert(mifi_translate(error_info)); 140 | } 141 | }); 142 | }); 143 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/upgrade.js: -------------------------------------------------------------------------------- 1 |  2 | $(function(){ 3 | // _loadCss("./css/layer.css"); 4 | init(); 5 | $("#progressTR").hide(); 6 | update2(); 7 | }); 8 | var cn = { 9 | "fail": "失败", 10 | "pass": "成功", 11 | "Name: ": "名称: ", 12 | "Size: ": "大小: ", 13 | 14 | 15 | }; 16 | 17 | var en = { 18 | "fail": "Fail", 19 | "pass": "Success", 20 | "Name: ": "Name: ", 21 | "Size: ": "Size: ", 22 | 23 | 24 | }; 25 | function get_lan_operation(m) { 26 | //获取文字 27 | var lan = getCookie('language'); //语言版本 28 | //选取语言文字 29 | switch (lan) { 30 | case 'Chinese': 31 | var t = cn[m]; 32 | break; 33 | default: 34 | var t = en[m]; 35 | } 36 | 37 | //如果所选语言的json中没有此内容就选取其他语言显示 38 | if (t == undefined) t = cn[m]; 39 | if (t == undefined) t = en[m]; 40 | 41 | 42 | if (t == undefined) t = m; //如果还是没有就返回他的标识 43 | 44 | return t; 45 | } 46 | function init() { 47 | //document.getElementById("content2").style.display = "none"; 48 | 49 | } 50 | 51 | $("#uploadB").bind('click', function(e) { 52 | 53 | var file = document.getElementById('fileToUpload').files[0]; 54 | if (file) { 55 | var fileSize = 0; 56 | if (file.size > 1024 * 1024) 57 | fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB'; 58 | else 59 | fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB'; 60 | 61 | // document.getElementById('fileName').innerHTML = get_lan_operation('Name: ')+ file.name; 62 | // document.getElementById('fileSize').innerHTML = get_lan_operation('Size: ')+ fileSize; 63 | $("#progressTR").show(); 64 | uploadFile(); 65 | 66 | 67 | } 68 | }); 69 | 70 | function uploadFile() { 71 | var fd = new FormData(); 72 | fd.append("upload_file", document.getElementById('fileToUpload').files[0]); 73 | var xhr = new XMLHttpRequest(); 74 | xhr.upload.addEventListener("progress", uploadProgress, false); 75 | xhr.addEventListener("load", uploadComplete, false); 76 | xhr.addEventListener("error", uploadFailed, false); 77 | xhr.addEventListener("abort", uploadCanceled, false); 78 | xhr.open("POST", "http://192.168.100.1:80/ajax"); 79 | xhr.send(fd); 80 | } 81 | function uploadProgress(evt) { 82 | 83 | if (evt.lengthComputable) { 84 | var percentComplete = Math.round(evt.loaded * 100 / evt.total); 85 | var processbar = document.getElementById("processbar"); 86 | processbar.style.width = percentComplete + "%"; 87 | processbar.innerHTML = processbar.style.width; 88 | } 89 | else { 90 | document.getElementById('progress').innerHTML = 'unable to compute'; 91 | } 92 | } 93 | function uploadComplete(evt) { 94 | /* This event is raised when the server send back a response */ 95 | if (evt.target.responseText= "{\"flag\":\"1\"}") { 96 | alert(get_lan_operation('pass')); 97 | document.getElementById("Upgrade").style.display = "inline"; 98 | document.getElementById("Delete").style.display = "inline"; 99 | document.getElementById("uploadB").style.display = "none"; 100 | } 101 | 102 | } 103 | function uploadFailed(evt) { 104 | alert("There was an error attempting to upload the file."); 105 | } 106 | function uploadCanceled(evt) { 107 | alert("The upload has been canceled by the user or the browser dropped the connection."); 108 | } 109 | function fileSelected() { 110 | //$("#progressTR").show(); 111 | $("#processbar").html(""); 112 | $("#processbar").css("width", 0 + "%"); 113 | document.getElementById('fileName').innerHTML = ""; 114 | document.getElementById('fileSize').innerHTML = ""; 115 | document.getElementById("Upgrade").style.display = "none"; 116 | document.getElementById("Delete").style.display = "none"; 117 | document.getElementById("uploadB").style.display = "inline"; 118 | 119 | } 120 | $("#Upgrade").bind('click', function(e) { 121 | var param = { funcNo: 3000 }; 122 | var processbar = document.getElementById("processbar"); 123 | var i=0; 124 | processbar.style.width = i + "%"; 125 | processbar.innerHTML = processbar.style.width; 126 | var timer=setInterval(function(){ 127 | if(i<100){ 128 | i+=1; 129 | processbar.style.width = i + "%"; 130 | processbar.innerHTML = processbar.style.width; 131 | } 132 | if(i>=100){ 133 | clearInterval(timer); 134 | } 135 | 136 | },1600); 137 | requestUpgrade(param, timer,function(data) { 138 | var flag = data.flag; 139 | var error_info = data.error_info; 140 | 141 | if (flag == "1") {//正确 142 | 143 | alert(get_lan_operation('pass')); 144 | 145 | } else {//错误 146 | Alert(error_info); 147 | } 148 | }); 149 | }); 150 | $("#Delete").bind('click', function(e) { 151 | var param = { funcNo: 3001 }; 152 | request(param, function(data) { 153 | var flag = data.flag; 154 | var error_info = data.error_info; 155 | 156 | if (flag == "1") {//正确 157 | 158 | alert(get_lan_operation('pass')); 159 | 160 | } else {//错误 161 | Alert(error_info); 162 | } 163 | }); 164 | }); 165 | function requestUpgrade(param, timer,callback){ 166 | var iAjax = $.ajax({ 167 | url: "http://192.168.100.1:80/ajax", 168 | data: JSON.stringify(param), 169 | type: "post", 170 | dataType: "json", 171 | async: true, 172 | timeout: 20 * 1000, 173 | beforeSend: function(XMLHttpRequest) { 174 | }, 175 | success: function(data, textStatus) { 176 | 177 | if(data) 178 | { 179 | if(callback) 180 | { 181 | callback(data); 182 | } 183 | } 184 | else 185 | { 186 | clearInterval(timer); 187 | var processbar = document.getElementById("processbar"); 188 | processbar.style.width = 0 + "%"; 189 | processbar.innerHTML = processbar.style.width; 190 | alert(get_lan_operation('fail')); 191 | } 192 | }, 193 | complete: function(XMLHttpRequest, textStatus) { 194 | // console.log("complete"); 195 | }, 196 | error: function(XMLHttpRequest, textStatus, errorMessage) { // abort��ִ��error���� 197 | if(textStatus == "timeout") 198 | { 199 | iAjax.abort(); 200 | // ���ӳ�ʱ���⴦���� 201 | if(timeOutFunc) 202 | { 203 | timeOutFunc(); 204 | } 205 | else 206 | { 207 | Alert("����ʱ,����ӿ��Ƿ��쳣�������粻ͨ��"); 208 | } 209 | } 210 | else if(textStatus != "abort") 211 | { 212 | var getNetInfoCallback = function(result){ 213 | if(result && +result.network === 0) // ���� 214 | { 215 | Alert("����δ����"); 216 | } 217 | else 218 | { 219 | Alert("�������쳣,������:" + XMLHttpRequest.status + ",������Ϣ:" + XMLHttpRequest.statusText); 220 | } 221 | }; 222 | } 223 | } 224 | }); 225 | } 226 | function update2(){ 227 | var param = { funcNo: 3002 }; 228 | request(param, function(data) { 229 | var flag = data.flag; 230 | var error_info = data.error_info; 231 | 232 | if (flag == "1") {//正确 233 | var result = data.results[0]; 234 | //保存需要的数据 235 | 236 | $("#producttype").html(result.device_name); 237 | $("#firmwareVer").html(result.sw_version); 238 | 239 | } else {//错误 240 | Alert(error_info); 241 | } 242 | }); 243 | } -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/utils/ajax.js: -------------------------------------------------------------------------------- 1 | function request(param, callback){ 2 | var iAjax = $.ajax({ 3 | url: "http://192.168.100.1:80/ajax", 4 | data: JSON.stringify(param), 5 | type: "post", 6 | dataType: "json", 7 | async: true, 8 | timeout: 20 * 1000, 9 | beforeSend: function(XMLHttpRequest) { 10 | // console.log("beforeSend"); 11 | }, 12 | success: function(data, textStatus) { 13 | // console.log("success"); 14 | if(data) 15 | { 16 | if(callback) 17 | { 18 | callback(data); 19 | } 20 | } 21 | else 22 | { 23 | Alert("��̨�������ݸ�ʽ����ȷ,����ϵ����Ա������������:" + data); 24 | } 25 | }, 26 | complete: function(XMLHttpRequest, textStatus) { 27 | // console.log("complete"); 28 | }, 29 | error: function(XMLHttpRequest, textStatus, errorMessage) { // abort��ִ��error���� 30 | if(textStatus == "timeout") 31 | { 32 | iAjax.abort(); 33 | // ���ӳ�ʱ���⴦���� 34 | if(timeOutFunc) 35 | { 36 | timeOutFunc(); 37 | } 38 | else 39 | { 40 | Alert("����ʱ,����ӿ��Ƿ��쳣�������粻ͨ��"); 41 | } 42 | } 43 | else if(textStatus != "abort") 44 | { 45 | var getNetInfoCallback = function(result){ 46 | if(result && +result.network === 0) // ���� 47 | { 48 | Alert("����δ����"); 49 | } 50 | else 51 | { 52 | Alert("�������쳣,������:" + XMLHttpRequest.status + ",������Ϣ:" + XMLHttpRequest.statusText); 53 | } 54 | }; 55 | } 56 | } 57 | }); 58 | } 59 | 60 | function request2(param, callback) { 61 | var iAjax = $.ajax({ 62 | url: "http://192.168.100.1:80/ajax", 63 | data: JSON.stringify(param), 64 | type: "post", 65 | dataType: "json", 66 | async: true, 67 | timeout: 25 * 1000, 68 | beforeSend: function(XMLHttpRequest) { 69 | // console.log("beforeSend"); 70 | }, 71 | success: function(data, textStatus) { 72 | // console.log("success"); 73 | if (data) { 74 | if (callback) { 75 | callback(data); 76 | } 77 | } 78 | else { 79 | Alert("��̨�������ݸ�ʽ����ȷ,����ϵ����Ա������������:" + data); 80 | } 81 | }, 82 | complete: function(XMLHttpRequest, textStatus) { 83 | // console.log("complete"); 84 | }, 85 | error: function(XMLHttpRequest, textStatus, errorMessage) { // abort��ִ��error���� 86 | if (textStatus == "timeout") { 87 | data.flag =1; 88 | data.error_info = "none"; 89 | callback(data); 90 | //location.reload(true); 91 | iAjax.abort(); 92 | } 93 | else if (textStatus != "abort") { 94 | var getNetInfoCallback = function(result) { 95 | if (result && +result.network === 0) // ���� 96 | { 97 | Alert("����δ����"); 98 | } 99 | else { 100 | Alert("�������쳣,������:" + XMLHttpRequest.status + ",������Ϣ:" + XMLHttpRequest.statusText); 101 | } 102 | }; 103 | } 104 | } 105 | }); 106 | } 107 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/utils/alert.js: -------------------------------------------------------------------------------- 1 | var cn_alert = { 2 | "Confirm" : "确定", 3 | "Warning" : "警告", 4 | 5 | }; 6 | 7 | var en_alert = { 8 | "Confirm": "Confirm", 9 | "Warning": "Warning" 10 | 11 | }; 12 | 13 | function get_lan_alert(m) { 14 | //获取文字 15 | var lan = getCookie('language'); //语言版本 16 | //选取语言文字 17 | switch (lan) { 18 | case 'Chinese': 19 | var t = cn_alert[m]; 20 | break; 21 | default: 22 | var t = en_alert[m]; 23 | } 24 | 25 | //如果所选语言的json中没有此内容就选取其他语言显示 26 | if (t == undefined) t = cn[m]; 27 | if (t == undefined) t = en[m]; 28 | 29 | 30 | if (t == undefined) t = m; //如果还是没有就返回他的标识 31 | 32 | return t; 33 | } 34 | function Alert(alertMsg, msgType, yesFunc, btnWords) 35 | { 36 | var type = msgType==0?1:3; //显示的图标 37 | var ms1 = mifi_translate('Warning'); 38 | var ms2 = mifi_translate('Confirm'); 39 | iAlertIdx = $.layer({ 40 | area: ['310px','auto'], 41 | offset: [($(window).height()*0.2)+'px', ''], 42 | dialog: { 43 | btn: [btnWords||ms2], 44 | msg: alertMsg, 45 | type: type, 46 | yes: function(index) {try{layer.close(index);}catch(e){}; if(yesFunc){yesFunc();}} 47 | }, 48 | title: ms1, 49 | border: [0 , 0 , '', false], 50 | shade : [0.5 , '#000' , true], 51 | success: function(layer) {window.ontouchmove = stopDefaultAction;}, 52 | end: function() {window.ontouchmove = null;} 53 | }); 54 | } 55 | 56 | function stopDefaultAction(e) 57 | { 58 | if(e && e.preventDefault) { 59 | e.preventDefault(); 60 | } else { 61 | window.event.returnValue = false; 62 | } 63 | } 64 | 65 | function _loadCss(cssAddr) 66 | { 67 | var aCssAddr = []; // 需要加载的 css 数组 68 | if(cssAddr instanceof Array) 69 | { 70 | aCssAddr = aCssAddr.concat(cssAddr); 71 | } 72 | else if(cssAddr) 73 | { 74 | aCssAddr.push(cssAddr); 75 | } 76 | for(var i = 0, length = aCssAddr.length; i < length; i++) 77 | { 78 | var linkDom = document.createElement("link"); 79 | linkDom.charset = 'utf-8'; 80 | linkDom.rel = 'stylesheet'; 81 | linkDom.href = aCssAddr[i]; 82 | var elm = document.querySelector("head"); 83 | //elm.appendChild(linkDom); 84 | elm.appendChild(linkDom); 85 | } 86 | } 87 | function showLoading(msg, content, contentAlert) { 88 | if (msg) { 89 | $('#loadMsg').html("Waiting"); 90 | } else { 91 | $('#loadMsg').html(''); 92 | } 93 | $('#loading').modal({ 94 | zIndex: 3000, 95 | position : [ '30%' ], 96 | overlayId : 'confirm-overlay', 97 | containerId : 'confirm-container', 98 | minHeight : 140, 99 | persist : true, 100 | focus: false, 101 | escClose: false 102 | }); 103 | var loading = $("#loading #loading_container"); 104 | var a = " "; 105 | if(content){ 106 | loading.html(content + a); 107 | } else { 108 | loading.html(a); 109 | } 110 | 111 | if(contentAlert) { 112 | $('#loading #loading_wording').html("Waiting"); 113 | } else { 114 | $("#loading #loading_wording").html(""); 115 | } 116 | $("a:last", loading).focus().hide(); 117 | } 118 | /** 119 | * 隐藏等待遮罩 120 | * @method hideLoading 121 | */ 122 | function hideLoading() { 123 | $('#confirm-overlay').css("cursor","default"); 124 | $.modal.close(); 125 | $('#loadMsg').html(''); 126 | } -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/utils/childmenu.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/js/utils/childmenu.js -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/utils/cookiesHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/js/utils/cookiesHandler.js -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/utils/jsonHandler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/js/utils/jsonHandler.js -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/utils/languageswitch.js: -------------------------------------------------------------------------------- 1 | 2 | var static isChinese = true; 3 | 4 | 5 | function SwitchToEnglish(){ 6 | 7 | if(isChinese == true) 8 | isChinese = false; 9 | 10 | location.reload(true); 11 | 12 | } 13 | 14 | function SwitchToChinese(){ 15 | 16 | if(isChinese == false) 17 | isChinese = true; 18 | 19 | location.reload(true); 20 | 21 | } -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/utils/smsHandler.js: -------------------------------------------------------------------------------- 1 | function stringToCode(num_string, encodeType) //bs is a string of number, and parse to code(ASCII and UNICODE). 2 | { 3 | var result = ""; 4 | var sub_str = ""; 5 | var substr_int = ""; 6 | if(num_string=="" || num_string==null) 7 | { 8 | return result; 9 | } 10 | if("1" == encodeType) //Transform to ASCII 11 | { 12 | for(var i=0; i/g, '>') 36 | .replace(/"/g, """) 37 | .replace(/'/g, "'"); 38 | return txt; 39 | } 40 | 41 | function test(text_content) 42 | { 43 | var temp; 44 | temp = stringToCode(text_content,0); //Unicode 45 | temp = sms_html_encode(temp); 46 | return temp; 47 | } 48 | 49 | function test1(text_content) 50 | { 51 | 52 | } 53 | 54 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/wifiSecurity.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | // _loadCss("./css/layer.css"); 3 | init(); 4 | }); 5 | var cn = { 6 | "fail": "失败", 7 | "pass": "成功", 8 | "LegalPin":"请输入合法的WIFI密码!" 9 | 10 | 11 | 12 | }; 13 | 14 | var en = { 15 | "fail": "Fail", 16 | "pass": "Success", 17 | "LegalPin": "Please input legal WIFI password!" 18 | 19 | }; 20 | function get_lan_security(m) { 21 | //获取文字 22 | var lan = getCookie('language'); //语言版本 23 | //选取语言文字 24 | switch (lan) { 25 | case 'Chinese': 26 | var t = cn[m]; 27 | break; 28 | default: 29 | var t = en[m]; 30 | } 31 | 32 | //如果所选语言的json中没有此内容就选取其他语言显示 33 | if (t == undefined) t = cn[m]; 34 | if (t == undefined) t = en[m]; 35 | 36 | 37 | if (t == undefined) t = m; //如果还是没有就返回他的标识 38 | 39 | return t; 40 | } 41 | function init(){ 42 | 43 | var encryp_type; 44 | document.getElementById("content2").style.display = "none"; 45 | var param = {funcNo:1009}; 46 | request(param,function(data){ 47 | var flag = data.flag; 48 | var error_info = data.error_info; 49 | 50 | if(flag == "1"){//正确 51 | var result = data.results[0]; 52 | encryp_type = result.encryp_type; 53 | initPage(encryp_type); 54 | if(result.pwd){ 55 | $("#pwd").val(result.pwd); 56 | } 57 | }else{//错误 58 | Alert(mifi_translate(error_info)); 59 | } 60 | }); 61 | } 62 | 63 | function initPage(encryp_type){ 64 | 65 | switch(encryp_type){ 66 | case 0: 67 | $("option").removeAttr("selected"); 68 | $("option:eq(0)").attr("selected","selected"); 69 | break; 70 | case 1: 71 | $("option").removeAttr("selected"); 72 | $("option:eq(1)").attr("selected","selected"); 73 | break; 74 | case 2: 75 | $("option").removeAttr("selected"); 76 | $("option:eq(2)").attr("selected","selected"); 77 | break; 78 | case 3: 79 | $("option").removeAttr("selected"); 80 | $("option:eq(3)").attr("selected","selected"); 81 | break; 82 | case 4: 83 | $("option").removeAttr("selected"); 84 | $("option:eq(4)").attr("selected","selected"); 85 | break; 86 | case 5: 87 | $("option").removeAttr("selected"); 88 | $("option:eq(5)").attr("selected","selected"); 89 | break; 90 | default: 91 | $("option").removeAttr("selected"); 92 | $("option:eq(0)").attr("selected","selected"); 93 | break; 94 | } 95 | } 96 | 97 | $("#select").bind('change', function (e) { 98 | if($("option:eq(0)").attr("selected") == "selected"){ 99 | $("option").removeAttr("selected"); 100 | $("option:eq(0)").attr("selected","selected"); 101 | }else if($("option:eq(1)").attr("selected") == "selected"){ 102 | $("option").removeAttr("selected"); 103 | $("option:eq(1)").attr("selected","selected"); 104 | }else if($("option:eq(2)").attr("selected") == "selected"){ 105 | $("option").removeAttr("selected"); 106 | $("option:eq(2)").attr("selected","selected"); 107 | }else if($("option:eq(3)").attr("selected") == "selected"){ 108 | $("option").removeAttr("selected"); 109 | $("option:eq(3)").attr("selected","selected"); 110 | }else if($("option:eq(4)").attr("selected") == "selected"){ 111 | $("option").removeAttr("selected"); 112 | $("option:eq(4)").attr("selected","selected"); 113 | }else if($("option:eq(5)").attr("selected") == "selected"){ 114 | $("option").removeAttr("selected"); 115 | $("option:eq(5)").attr("selected","selected"); 116 | } 117 | }); 118 | 119 | $("#apply").bind('click', function(e) { 120 | 121 | var encryptype, pwd; 122 | document.getElementById("content2").style.display = "inline"; 123 | if($("option:eq(0)").attr("selected") == "selected"){ 124 | encryptype = $("option:eq(0)").val(); 125 | }else if($("option:eq(1)").attr("selected") == "selected"){ 126 | encryptype = $("option:eq(1)").val(); 127 | }else if($("option:eq(2)").attr("selected") == "selected"){ 128 | encryptype = $("option:eq(2)").val(); 129 | }else if($("option:eq(3)").attr("selected") == "selected"){ 130 | encryptype = $("option:eq(3)").val(); 131 | }else if($("option:eq(4)").attr("selected") == "selected"){ 132 | encryptype = $("option:eq(4)").val(); 133 | }else if($("option:eq(5)").attr("selected") == "selected"){ 134 | encryptype = $("option:eq(5)").val(); 135 | } 136 | 137 | pwd = $("#pwd").val(); 138 | var reg =/^[a-zA-Z0-9]{8,64}$/; 139 | if (!reg.test(pwd)) { 140 | Alert(mifi_translate('LegalPin')); 141 | return; 142 | } 143 | 144 | var param = {funcNo:1010, 145 | encryp_type:encryptype, 146 | pwd:$("#pwd").val() 147 | }; 148 | request2(param,function(data){ 149 | var flag = data.flag; 150 | var error_info = data.error_info; 151 | 152 | if(flag == "1"){//正确 153 | Alert(mifi_translate('pass')); 154 | document.getElementById("content2").style.display = "none"; 155 | return; 156 | }else{//错误 157 | Alert(mifi_translate(error_info)); 158 | document.getElementById("content2").style.display = "none"; 159 | } 160 | }); 161 | }); 162 | 163 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/js/wwanConfig.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | // _loadCss("./css/layer.css"); 3 | init(); 4 | }); 5 | var cn = { 6 | "fail" : "失败", 7 | "pass" : "成功", 8 | "inpuname": "请输入名称!", 9 | "inputApn" :"请输入APN", 10 | "savePass" : "保存成功!", 11 | "chooseProfile": "请选择配置和输入信息!" 12 | 13 | 14 | }; 15 | 16 | var en = { 17 | "fail": "Fail", 18 | "pass": "Success", 19 | "inpuname" : "Please input Name!", 20 | "inputApn" :"Please input Apn!", 21 | "savePass" : "Saved successfully!", 22 | "chooseProfile" : "Please choose profile and input information!" 23 | }; 24 | function get_lan_wwanConfig(m) { 25 | //获取文字 26 | var lan = getCookie('language'); //语言版本 27 | //选取语言文字 28 | switch (lan) { 29 | case 'Chinese': 30 | var t = cn[m]; 31 | break; 32 | default: 33 | var t = en[m]; 34 | } 35 | 36 | //如果所选语言的json中没有此内容就选取其他语言显示 37 | if (t == undefined) t = cn[m]; 38 | if (t == undefined) t = en[m]; 39 | 40 | 41 | if (t == undefined) t = m; //如果还是没有就返回他的标识 42 | 43 | return t; 44 | } 45 | function init(){ 46 | 47 | var param = {funcNo:1016}; 48 | request(param,function(data){ 49 | var flag = data.flag; 50 | var error_info = data.error_info; 51 | 52 | if(flag == "1"){//正确 53 | var result = data.results[0]; 54 | showCheckedRadio(result.profile_num); 55 | showProfileInfo(result.info_arr); 56 | }else{//错误 57 | Alert(mifi_translate(error_info)); 58 | } 59 | }); 60 | } 61 | 62 | function showCheckedRadio(num){ 63 | if(num == "1" || num == "2" || num == "3" || num == "4" || num == "5"){ 64 | $("#profile"+num).show(); 65 | $("#p"+num).attr("checked","checked"); 66 | }else{ 67 | $("#mifi_apn_is_auto").attr("checked","checked"); 68 | } 69 | } 70 | 71 | function showProfileInfo(info_arr){ 72 | if(info_arr == "" || info_arr == undefined){ 73 | return; 74 | } 75 | for(var i = 0;i < info_arr.length;i++){ 76 | var dom = $("#profile"+info_arr[i].no) 77 | dom.find("input:eq(0)").val(info_arr[i].name); 78 | dom.find("input:eq(1)").val(info_arr[i].apn); 79 | dom.find("input:eq(2)").val(info_arr[i].user); 80 | dom.find("input:eq(3)").val(info_arr[i].pwd); 81 | dom.find("option").removeAttr("selected"); 82 | dom.find("option:eq("+info_arr[i].auth+")").attr("selected","selected"); 83 | } 84 | } 85 | 86 | $("#p1,#p2,#p3,#p4,#p5,#mifi_apn_is_auto").bind('click', function (e) { 87 | $("input[type='radio']").each(function(){ 88 | $(this).removeAttr("checked"); 89 | $(".profile").hide(); 90 | }); 91 | $("#profile"+$(this).val()).show(); 92 | $(this).attr("checked","checked"); 93 | }); 94 | 95 | $(".select").live('change', function (e) { 96 | if($(this).find("option:eq(0)").attr("selected") == "selected"){ 97 | $(this).find("option").removeAttr("selected"); 98 | $(this).find("option:eq(0)").attr("selected","selected"); 99 | }else if($(this).find("option:eq(1)").attr("selected") == "selected"){ 100 | $(this).find("option").removeAttr("selected"); 101 | $(this).find("option:eq(1)").attr("selected","selected"); 102 | }else if($(this).find("option:eq(2)").attr("selected") == "selected"){ 103 | $(this).find("option").removeAttr("selected"); 104 | $(this).find("option:eq(2)").attr("selected","selected"); 105 | }else if($(this).find("option:eq(3)").attr("selected") == "selected"){ 106 | $(this).find("option").removeAttr("selected"); 107 | $(this).find("option:eq(3)").attr("selected","selected"); 108 | } 109 | }); 110 | 111 | $("#save").bind('click', function (e) { 112 | 113 | var n = $("input[checked='checked']").attr("id").substring(1); 114 | if(n == "1" || n == "2" || n == "3" || n == "4" || n == "5"){ 115 | var dom = $("#profile"+n); 116 | var param = { 117 | funcNo:1017, 118 | no:n, 119 | name:dom.find("input:eq(0)").val(), 120 | apn:dom.find("input:eq(1)").val(), 121 | user:dom.find("input:eq(2)").val(), 122 | pwd:dom.find("input:eq(3)").val(), 123 | auth:dom.find("option[selected='selected']").val() 124 | }; 125 | if (param.name == "") { 126 | Alert(mifi_translate('inpuname')); 127 | return; 128 | } 129 | if (param.apn == "") { 130 | Alert(mifi_translate('inputApn')); 131 | //Alert("Please input Apn!") 132 | return; 133 | } 134 | request(param,function(data){ 135 | var flag = data.flag; 136 | var error_info = data.error_info; 137 | 138 | if(flag == "1"){//正确 139 | Alert(mifi_translate('savePass')); 140 | }else{//错误 141 | Alert(mifi_translate('fail')); 142 | Alert(mifi_translate(error_info)); 143 | } 144 | }); 145 | }else{ 146 | Alert(mifi_translate('chooseProfile')); 147 | 148 | } 149 | }); 150 | 151 | $("#mifi_apn_connect1").bind('click', function (e) { 152 | 153 | var no = $("input[checked='checked']").attr("id").substring(1); 154 | if(no == "1" || no == "2" || no == "3" || no == "4" || no == "5"){ 155 | 156 | }else{ 157 | no = "0"; 158 | } 159 | var param = {funcNo:1018,profile_num:no}; 160 | request(param,function(data){ 161 | var flag = data.flag; 162 | var error_info = data.error_info; 163 | 164 | if(flag == "1"){//正确 165 | Alert(mifi_translate('pass')); 166 | return; 167 | }else{//错误 168 | Alert(mifi_translate('fail')); 169 | Alert(mifi_translate(error_info)); 170 | } 171 | }); 172 | }); -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/D_HCP.json: -------------------------------------------------------------------------------- 1 | { 2 | "Change DHCP Setting" : "修改 DHCP 设置", 3 | "DHCP Setting" : "DHCP 设置", 4 | "DHCP-IP" : "DHCP-IP地址", 5 | "DHCP-DNS" : "DHCP-DNS", 6 | "DHCP-Range" : "DHCP-变化范围", 7 | "Current Devices" : "当前连接设备", 8 | "Name" : "名 称", 9 | "Assigned IP" : "分配的 IP", 10 | "MAC" : "MAC地址", 11 | "Media" : "连接方式" 12 | } 13 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/MacFilter.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "MAC Address Filter" : "MAC地址过滤", 4 | "black list" : "黑名单", 5 | "white list" : "白名单", 6 | 7 | "close" : "关闭", 8 | "Save All" : "保 存", 9 | "Set" : "设置", 10 | "MAC Address Filter" : "MAC地址过滤", 11 | "MAC List":"MAC列表", 12 | "Save":"保存" , 13 | "Current Devices" : "当前连接设备", 14 | "Name" : "名 称", 15 | "Assigned IP" : "分配的 IP", 16 | "MAC" : "MAC地址", 17 | "Media" : "连接方式", 18 | "No data":"无数据" 19 | } 20 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/content.lst: -------------------------------------------------------------------------------- 1 | glob "*.json" -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/deviceInformation.json: -------------------------------------------------------------------------------- 1 | { 2 | "Device Information" : "设备信息", 3 | "Manufacturer" : "制造商", 4 | "Model" : "设备名称", 5 | "dbm:":"信号强度:" 6 | } 7 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/deviceOperation.json: -------------------------------------------------------------------------------- 1 | { 2 | "Device Operation" : "设备操作", 3 | "Device Restart" : "设备重启", 4 | "Restart" : "重启设备", 5 | "FactoryReset" : "恢复出厂", 6 | "Factory Reset" : "恢复出厂设置", 7 | "Restarting,please wait" : "设备重启中,请耐心等待" 8 | } 9 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "Username:" : "Username:", 3 | "Password:" : "Password:", 4 | "Login" : "Login", 5 | "Reset" : "Reset", 6 | "Language:" : "Language:", 7 | "Copyright © 2021-2022 All rights reserved." : "Copyright © 2021-2022 All rights reserved.", 8 | "Device Information" : "Device Information", 9 | "Manufacturer" : "Manufacturer", 10 | "Version" : "Version", 11 | "dbm:":"dbm::", 12 | "Change DHCP Setting" : "Change DHCP Setting", 13 | "DHCP Setting" : "DHCP Setting", 14 | "DHCP-IP" : DHCP-IP", 15 | "DHCP-DNS" : "DHCP-DNS", 16 | "DHCP-Range" : "DHCP-Range", 17 | "Current Devices" : "Current Devices", 18 | "Name" : "Name", 19 | "Assigned IP" : "Assigned IP", 20 | "MAC" : "MAC", 21 | "Media" : "Media", 22 | "Device Operation" : "Device Operation", 23 | "Device Restart" : "Device Restart", 24 | "Restart" : "Restart", 25 | "FactoryReset" : "FactoryReset", 26 | "Factory Reset" : "Factory Reset", 27 | "Restarting,please wait" : "Restarting,please wait", 28 | "Help" : "Help", 29 | "4G Info:" : "4G Info:", 30 | "Admin UI password" : "Admin UI password", 31 | "Admin User Interface (UI)" : "Admin User Interface (UI)", 32 | "Advanced Settings:" : "Advanced Settings:", 33 | "Configure DHCP setting such as DHCP Settings, Current Devices." : "Configure DHCP setting such as DHCP Settings, Current Devices.", 34 | "Configure Wi-Fi setting such as security, SSID, and password." : "Configure Wi-Fi setting such as security, SSID, and password.", 35 | "Default Wi-Fi password is 1234567890." : "Default Wi-Fi password is 1234567890.", 36 | "DHCP Settings:" : "DHCP Settings:", 37 | "Help Information" : "Help Information", 38 | "Shows 4G IP address, Subnet Mask, DNS." : "Shows 4G IP address, Subnet Mask, DNS.", 39 | "Shows device info, APN setting, SIM Information and resets the device to the factory default settings." : "Shows device info, APN setting, SIM Information and resets the device to the factory default settings.", 40 | "Wi-Fi Settings:" : "Wi-Fi Settings:", 41 | "Wi-Fi Password:" : "Wi-Fi Password:", 42 | "MAC Address Filter" : MAC Address Filter", 43 | "black list" : "black list", 44 | "white list" : "white list", 45 | "close" : "close", 46 | "Save All" : "Save All", 47 | "Set" : "Set", 48 | "MAC List":"MAC List", 49 | "Save":"Save" , 50 | "No data":"No data", 51 | "Home" : "Home", 52 | "Network Select" : "Network Select", 53 | "Wi-Fi" : "Wi-Fi", 54 | "Wi-Fi Setting" : "Wi-Fi Setting", 55 | "Wi-Fi Security" : "Wi-Fi Security", 56 | "Wi-Fi Security" : "WI-FI Security", 57 | "DHCP" : "DHCP", 58 | "Advanced" : "Advanced", 59 | 60 | "APN Setting" : "APN Setting", 61 | "SIM Information" : "SIM Information", 62 | "Modify Password" : "Modify Password", 63 | "Help" : "Help", 64 | "Modify Login Password" : "Modify Login Password", 65 | "Old Password" : "Old Password", 66 | "New Password" : "New Password", 67 | "The new password can not be the same as the old password!" : "The new password can not be the same as the old password!", 68 | "Network Selection" : "Network Selection", 69 | "Networks:" : "Networks:", 70 | "Auto" : "Auto", 71 | "3G Only" : "3G Only", 72 | "4G Only" : "4G Only", 73 | "Apply" : "Apply", 74 | "sSIM Information" : "SIM Information", 75 | "sim.Status" : "Status", 76 | "Ready" : "Ready", 77 | "SIM Card Selection" : "SIM Card Selection", 78 | "Admin Password" : "Admin Password", 79 | "Internet Connection" : "Internet Connection", 80 | "IP Address:" : "IP Address:", 81 | "Received:" : "Received:", 82 | "Mask:" : "Mask:", 83 | "Transmitted:" : "Transmitted:", 84 | "DNS:" : "DNS:", 85 | "Wi-Fi Status" : "Wi-Fi Status", 86 | "Network Name(SSID):" : "Network Name(SSID):", 87 | "IP Address:" : "IP Address:", 88 | "Users:" : "Users:", 89 | "Network Connection" : "Network Connection", 90 | "Config Autoconnect:" : "Config Autoconnect:", 91 | "Connect" : "Connect", 92 | "Disconnect" : "Disconnect", 93 | "Encryption" : "Encryption", 94 | "Password" : "Password", 95 | " ('0'-'9','a'-'z','A'-'Z') (8-63 characters)" : " ('0'-'9','a'-'z','A'-'Z') (8-63 characters)", 96 | "( After saving settings , the WIFI will restart automatically ! )" : "( After saving settings , the WIFI will restart automatically ! )", 97 | "Setting WIFI,please wait" : "Setting WIFI,please wait", 98 | "DISABLED" : "DISABLED", 99 | "ENABLED" : "ENABLED", 100 | "SSID Hidden" : "SSID Hidden", 101 | "TRUE" : "TRUE", 102 | "FALSE" : "FALSE", 103 | "Mode" : "Mode", 104 | "MaxSta" : "MaxSta", 105 | "ClientCount" : "ClientCount", 106 | "Change Wi-Fi Settings" : "Change Wi-Fi Settings", 107 | "( After changing settings , the WIFI will restart automatically ! )" : "( After changing settings , the WIFI will restart automatically ! )", 108 | "WI-FI RESTART" : "WI-FI RESTART", 109 | "WI-FI Module" : "WI-FI Module", 110 | "Status" : "Status", 111 | "RESTART" : "RESTART", 112 | "Setting WIFI,please wait" : "Setting WIFI,please wait", 113 | "Max Station":"Max Station", 114 | 115 | "Encryption" : "Encryption", 116 | "Password" : "Password", 117 | "( After saving settings , the WIFI will restart automatically ! )" : "( After saving settings , the WIFI will restart automatically ! )", 118 | "Setting WIFI,please wait" : "Setting WIFI,please wait", 119 | "APN:" : "APN:", 120 | "Name:" : "Name:", 121 | "User:" : "User:", 122 | "Auth:" : "Auth:", 123 | "None" : "None", 124 | "APN Configuration" : "APN Configuration", 125 | "Save Configuration" : "Save Configuration", 126 | "Execute" : "Execute", 127 | "APN Connection" : "APN Connection", 128 | "Default APN:" : "Default APN:", 129 | "Warning": "Warning", 130 | "Confirm" : "Confirm", 131 | 132 | "fail": "Fail", 133 | "pass": "Success", 134 | "inputOldpin": "Please input old password!", 135 | "inputLegalpin": "Please input legal password!", 136 | "inputnewpin": "Please input new password!", 137 | "cannotSame": "The new password can not be the same as the old password!", 138 | "modifyOk": "Successful modification!", "Ready": "Ready", 139 | "Absent": "Absent", 140 | "Pin Required": "Pin Required", 141 | "PUK Required": "PUK Required", 142 | "Network Locked": "Network Locked", 143 | "fail": "Fail", 144 | "pass": "Success", 145 | "password error!": "password error!", 146 | "LegalPin": "Please input legal WIFI password!", 147 | "invalidSSID": "The range of SSID is 4~32.", 148 | "LegalPin": "Please input legal WIFI password!", 149 | "inpuname" : "Please input Name!", 150 | "inputApn" :"Please input Apn!", 151 | "savePass" : "Saved successfully!", 152 | "chooseProfile" : "Please choose profile and input information!", 153 | "Please input username":"Please input username", 154 | "Please input password":"Please input password", 155 | "Please input legal password!":"Please input legal password!", 156 | "Invalid IMEI!":"Invalid IMEI!", 157 | "Upload" : "Upload", 158 | "Upgrade" : "Upgrade", 159 | "Firmware update" :"Firmware update", 160 | "Delete Upgrade package": "Delete Upgrade package", 161 | "Please follow the steps below:": "Please follow the steps below:", 162 | "1. Download the latest firmware.": "1. Download the latest firmware.", 163 | "2. Select the downloaded firmware in the [Firmware File] option.": "2. Select the downloaded firmware in the [Firmware File] option.", 164 | "3. Click [Upload] to upload the file to the device.": "3. Click [Upload] to upload the file to the device.", 165 | "4. After the upload is completed, click [Upgrade], and the system will upgrade according to the firmware.":"4. After the upload is completed, click [Upgrade], and the system will upgrade according to the firmware.", 166 | "The upgrade takes about 3-4 minutes, and the system will restart automatically after the upgrade.": "The upgrade takes about 3-4 minutes, and the system will restart automatically after the upgrade.", 167 | "5. If you click [Delete Upgrade Package], the system will delete the firmware just uploaded.": "5. If you click [Delete Upgrade Package], the system will delete the firmware just uploaded.", 168 | "Please download APP/APK management device":"Please download APP/APK management device", 169 | "Product model:":"Product model:", 170 | "Firmware version:":"Firmware version:", 171 | "Firmware file:":"Firmware file:", 172 | "Firmware Upgrade" : "Firmware Upgrade" 173 | 174 | } 175 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "Help" : "帮 助", 3 | "4G Info:" : "网络设置:", 4 | "Admin UI password" : "密码管理说明", 5 | "Admin User Interface (UI)" : "WEB 界面管理说明", 6 | "Advanced Settings:" : "高级设置:", 7 | "Configure DHCP setting such as DHCP Settings, Current Devices." : "可以对DHCP服务及DHCP保留进行相关功能的设置。", 8 | "Configure Wi-Fi setting such as security, SSID, and password." : "无线参数配置,例如安全性,SSID,密码等。", 9 | "Default Wi-Fi password is 1234567890." : "默认的Wi-Fi密码是:1234567890。", 10 | "DHCP Settings:" : "DHCP 设置:", 11 | "Help Information" : "帮助信息", 12 | "Shows 4G IP address, Subnet Mask, DNS." : "主要显示4G的IP地址,子网掩码,网关信息。", 13 | "Shows device info, APN setting, SIM Information and resets the device to the factory default settings." : "显示设备信息、APN设置、SIM卡信息和恢复出厂设置。", 14 | "Wi-Fi Settings:" : "无线设置:", 15 | "Wi-Fi Password:" : "Wi-Fi 密码:" 16 | } 17 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "Username:" : "用 户 名:", 3 | "Password:" : "密    码:", 4 | "Login" : "登 录", 5 | "Reset" : "重 置", 6 | "Language:" : "语    言:", 7 | "Copyright © 2021-2022 All rights reserved." : "Copyright © 2021-2022 所有版权." 8 | } 9 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/main.json: -------------------------------------------------------------------------------- 1 | { 2 | "Home" : "首    页", 3 | "Network Select" : "网络选择", 4 | "Wi-Fi" : "无线设置", 5 | "Wi-Fi Setting" : "基本设置", 6 | "Wi-Fi Security" : "安全设置", 7 | "DHCP" : "DHCP设置", 8 | "Advanced" : "高级设置", 9 | "Device Information" : "设备信息", 10 | "Device Operation" : "设备操作", 11 | "APN Setting" : "APN设置", 12 | "SIM Information" : "SIM卡信息", 13 | "Modify Password" : "修改密码", 14 | "Help" : "帮    助", 15 | "Copyright © 2021-2022 All rights reserved." : "Copyright © 2021-2022 所有版权.", 16 | "MAC Address Filter":"MAC地址过滤" 17 | } 18 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/modifyPwd.json: -------------------------------------------------------------------------------- 1 | { 2 | "Modify Login Password" : "修改登录密码", 3 | "Old Password" : "原密码", 4 | "New Password" : "新密码", 5 | "Save" : "保 存", 6 | "The new password can not be the same as the old password!" : "新密码不能跟旧密码一样!" 7 | } 8 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/netsel.json: -------------------------------------------------------------------------------- 1 | { 2 | "Network Select" : "网络选择", 3 | "Network Selection" : "网络选择", 4 | "Networks:" : "  网   络:", 5 | "Auto" : "自 动", 6 | "3G Only" : "仅3G", 7 | "4G Only" : "仅4G", 8 | "Apply" : "应 用" 9 | } 10 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "Username:" : "Имя пользователя:", 3 | "Password:":"Пароль:", 4 | "Login" : "Вход", 5 | "Reset" : "Сброс", 6 | "Language:" : "Язык:", 7 | "Copyright © 2021-2022 All rights reserved." : "Все права защищены; 2021-2022", 8 | "Device Information" : "Информация об устройстве", 9 | "Manufacturer" : "Производитель", 10 | "Version" : "Версия", 11 | "dbm:":"dbm:", 12 | "Change DHCP Setting" : "Изменить настройки DHCP", 13 | "DHCP Setting" : "Настройки DHCP", 14 | "DHCP-IP" : "DHCP-IP", 15 | "DHCP-DNS" : "DHCP-DNS", 16 | "DHCP-Range" : "Диапазон DHCP", 17 | "Current Devices" : "Текущие устройства", 18 | "Name" : "Имя", 19 | "Assigned IP" : "Назначенный IP", 20 | "MAC" : "MAC", 21 | "Media" : "Медиа", 22 | "Device Operation" : "Работа устройства", 23 | "Device Restart" : "Перезагрузка устройства", 24 | "Restart" : "Перезагрузка", 25 | "FactoryReset" : "Сброс к заводским настройкам", 26 | "Factory Reset" : "Сброс к заводским настройкам", 27 | "Restarting,please wait" : "Перезагрузка, пож-та, подождите", 28 | "Help" : "Помощь", 29 | "4G Info:" : "4G информация:", 30 | "Admin UI password" : "Пароль администратора интерфейса", 31 | "Admin User Interface (UI)" : "Интерфейс пользователя администратора", 32 | "Advanced Settings:" : "Дополнительные настройки:", 33 | "Configure DHCP setting such as DHCP Settings, Current Devices." : "Конфигурация настроек DHCP, текущих устройств", 34 | "Configure Wi-Fi setting such as security, SSID, and password." : "Конфигурация SSID, пароля и настроек безопасности Wi-Fi", 35 | "Default Wi-Fi password is 1234567890." : "Пароль Wi-Fi по умолчанию:1234567890", 36 | "DHCP Settings:" : "Настройки DHCP:", 37 | "Help Information" : "Справочная информация", 38 | "Shows 4G IP address, Subnet Mask, DNS." : "4G IP-адрес, маска подсети, DNS", 39 | "Shows device info, APN setting, SIM Information and resets the device to the factory default settings." : "Информация об устройстве, настройки APN, данные SIM-карты и возврат устройства к заводским установкам", 40 | "Wi-Fi Settings:" : "Настройки Qi-Fi:", 41 | "Wi-Fi Password:" : "Пароль Wi-Fi:", 42 | "MAC Address Filter" : "Фильтр MAC-адресов", 43 | "black list" : "Черный список", 44 | "white list" : "Белый список", 45 | "close" : "закрыть", 46 | "Save All" : "Сохранить все", 47 | "Set" : "Установка", 48 | "MAC List":"Список MAC", 49 | "Save":"Сохранить" , 50 | "Name" : "Имя", 51 | "Media" : "Медиа", 52 | "No data":"Нет данных", 53 | "Home" : "Домой", 54 | "Network Select" : "Выбор сети", 55 | "Wi-Fi" : "Wi-Fi", 56 | "mWi-Fi Setting" : "Настройки Wi-Fi", 57 | "Wi-Fi Security" : "Безопасность Wi-Fi", 58 | "DHCP" : "DHCP", 59 | "Advanced" : "Дополнительно", 60 | "APN Setting" : "Настройки APN", 61 | "SIM Information" : "Данные SIM", 62 | "Modify Password" : "Изменить пароль", 63 | "Help" : "Помощь", 64 | "Copyright © 2021-2022 All rights reserved." : "Все права защищены; 2021-2022", 65 | "Modify Login Password" : "Изменить пароль входа", 66 | "Old Password" : "Старый пароль", 67 | "New Password" : "Новый пароль", 68 | "Save" : "Сохранить", 69 | "The new password can not be the same as the old password!" : "Новый пароль должен отличаться от старого!", 70 | "Network Selection" : "Выбор сети", 71 | "Networks:" : "Список сетей:", 72 | "Auto" : "Авто", 73 | "3G Only" : "Только 3G", 74 | "4G Only" : "Только 4G", 75 | "Apply" : "Применить", 76 | "sSIM Information" : "Данные SIM", 77 | "sim.Status" : "Статус SIM", 78 | "Ready" : "Готов", 79 | "SIM Card Selection" : "Выбор SIM-карты", 80 | "Admin Password" : "Пароль администратора", 81 | "Internet Connection" : "Интернет-соединение", 82 | "IP Address:" : "IP-адрес:", 83 | "Received:" : "Получено:", 84 | "Mask:" : "Маска:", 85 | "Transmitted:" : "Передано:", 86 | "DNS:" : "DNS", 87 | "Wi-Fi Status" : "Статус Wi-Fi", 88 | "Network Name(SSID):" : "Имя сети (SSID):", 89 | "IP Address:" : "IP-адрес:", 90 | "Users:" : "Пользователи:", 91 | "Network Connection" : "Сетевое соединение", 92 | "Config Autoconnect:" : "Конфигурация автоподключения:", 93 | "Connect" : "Подключение", 94 | "Disconnect" : "Отключение", 95 | "Apply" : "Применить", 96 | "sPassword:" : "Пароль:", 97 | "Encryption" : "Шифрование", 98 | "Password" : "Пароль", 99 | " ('0'-'9','a'-'z','A'-'Z') (8-63 characters)" : " ('0'-'9','a'-'z','A'-'Z') (8-63 символа)", 100 | "( After saving settings , the WIFI will restart automatically ! )" : "( После сохранения настроек Wi-Fi будет перезагружен автоматически ! )", 101 | "Setting WIFI,please wait" : "Сохранение Wi-Fi настроек, пож-та, подождите", 102 | "WI-FI Setting" : "Настройки WI-FI", 103 | "DISABLED" : "Выключено", 104 | "ENABLED" : "Включено", 105 | "SSID Hidden" : "Скрытый SSID", 106 | "TRUE" : "是", 107 | "FALSE" : "否", 108 | "Mode" : "Режим", 109 | "MaxSta" : "MaxSta", 110 | "ClientCount" : "Счетчик клиентов", 111 | "Change Wi-Fi Settings" : "Изменить настройки Wi-Fi", 112 | "( After changing settings , the WIFI will restart automatically ! )" : "( После сохранения настроек Wi-Fi будет перезагружен автоматически ! )", 113 | "WI-FI RESTART" : "Перезагрузка Wi-Fi", 114 | "WI-FI Module" : "Модуль WI-FI", 115 | "Status" : "Статус", 116 | "RESTART" : "Перезагрузка", 117 | "Setting WIFI,please wait" : "Устанавливаем Wi-Fi, пож-та, подождите", 118 | "Max Station":"Макс. кол-во подключений", 119 | "Encryption" : "Шифрование", 120 | "( After saving settings , the WIFI will restart automatically ! )" : "( После сохранения настроек Wi-Fi будет перезагружен автоматически ! )", 121 | "Setting WIFI,please wait" : "Устанавливаем Wi-Fi, пож-та, подождите", 122 | "APN:" : "APN:", 123 | "Name:" : "Имя:", 124 | "User:" : "Пользователь:", 125 | "WI-FI Security" : "Безопасность Wi-Fi", 126 | "Auth:" : "Авторизация:", 127 | "None" : "Нет", 128 | "APN Configuration" : "Конфигурация APN", 129 | "Save Configuration" : "Сохранить конфигурацию", 130 | "Execute" : "Выполнить", 131 | "APN Connection" : "Соединение APN", 132 | "Default APN:" : "APN по умолчанию:", 133 | "connected" : "Подключено", 134 | "disconnected" : "Отключено", 135 | "UNKNOWN" : "Неизвестно", 136 | "fail": "Ошибка", 137 | "pass": "Успех", 138 | "inputOldpin": "Пож-та, введите старый пароль", 139 | "inputLegalpin": "Пож-та, введите действующий пароль", 140 | "inputnewpin": "Пож-та, введите новый пароль", 141 | "cannotSame": "Новый пароль должен отличаться от старого", 142 | "modifyOk": "Успешная модификация!", 143 | "Ready": "Готов", 144 | "Absent": "Отсутствует", 145 | "Pin Required": "Требуется Pin", 146 | "PUK Required": "Требуется PUK", 147 | "Network Locked": "Сеть заблокирована", 148 | "fail": "Ошибка", 149 | "pass": "Успех", 150 | "password error!": "Неправильный пароль!", 151 | "LegalPin": "Пож-та, введите действующий пароль Wi-Fi", 152 | "invalidSSID": "Диапазон SSID от 4 до 32", 153 | "LegalPin": "Пож-та, введите действующий пароль Wi-Fi", 154 | "inpuname" : "Пож-та, введите имя!", 155 | "inputApn" :"Пож-та, введите APN!", 156 | "savePass" : "Успешное сохранение!", 157 | "chooseProfile" : "Пож-та, выберите профиль и введите данные!", 158 | "Warning" : "предупреждение", 159 | "Confirm" : "определение", 160 | "Please input username":"Введите имя пользователя", 161 | "Please input password":"Введите пароль", 162 | "Please input legal password!":"Введите законный пароль!", 163 | "Invalid IMEI!":"Неверный IMEI!", 164 | "Upload" : "Загрузить", 165 | "Upgrade" : "Повышение", 166 | "Firmware update" :"Обновление прошивки", 167 | "Delete Upgrade package": "Удалить пакет обновления", 168 | "Please follow the steps below:": "Пожалуйста, выполните следующие действия.:", 169 | "1. Download the latest firmware.": "1.Загрузить последнюю версию прошивки ", 170 | "2. Select the downloaded firmware in the [Firmware File] option.": "2.Выберите загруженное прошивку в параметре [прошивка] ", 171 | "3. Click [Upload] to upload the file to the device.": "3.Нажмите [загрузить], чтобы загрузить файл на устройство ", 172 | "4. After the upload is completed, click [Upgrade], and the system will upgrade according to the firmware.":"4.После завершения загрузки нажмите [обновление], и система будет обновлена в соответствии с прошивкой .", 173 | "The upgrade takes about 3-4 minutes, and the system will restart automatically after the upgrade.": "После завершения загрузки, нажмите [обновление], система будет обновляться на основе прошивки занимает около 3 - 4 минут, после чего система автоматически перезагрузится .", 174 | "5. If you click [Delete Upgrade Package], the system will delete the firmware just uploaded.": "5.Если нажмите [Удалить пакет обновления], система удалит только что загруженное прошивку .", 175 | "Please download APP/APK management device":"Скачайте устройство управления APP / APK ", 176 | "Product model:":"Тип продукции:", 177 | "Firmware version:":"Версия прошивки:", 178 | "Firmware file:":"Профиль:", 179 | "Firmware Upgrade" : "Обновление версии" 180 | } 181 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/sim.json: -------------------------------------------------------------------------------- 1 | { 2 | "SIM Information" : "SIM 卡信息", 3 | "Status" : "状   态", 4 | "Ready" : "就绪" 5 | } 6 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/sms.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"address": "22614", "body": "DIGI: Conectate a una red wifi y configura manualmente internet en tu movil siguiendo los pasos que encontraras aqui: https://bit.ly/configura-internet", "date": "-1492795336"} 3 | ] 4 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/status.json: -------------------------------------------------------------------------------- 1 | { 2 | "Internet Connection" : "网络连接", 3 | "IP Address:" : "IP  地址:", 4 | "Received:" : "接  收:", 5 | "Mask:" : "掩  码:", 6 | "Transmitted:" : "发  送:", 7 | "DNS:" : "DNS", 8 | "Wi-Fi Status" : "Wi-Fi 状态", 9 | "Network Name(SSID):" : "网络名称(SSID):", 10 | "IP Address:" : "IP  地址:", 11 | "Users:" : "用户数:", 12 | "Network Connection" : "网络连接模式", 13 | "Config Autoconnect:" : "是否自动连接:", 14 | "Connect" : "连接", 15 | "Disconnect" : "断开连接", 16 | "Apply" : "应 用", 17 | "Password:" : "密码:" 18 | } 19 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/wifiSecurity.json: -------------------------------------------------------------------------------- 1 | { 2 | "WI-FI Security" : "WI-FI 安全", 3 | "Encryption" : "加密方式", 4 | "Password" : "密    码", 5 | " ('0'-'9','a'-'z','A'-'Z') (8-63 characters)" : " ('0'-'9','a'-'z','A'-'Z') (8-63 位字符)", 6 | "Save" : "保 存", 7 | "( After saving settings , the WIFI will restart automatically ! )" : "( 保存设置后,WIFI将会自动重启! )", 8 | "Setting WIFI,please wait" : "正在设置WIFI,请等待 " 9 | } 10 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/wifiSetting.json: -------------------------------------------------------------------------------- 1 | { 2 | "WI-FI Setting" : "WI-FI 设置", 3 | "DISABLED" : "关闭", 4 | "ENABLED" : "使能", 5 | "MAC" : "MAC地址", 6 | "SSID Hidden" : "SSID 隐藏", 7 | "TRUE" : "是", 8 | "FALSE" : "否", 9 | "Mode" : "模式", 10 | "MaxSta" : "最大连接数", 11 | "ClientCount" : "连接用户数量", 12 | "Change Wi-Fi Settings" : " 保 存 ", 13 | "( After changing settings , the WIFI will restart automatically ! )" : "( 修改 Wi-Fi 设置后,WIFI将会自动重启! )", 14 | "WI-FI RESTART" : "WI-FI 重启", 15 | "WI-FI Module" : "WI-FI 模块", 16 | "Status" : "状态", 17 | "RESTART" : " 重 启 ", 18 | "Setting WIFI,please wait" : "正在设置WIFI,请等待 ", 19 | "Max Station":"最大连接数", 20 | "WI-FI Security" : "WI-FI 安全", 21 | "Encryption" : "加密方式", 22 | "Password" : "密    码", 23 | " ('0'-'9','a'-'z','A'-'Z') (8-63 characters)" : " ('0'-'9','a'-'z','A'-'Z') (8-63 位字符)", 24 | "Save" : "保 存", 25 | "( After saving settings , the WIFI will restart automatically ! )" : "( 保存设置后,WIFI将会自动重启! )", 26 | "Setting WIFI,please wait" : "正在设置WIFI,请等待 " 27 | } 28 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/wwanConfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "APN:" : "APN:", 3 | "Name:" : "名    称:", 4 | "User:" : "用户名:", 5 | "Password:" : "密    码:", 6 | "Auth:" : "加密方式:", 7 | "None" : "无", 8 | "APN Configuration" : "APN  配 置", 9 | "Save Configuration" : "保存配置", 10 | "Execute" : "激 活", 11 | "APN Connection" : "APN  连 接", 12 | "Default APN:" : "默认 APN:" 13 | } 14 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/json/zh.json: -------------------------------------------------------------------------------- 1 | { 2 | "Username:" : "用 户 名:", 3 | "Password:" : "密    码:", 4 | "Login" : "登 录", 5 | "Reset" : "重 置", 6 | "Language:" : "语    言:", 7 | "Copyright © 2021-2022 All rights reserved." : "Copyright © 2021-2022 所有版权.", 8 | "Device Information" : "设备信息", 9 | "Manufacturer" : "制造商", 10 | "Version" : "设备名称", 11 | "dbm:":"信号强度:", 12 | "Change DHCP Setting" : "修改 DHCP 设置", 13 | "DHCP Setting" : "DHCP 设置", 14 | "DHCP-IP" : "DHCP-IP地址", 15 | "DHCP-DNS" : "DHCP-DNS", 16 | "DHCP-Range" : "DHCP-变化范围", 17 | "Current Devices" : "当前连接设备", 18 | "Name" : "名 称", 19 | "Assigned IP" : "分配的 IP", 20 | "MAC" : "MAC地址", 21 | "Media" : "连接方式", 22 | "Device Operation" : "设备操作", 23 | "Device Restart" : "设备重启", 24 | "Restart" : "重启设备", 25 | "FactoryReset" : "恢复出厂", 26 | "Factory Reset" : "恢复出厂设置", 27 | "Restarting,please wait" : "设备重启中,请耐心等待", 28 | "Help" : "帮 助", 29 | "4G Info:" : "网络设置:", 30 | "Admin UI password" : "密码管理说明", 31 | "Admin User Interface (UI)" : "WEB 界面管理说明", 32 | "Advanced Settings:" : "高级设置:", 33 | "Configure DHCP setting such as DHCP Settings, Current Devices." : "可以对DHCP服务及DHCP保留进行相关功能的设置。", 34 | "Configure Wi-Fi setting such as security, SSID, and password." : "无线参数配置,例如安全性,SSID,密码等。", 35 | "Default Wi-Fi password is 1234567890." : "默认的Wi-Fi密码是:1234567890。", 36 | "DHCP Settings:" : "DHCP 设置:", 37 | "Help Information" : "帮助信息", 38 | "Shows 4G IP address, Subnet Mask, DNS." : "主要显示4G的IP地址,子网掩码,网关信息。", 39 | "Shows device info, APN setting, SIM Information and resets the device to the factory default settings." : "显示设备信息、APN设置、SIM卡信息和恢复出厂设置。", 40 | "Wi-Fi Settings:" : "无线设置:", 41 | "Wi-Fi Password:" : "Wi-Fi 密码:", 42 | "MAC Address Filter" : "MAC地址过滤", 43 | "black list" : "黑名单", 44 | "white list" : "白名单", 45 | "close" : "关闭", 46 | "Save All" : "保 存", 47 | "Set" : "设置", 48 | "MAC List":"MAC列表", 49 | "Save":"保存" , 50 | "Name" : "名 称", 51 | "Media" : "连接方式", 52 | "No data":"无数据", 53 | "Home" : "首    页", 54 | "Network Select" : "网络选择", 55 | "Wi-Fi" : "无线设置", 56 | "mWi-Fi Setting" : "WI-FI 设置", 57 | "Wi-Fi Security" : "安全设置", 58 | "DHCP" : "DHCP设置", 59 | "Advanced" : "高级设置", 60 | "APN Setting" : "APN设置", 61 | "SIM Information" : "SIM卡信息", 62 | "Modify Password" : "修改密码", 63 | "Help" : "帮    助", 64 | "Copyright © 2021-2022 All rights reserved." : "Copyright © 2021-2022 所有版权.", 65 | "Modify Login Password" : "修改登录密码", 66 | "Old Password" : "原密码", 67 | "New Password" : "新密码", 68 | "Save" : "保 存", 69 | "The new password can not be the same as the old password!" : "新密码不能跟旧密码一样!", 70 | "Network Selection" : "网络选择", 71 | "Networks:" : "  网   络:", 72 | "Auto" : "自 动", 73 | "3G Only" : "仅3G", 74 | "4G Only" : "仅4G", 75 | "Apply" : "应 用", 76 | "sSIM Information" : "SIM 卡信息", 77 | "sim.Status" : "状   态", 78 | "Ready" : "就绪", 79 | "SIM Card Selection" : "SIM卡选择", 80 | "Admin Password" : "管理员密码", 81 | "Internet Connection" : "网络连接", 82 | "IP Address:" : "IP  地址:", 83 | "Received:" : "接  收:", 84 | "Mask:" : "掩  码:", 85 | "Transmitted:" : "发  送:", 86 | "DNS:" : "DNS", 87 | "Wi-Fi Status" : "Wi-Fi 状态", 88 | "Network Name(SSID):" : "网络名称(SSID):", 89 | "IP Address:" : "IP  地址:", 90 | "Users:" : "用户数:", 91 | "Network Connection" : "网络连接模式", 92 | "Config Autoconnect:" : "是否自动连接:", 93 | "Connect" : "连接", 94 | "Disconnect" : "断开连接", 95 | "Apply" : "应 用", 96 | "sPassword:" : "密码:", 97 | "Encryption" : "加密方式", 98 | "Password" : "密    码", 99 | " ('0'-'9','a'-'z','A'-'Z') (8-63 characters)" : " ('0'-'9','a'-'z','A'-'Z') (8-63 位字符)", 100 | "( After saving settings , the WIFI will restart automatically ! )" : "( 保存设置后,WIFI将会自动重启! )", 101 | "Setting WIFI,please wait" : "正在设置WIFI,请等待 ", 102 | "WI-FI Setting" : "WI-FI 设置", 103 | "DISABLED" : "关闭", 104 | "ENABLED" : "使能", 105 | "SSID Hidden" : "SSID 隐藏", 106 | "TRUE" : "是", 107 | "FALSE" : "否", 108 | "Mode" : "模式", 109 | "MaxSta" : "最大连接数", 110 | "ClientCount" : "连接用户数量", 111 | "Change Wi-Fi Settings" : " 保 存 ", 112 | "( After changing settings , the WIFI will restart automatically ! )" : "( 修改 Wi-Fi 设置后,WIFI将会自动重启! )", 113 | "WI-FI RESTART" : "WI-FI 重启", 114 | "WI-FI Module" : "WI-FI 模块", 115 | "Status" : "状态", 116 | "RESTART" : " 重 启 ", 117 | "Setting WIFI,please wait" : "正在设置WIFI,请等待 ", 118 | "Max Station":"最大连接数", 119 | "Encryption" : "加密方式", 120 | "( After saving settings , the WIFI will restart automatically ! )" : "( 保存设置后,WIFI将会自动重启! )", 121 | "Setting WIFI,please wait" : "正在设置WIFI,请等待 ", 122 | "APN:" : "APN:", 123 | "Name:" : "名    称:", 124 | "User:" : "用户名:", 125 | "WI-FI Security" : "WI-FI 安全", 126 | "Auth:" : "加密方式:", 127 | "None" : "无", 128 | "APN Configuration" : "APN  配 置", 129 | "Save Configuration" : "保存配置", 130 | "Execute" : "激 活", 131 | "APN Connection" : "APN  连 接", 132 | "Default APN:" : "默认 APN:", 133 | "Warning" : "警告", 134 | "Confirm" : "确定", 135 | "fail": "失败", 136 | "pass": "成功", 137 | "inputOldpin": "请输入旧密码!", 138 | "inputLegalpin": "请输入合法密码!", 139 | "inputnewpin": "请输入新密码!", 140 | "cannotSame": "新密码不能与旧密码一样!", 141 | "modifyOk": "修改成功!", 142 | "Ready": "就绪", 143 | "Absent": "无SIM卡", 144 | "Pin Required": "Pin锁", 145 | "PUK Required": "PUK锁", 146 | "Network Locked": "网络锁", 147 | "password error!": "密码错误!", 148 | "LegalPin": "请输入合法的WIFI密码!", 149 | "invalidSSID": "SSID长度范围是4~32.", 150 | "LegalPin": "请输入合法的WIFI密码!", 151 | "inpuname" : "请输入名称!", 152 | "inputApn" :"请输入APN!", 153 | "savePass" : "保存成功!", 154 | "chooseProfile" : "请选择配置和输入信息!", 155 | "Please input username":"请输入用户名", 156 | "Please input password":"请输入密码", 157 | "Please input legal password!":"请输入合法密码!", 158 | "Invalid IMEI!":"非法密码!", 159 | "Upload" : "上传", 160 | "Upgrade" : "升级", 161 | "Firmware update" :"固件升级", 162 | "Delete Upgrade package": "删除升级包", 163 | "Please follow the steps below:": "请按以下步骤进行操作:", 164 | "1. Download the latest firmware.": "1.下载最新版本的固件", 165 | "2. Select the downloaded firmware in the [Firmware File] option.": "2.在[固件文件]选项中选择已下载的固件", 166 | "3. Click [Upload] to upload the file to the device.": "3.点击[上传]将文件上传到设备", 167 | "4. After the upload is completed, click [Upgrade], and the system will upgrade according to the firmware.":"4.上传完成后,点击[升级],系统会根据固件进行升级。", 168 | "The upgrade takes about 3-4 minutes, and the system will restart automatically after the upgrade.": "升级需要大约3-4分钟时间,结束后系统将自动重启。", 169 | "5. If you click [Delete Upgrade Package], the system will delete the firmware just uploaded.": "5.如果点击[删除升级包],则系统会删除刚刚上传的固件。", 170 | "Please download APP/APK management device":"请下载APP/APK管理设备", 171 | "Product model:":"产品型号:", 172 | "Firmware version:":"固件版本:", 173 | "Firmware file:":"固件文件:", 174 | "Firmware Upgrade" : "版本升级" 175 | 176 | } 177 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 4G Modem 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 32 | 33 | 34 | 35 | 36 | 81 | 82 | 83 |
84 | 175 | 176 |
177 | 184 |
185 | 186 |
187 |
188 | 194 |
195 |
196 |
197 |
198 |
199 | 200 |
201 |
202 |
203 | 204 | 205 | 206 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/ms.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 4G Modem 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 49 | 50 | 51 | 52 | 53 | 54 | 109 | 110 |
55 |
56 | 62 |

Mode Switch

63 | 64 | 65 | 72 | 73 | 74 | 75 | 76 | 77 | 86 | 87 | 88 | 89 | 94 | 95 | 96 | 97 | 102 | 103 | 104 | 105 | 106 | 107 |
66 |

67 | Enabling these options allows you to access advanced features. 68 | Debug mode enables DIAG+AT+MODEM interfaces. Bootloader mode 69 | reboots the device into fastboot mode for flashing. 70 |

71 |
 
78 | 83 | Debug Mode (DIAG+AT+MODEM) 84 | 85 |
90 | 91 | Enable ADB 92 | 93 |
98 | 101 |
 
108 |
111 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/netsel.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Network Select 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 |
26 |

Network Selection

27 |
28 | 29 | 30 | 37 | 38 | 39 | 40 | 41 | 42 |
Networks: 31 | 36 |
 
43 |
44 |
45 |
46 |
47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/shell.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Shell Command Interface 5 | 81 | 82 | 83 |
84 |

Terminal

85 | 86 |
87 | 88 | 89 |
90 |
91 |
92 | 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/sim.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SIM Information 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
24 |

SIM Information

25 |
26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
StatusReady
IMSI
ICCID
40 |
41 | 42 |
43 |
44 | 45 |
46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/sms.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SMS Inbox 5 | 78 | 79 | 80 | 83 |
84 | 85 | 192 | 193 | 194 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/static.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Static Resource 5 | 6 | 7 | 8 |

Static Resource

9 |

Jetty on Android, Static Resources copy from assets.

10 | Android
11 | 12 | 13 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/status.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Status 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |
25 |

Internet Connection

26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 41 | 42 | 43 | 44 | 45 | 46 | 48 | 49 | 50 | 51 | 53 | 54 | 55 | 56 |
IP Address:Received:0 KB
Mask: 39 | 255.255.255.0 40 | Transmitted:0 KB
DNS: 47 |
   52 |
57 |
58 |
59 |
60 | 61 | 62 |
63 |

Wi-Fi Status

64 |
65 | 66 | 67 | 68 | 69 | 71 | 72 | 73 | 74 | 77 | 78 | 79 | 80 | 82 | 83 | 84 | 85 | 86 | 87 | 90 | 91 | 92 |
Network Name(SSID): 70 |
IP Address: 75 | 192.168.100.1 76 |
Users: 81 |
Password: 88 | 89 |
93 |
94 |
95 |
96 | 97 | 102 | 103 | 104 |
105 |

Network Connection

106 |
107 | 108 | 109 | 110 | 111 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 |
112 | 116 |
 
125 |
126 |
127 |
128 | 129 | 130 |
131 | 132 | 133 | 134 | 135 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/upgrade.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlienWolfX/UZ801-USB-MODEM/69a6a86fd85a88b53dbbeb7c1e6a9b9710b5e1d0/files/mifiservice_mod/Mifi/assets/jetty2/upgrade.html -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/wifiSecurity.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Wi-Fi Security 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 | 25 |
26 |
27 |

WI-FI Security 28 | ( After saving settings , the WIFI will restart automatically ! )

29 |
30 | 31 | 32 | 33 | 42 | 43 | 45 | 46 | 47 | 50 | 53 | 54 |
Encryption 34 | 41 |
Password 44 | ('0'-'9','a'-'z','A'-'Z') (8-63 characters)
48 |   49 | 51 | 52 |
55 | 56 |
57 | 58 |
59 |
60 | 61 | 62 | Setting WIFI,please wait 63 | 64 | 65 | 66 |
67 |
68 |
69 |
70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/wifiSetting.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Wi-Fi Setting 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
24 |

WI-FI Setting 25 |
26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 55 | 56 | 57 | 58 |
StatusON
IP
MAC
SSID
Max Station 41 | 54 |
59 | 60 | 61 | 62 | 63 | 64 |
65 | 66 | 67 | 75 | 76 |
77 |
78 | 79 | 80 | Setting WIFI,please wait 81 | 82 | 83 | 84 |
85 |
86 | 87 |
88 | 89 | 90 | 91 |

WI-FI Security 92 |
93 | 94 | 103 | 104 | 105 | 106 | 107 |
Encryption 95 | 102 |
Password
108 | 109 |
110 | 111 | 112 |
113 | 114 | 115 | Setting WIFI,please wait 116 | 117 | 118 | 119 |
120 |
121 |
122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 |
 
130 |
131 |

132 | 133 | 134 | 135 | 136 |
137 | 138 | 139 | 140 | 141 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/jetty2/wwanConfig.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | APN Setting 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 |
26 |

APN Configuration

27 |
28 | 29 | 30 | 47 | 48 | 65 | 66 | 83 | 84 | 101 | 102 | 119 | 120 | 121 | 122 | 123 | 124 |
125 | 126 |
127 |
128 |
129 |
130 | 131 | 132 |
133 |
134 |

APN Connection

135 |
136 | 137 | 138 | 139 | Profile1:      140 | Profile2:      141 | Profile3:      142 | Profile4:      143 | Profile5:
144 | Default APN:   145 | 146 | 147 |
148 | 149 | 150 | 151 | 152 |
153 |
154 |
155 |
156 | 157 | 158 | 159 | 160 | -------------------------------------------------------------------------------- /files/mifiservice_mod/Mifi/assets/push.bat: -------------------------------------------------------------------------------- 1 | REM filepath: c:\Users\cruiz\OneDrive\Documents\Github\UZ801-USB_MODEM\files\mifiservice_mod\Mifi\assets\push.bat 2 | @echo off 3 | echo Pushing jetty2 files... 4 | adb push "jetty2" "/data/data/com.mifiservice.hello/files/jetty2/" 5 | if %errorlevel% equ 0 ( 6 | echo Files pushed successfully 7 | ) else ( 8 | echo Failed to push files 9 | pause 10 | exit /b 1 11 | ) 12 | pause -------------------------------------------------------------------------------- /scripts/flash.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | echo ============================= 3 | echo Flasher Tool 4 | echo ============================= 5 | 6 | fastboot flash fsc ../files/required_partitions/fsc.bin 7 | fastboot flash fsg ../files/required_partitions/fsg.bin 8 | fastboot flash modemst1 ../files/required_partitions/modemst1.bin 9 | fastboot flash modemst2 ../files/required_partitions/modemst2.bin 10 | echo Done. 11 | 12 | echo Rebooting to system.. 13 | fastboot reboot 14 | 15 | echo Done! 16 | pause 17 | -------------------------------------------------------------------------------- /scripts/initmifiservice.sh: -------------------------------------------------------------------------------- 1 | #!/system/bin/sh 2 | # This script is a part of the MifiService apk this is located in /system/bin/initmifiservice.sh 3 | 4 | 5 | usbcfg=`getprop persist.sys.usb.config` 6 | usbdebug="rndis,serial_smd,diag,adb" 7 | usbrndis="rndis" 8 | 9 | if [ $usbcfg == $usbdebug ]; then 10 | echo "usbdebug" 11 | elif [ $usbcfg == $usbrndis ]; then 12 | echo "rndis" 13 | else 14 | setprop persist.sys.usb.config rndis 15 | sync 16 | fi 17 | 18 | insmod /system/lib/modules/xt_HL.ko 19 | iptables -t mangle -I PREROUTING -i rmnet0 -j TTL --ttl-set 64 20 | iptables -t mangle -A POSTROUTING -j TTL --ttl-set 64 21 | 22 | brctl addbr br0 23 | ifconfig br0 192.168.100.1 up # Change this to your desired IP 24 | brctl addif br0 rndis0 25 | 26 | modem_at 27 | 28 | chmod 666 /dev/smd11 29 | -------------------------------------------------------------------------------- /scripts/obselete/README.md: -------------------------------------------------------------------------------- 1 | # Obsolete Scripts 2 | 3 | This folder contains obsolete scripts that are no longer actively maintained or used in the current project workflow. These files are kept for historical reference and may contain useful code snippets for future development. 4 | 5 | ## Contents 6 | 7 | The scripts in this directory have been superseded by newer implementations 8 | -------------------------------------------------------------------------------- /scripts/obselete/fetch_sms.json.sh: -------------------------------------------------------------------------------- 1 | #!/system/bin/sh 2 | # This script is a temporary solution for fetching SMS messages from the inbox and saving them in JSON format. 3 | # It will become obsolete once I create a customized endpoint for MiFiService. 4 | # Move this to "/system/bin/fetch_sms.json.sh" and set permissions to executable. 5 | 6 | 7 | outfile="/data/data/com.mifiservice.hello/files/jetty2/json/sms.json" 8 | 9 | echo "[" > "$outfile" 10 | 11 | first=1 12 | 13 | content query --uri content://sms/inbox --projection address:body:date | while read -r line; do 14 | address=$(echo "$line" | sed -n 's/.*address=\([^,]*\).*/\1/p') 15 | body=$(echo "$line" | sed -n 's/.*body=\(.*\), date=.*/\1/p') 16 | date=$(echo "$line" | sed -n 's/.*date=\(.*\)/\1/p') 17 | 18 | body=$(echo "$body" | sed 's/\\/\\\\/g; s/"/\\"/g') 19 | 20 | if [[ -n "$address" || -n "$body" ]]; then 21 | if [ $first -eq 0 ]; then 22 | echo "," >> "$outfile" 23 | fi 24 | echo " {\"address\": \"${address}\", \"body\": \"${body}\", \"date\": \"${date}\"}" >> "$outfile" 25 | first=0 26 | fi 27 | done 28 | 29 | echo "]" >> "$outfile" 30 | 31 | -------------------------------------------------------------------------------- /scripts/obselete/restoreNetwork.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | import sys 3 | import re 4 | from time import sleep 5 | 6 | def run_adb_command(command): 7 | """Execute an ADB shell command and return the output.""" 8 | try: 9 | process = subprocess.run(['adb', 'shell', command], 10 | stdout=subprocess.PIPE, 11 | stderr=subprocess.PIPE, 12 | text=True, 13 | check=True) 14 | return process.stdout.strip() 15 | except subprocess.CalledProcessError as e: 16 | print(f"Error: {e.stderr}", file=sys.stderr) 17 | return None 18 | 19 | def restart_fastboot(): 20 | """Restart the device in fastboot mode.""" 21 | try: 22 | subprocess.run(['adb', 'reboot', 'bootloader'], check=True) 23 | except subprocess.CalledProcessError as e: 24 | print(f"Error: {e.stderr}", file=sys.stderr) 25 | 26 | def validate_imei(imei): 27 | """Validate IMEI number format.""" 28 | if not re.match(r'^\d{15}$', imei): 29 | print("Error: IMEI must be exactly 15 digits") 30 | return False 31 | return True 32 | 33 | def check_device_connection(mode='adb'): 34 | """Check if device is connected in ADB or fastboot mode.""" 35 | try: 36 | cmd = [mode, 'devices'] 37 | output = subprocess.check_output(cmd, text=True) 38 | devices = output.strip().split('\n')[1:] 39 | return len([d for d in devices if d.strip()]) > 0 40 | except subprocess.CalledProcessError: 41 | return False 42 | 43 | def main(): 44 | if not check_device_connection('adb'): 45 | print("No device connected in ADB mode") 46 | return 47 | 48 | imei = input("Enter IMEI number: ") 49 | if not validate_imei(imei): 50 | return 51 | 52 | result = run_adb_command(f'modem_at AT+WRIMEI="{imei}"') 53 | if result: 54 | print("IMEI written successfully") 55 | print("Rebooting to bootloader...") 56 | sleep(5) 57 | 58 | subprocess.run(['flash.bat']) 59 | else: 60 | print("Failed to write IMEI") 61 | return 62 | 63 | if __name__ == '__main__': 64 | main() -------------------------------------------------------------------------------- /scripts/obselete/testFunc.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import json 3 | from time import sleep 4 | 5 | BASE_URL = "http://192.168.100.1/ajax" 6 | HEADERS = { 7 | 'Content-Type': 'application/json', 8 | 'Accept': 'application/json' 9 | } 10 | 11 | def test(func_no): 12 | param1 = 'busybox' 13 | try: 14 | data = {"funcNo": func_no, "cmd": param1,} 15 | response = requests.post(BASE_URL, json=data, headers=HEADERS, timeout=5) 16 | 17 | if response.status_code == 200: 18 | result = response.json() 19 | print(json.dumps(result, indent=2)) 20 | return result 21 | else: 22 | print("Error") 23 | return None 24 | 25 | except requests.exceptions.RequestException as e: 26 | print("Request failed") 27 | return None 28 | 29 | if __name__ == "__main__": 30 | funcNo = '1020' 31 | test(funcNo) 32 | sleep(0.5) 33 | 34 | print("\nTesting complete") -------------------------------------------------------------------------------- /wiki/Debian.md: -------------------------------------------------------------------------------- 1 | 2 | > Based on Debian 6.7 with MSM8916 mainline support 3 | 4 | ## Prerequisites 5 | 6 | - ADB tools installed 7 | - Device with USB debugging enabled 8 | - Backup of current firmware (recommended) 9 | 10 | ## Installation Steps 11 | 12 | 1. Download the installation package: 13 | 14 | ```bash 15 | wget https://download.wvthoog.nl/openstick-uz801-v3.0.zip 16 | ``` 17 | 18 | 2. Extract the archive: 19 | 20 | ```bash 21 | unzip openstick-uz801-v3.0.zip 22 | cd openstick-uz801 23 | ``` 24 | 25 | 3. Boot into fastboot mode: 26 | 27 | ```bash 28 | adb reboot bootloader 29 | ``` 30 | 31 | 4. Flash the firmware: 32 | 33 | - **Windows**: 34 | 35 | ```batch 36 | flash.bat 37 | ``` 38 | 39 | - **Linux/macOS**: 40 | 41 | ```bash 42 | chmod +x flash.sh 43 | ./flash.sh 44 | ``` 45 | 46 | 5. Wait for the flashing process to complete. Do not disconnect the device. 47 | 48 | ## Verification 49 | 50 | After successful installation run: 51 | 52 | `ssh user@192.168.200.1` 53 | 54 | Password is: **1** 55 | 56 | ## Additional Resources 57 | 58 | - [Wim van 't Hoog's Blog](https://wvthoog.nl/openstick/) - Original project documentation 59 | - [Debian MSM8916 Wiki](https://wiki.debian.org/msm8916) - Platform documentation 60 | - [Troubleshooting Guide](troubleshooting.md) - Common issues and solutions. 61 | -------------------------------------------------------------------------------- /wiki/Firmware(Dump_and_Restore).md: -------------------------------------------------------------------------------- 1 | 2 | ## Entering EDL Mode 3 | 4 | There are two methods to enter EDL mode on the device: 5 | 6 | ### Method 1: Using ADB 7 | 8 | **For Stock firmware:** (Only works with some UZ801) 9 | 10 | ```bash 11 | adb reboot edl 12 | ``` 13 | 14 | **For OpenWRT:** 15 | 16 | ```bash 17 | adb reboot bootloader 18 | fastboot oem reboot edl 19 | ``` 20 | 21 | ### Method 2: Hardware Method 22 | 23 | 1. Locate either: 24 | - The D+ and GND pins on the USB connector 25 | - The two dedicated EDL pads on the board 26 | 2. Short these points together 27 | 3. Connect the device to your computer while maintaining the short 28 | 29 | ## Firmware Operations 30 | 31 | ### Creating a Full Backup 32 | 33 | ```bash 34 | python3 edl rf backup_filename.bin 35 | ``` 36 | 37 | ### Restoring Full Firmware 38 | 39 | ```bash 40 | python3 edl wf backup_filename.bin 41 | ``` 42 | 43 | ### Creating Individual Partition Backups 44 | 45 | ```bash 46 | python3 edl rl output_folder --genxml 47 | ``` 48 | -------------------------------------------------------------------------------- /wiki/Home.md: -------------------------------------------------------------------------------- 1 | 2 | ## Welcome to the UZ801-USB_MODEM repository Wiki! 3 | 4 | This Wiki contains extensive information and research findings about the UZ801 v3.2 Modem. Before exploring the topics discussed in this wiki, please note that my research primarily focuses on the **UZ801 v3.2** model specifically. While some findings may be applicable to other `MSM8916`-based dongles, compatibility is not guaranteed. 5 | 6 | ## Contents 7 | 8 | - [Introduction](https://github.com/AlienWolfX/UZ801-USB_MODEM/wiki/Introduction) 9 | - [Firmware Dump and Restore]() 10 | - [Modifications](https://github.com/AlienWolfX/UZ801-USB_MODEM/wiki/Modifications) 11 | - [OpenWRT](https://github.com/AlienWolfX/UZ801-USB_MODEM/wiki/OpenWRT) 12 | - [Debian](https://github.com/AlienWolfX/UZ801-USB_MODEM/wiki/Debian) 13 | - [Troubleshooting](https://github.com/AlienWolfX/UZ801-USB_MODEM/wiki/Troubleshooting) 14 | 15 | ## Prerequisites 16 | 17 | Before proceeding with any instructions in this guide, ensure you have the following tools installed: 18 | 19 | - [edl](https://github.com/bkerler/edl) 20 | 21 | ### Windows Users 22 | 23 | If you are using Windows, you must also install: 24 | 25 | - [Universal ADB Driver](https://adb.clockworkmod.com/) 26 | - [QDLoader 9008 Driver](https://qdloader9008.com/) 27 | - [ADB Platform Tools](https://gist.github.com/ifiokjr/b70882d3f1182ed48ec7eefa5c93a740) 28 | - [Zadig](https://zadig.akeo.ie/) 29 | 30 | > [!NOTE] 31 | > If you encounter the error `NotImplementedError: Operation not supported or unimplemented on this platform` while using edl, uninstall the QDLoader 9008 Driver and replace it with Zadig WinUSB[⁽¹⁾](https://github.com/bkerler/edl/issues/349#issuecomment-2060152724). 32 | 33 | ## Contributing 34 | 35 | Contributions are welcome! If you have insights or modifications to improve this wiki, feel free to submit a pull request or open an issue. 36 | -------------------------------------------------------------------------------- /wiki/Introduction.md: -------------------------------------------------------------------------------- 1 | 2 | A couple of months ago, I purchased this 4G LTE USB dongle from Shopee for around 300+ PHP. Out of curiosity, I searched the internet to see if there was a way to modify the horrible web UI of the device. Here are some images of the device along with the board and its chips. 3 | 4 | | ![front](https://i.ibb.co/55fNj7D/front.jpg "front") | ![back](https://i.ibb.co/2s72SLL/back.jpg "back") | 5 | | ------------------------------------------------------- | ------------------------------------------------------- | 6 | | ![board1](https://i.ibb.co/5vZXKMQ/board1.jpg "board1") | ![board2](https://i.ibb.co/1Z8WZq0/board2.jpg "board2") | 7 | | ![front](https://i.ibb.co/sbChyH9/cpu.jpg "front") | ![back](https://i.ibb.co/Z8mh33d/storage.jpg "back") | 8 | | ![board1](https://i.ibb.co/jTwXYQ8/soc1.jpg "board1") | ![board2](https://i.ibb.co/GWfPq4M/soc2.jpg "board2") | 9 | | ![front](https://i.ibb.co/dQ82vyz/soc3.jpg "front") | | 10 | 11 | ## ADB 12 | 13 | Some devices do not have ADB enabled by default. To enable ADB: 14 | 15 | 1. Connect to the device and open this URL in a browser: `http://192.168.100.1/usbdebug.html`. 16 | 2. Verify by: 17 | 18 | ```bash 19 | adb devices 20 | ``` 21 | 22 | ## Device Specifications 23 | 24 | The heart of the dongle is an MSM8916, running a stripped-down version of Android 4.4.4 KitKat. Interestingly, **the setup restricts the use of two CPU cores, likely to prevent the device from overheating**. 25 | 26 | ### Processor Information 27 | 28 |
29 | CPUINFO 30 | 31 | ```bash 32 | root@msm8916_32_512:/ $ cat /proc/cpuinfo 33 | 34 | processor : 0 35 | model name : ARMv7 Processor rev 0 (v7l) 36 | BogoMIPS : 38.40 37 | Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt 38 | CPU implementer : 0x41 39 | CPU architecture: 7 40 | CPU variant : 0x0 41 | CPU part : 0xd03 42 | CPU revision : 0 43 | 44 | processor : 1 45 | model name : ARMv7 Processor rev 0 (v7l) 46 | BogoMIPS : 38.40 47 | Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt 48 | CPU implementer : 0x41 49 | CPU architecture: 7 50 | CPU variant : 0x0 51 | CPU part : 0xd03 52 | CPU revision : 0 53 | 54 | Hardware : Qualcomm Technologies, Inc MSM8916 55 | Revision : 0000 56 | Serial : 0000000000000000 57 | Processor : ARMv7 Processor rev 0 (v7l) 58 | ``` 59 | 60 |
61 | 62 | ### Memory Information 63 | 64 |
65 | MEMINFO 66 | 67 | ```bash 68 | root@msm8916_32_512:/ $ cat /proc/meminfo 69 | 70 | MemTotal: 397808 kB 71 | MemFree: 36072 kB 72 | Buffers: 7876 kB 73 | Cached: 115924 kB 74 | SwapCached: 1024 kB 75 | Active: 93944 kB 76 | Inactive: 128576 kB 77 | Active(anon): 45392 kB 78 | Inactive(anon): 54336 kB 79 | Active(file): 48552 kB 80 | Inactive(file): 74240 kB 81 | Unevictable: 740 kB 82 | Mlocked: 0 kB 83 | SwapTotal: 196604 kB 84 | SwapFree: 193548 kB 85 | Dirty: 0 kB 86 | Writeback: 0 kB 87 | AnonPages: 98596 kB 88 | Mapped: 57292 kB 89 | Shmem: 268 kB 90 | Slab: 33280 kB 91 | SReclaimable: 11016 kB 92 | SUnreclaim: 22264 kB 93 | KernelStack: 5112 kB 94 | PageTables: 5328 kB 95 | NFS_Unstable: 0 kB 96 | Bounce: 0 kB 97 | WritebackTmp: 0 kB 98 | CommitLimit: 395508 kB 99 | Committed_AS: 4824384 kB 100 | VmallocTotal: 499712 kB 101 | VmallocUsed: 50288 kB 102 | VmallocChunk: 311324 kB 103 | ``` 104 | 105 |
106 | 107 | ## WebUI 108 | 109 | The web UI is so poorly designed that you can bypass it entirely by simply changing the URL and calling **_main.html_** to access the main page. This goes the same as with the other pages. 110 | 111 | ## Display 112 | 113 | The device runs Android with LCD support enabled. First, keep the screen awake and wake the device (the device may otherwise present a blank screen): 114 | 115 | ```bash 116 | adb shell settings put system screen_off_timeout 2147483647 117 | adb shell input keyevent 26 118 | ``` 119 | 120 | ### adbcontrol 121 | 122 | Download: [adbcontrol.zip](https://github.com/AlienWolfX/UZ801-USB_MODEM/releases/download/rev1/adbcontrol.zip) 123 | 124 | Quick steps: 125 | 126 | ```bash 127 | unzip adbcontrol.zip 128 | cd adbcontrol 129 | # Edit config.properties to point to your adb executable and an output folder 130 | # Example config.properties entries: 131 | # adbCommand=C:\path\to\adb.exe 132 | # localImageFilePath=C:\tmp\adbcontrol_images 133 | java -jar adbcontrol.jar 134 | ``` 135 | -------------------------------------------------------------------------------- /wiki/Modifications.md: -------------------------------------------------------------------------------- 1 | 2 | ## Root Access Setup 3 | 4 | ### Prerequisites 5 | 6 | Download these required files: 7 | 8 | - [SuperSU v2.82 SR5](https://github.com/AlienWolfX/UZ801-USB_MODEM/releases/download/rev1/SR5-SuperSU-v2.82-SR5-20171001224502.zip) 9 | - [TWRP Recovery 3.1.1](https://github.com/AlienWolfX/UZ801-USB_MODEM/releases/download/rev1/twrp-3.1.1-0-seed.img) 10 | 11 | ### Installing SuperSU 12 | 13 | 1. Push SuperSU zip to device: 14 | 15 | ```bash 16 | adb push SR5-SuperSU-v2.82-SR5-20171001224502.zip /sdcard 17 | ``` 18 | 19 | 2. Boot into TWRP recovery: 20 | 21 | ```bash 22 | adb reboot bootloader 23 | fastboot boot twrp-3.1.1-0-seed.img 24 | ``` 25 | 26 | > [!NOTE] 27 | > Wait for ADB to detect the device again. This may take a few moments. 28 | 29 | 3. Install SuperSU through TWRP: 30 | 31 | ```bash 32 | adb shell 33 | twrp install /sdcard/SR5-SuperSU-v2.82-SR5-20171001224502.zip 34 | reboot 35 | ``` 36 | 37 | ## BusyBox Installation 38 | 39 | The default BusyBox installation lacks several commands (like `vi`). Here's how to install a complete version: 40 | 41 | ### Steps 42 | 43 | 1. Download [BusyBox APK](https://github.com/AlienWolfX/UZ801-USB_MODEM/releases/download/rev1/busybox.apk) 44 | 45 | 1. Install the APK: 46 | 47 | ```bash 48 | adb install busybox.apk 49 | ``` 50 | 51 | 1. Launch BusyBox: 52 | - Follow the [View Display Guide](https://github.com/AlienWolfX/UZ801-USB_MODEM/wiki/Introduction#display) 53 | - Open BusyBox application 54 | - Tap "Install" 55 | - Grant root permissions when prompted 56 | 57 | ### Verification 58 | 59 | To verify installation: 60 | 61 | ```bash 62 | adb shell 63 | busybox --help 64 | ``` 65 | 66 | ## APK Modifications 67 | 68 | ### Locating the APK 69 | 70 | First, identify and pull the correct APK: 71 | 72 | ```bash 73 | # MifiService.apk is typically located at: 74 | adb pull /system/priv-app/MifiService.apk 75 | ``` 76 | 77 | ### Setting Up Test Keys 78 | 79 | ```bash 80 | # Clone Android platform build tools 81 | git clone https://android.googlesource.com/platform/build 82 | 83 | # Navigate to security folder 84 | cd build/target/product/security/ 85 | 86 | # Generate platform key files 87 | openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem 88 | openssl pkcs12 -export -in platform.x509.pem -inkey platform.pem -out platform.p12 -password pass:android -name testkey 89 | keytool -importkeystore -deststorepass android -destkeystore platform.keystore -srckeystore platform.p12 -srcstoretype PKCS12 -srcstorepass android 90 | 91 | # Move keystore to working directory 92 | mv platform.keystore {YOUR_WORK_DIR} 93 | ``` 94 | 95 | ### Modifying the APK 96 | 97 | 1. Decompile: 98 | 99 | ```bash 100 | java -jar apktool.jar d MifiService.apk -o MifiService 101 | ``` 102 | 103 | 2. Make modifications in the `assets` folder or any part of the APK that you need to modify 104 | 105 | 3. Recompile (use `android` as passphrase when prompted): 106 | 107 | ```bash 108 | java -jar apktool.jar b -o unsigned.apk MifiService 109 | ``` 110 | 111 | 4. Sign and align: 112 | 113 | ```bash 114 | zipalign -v 4 unsigned.apk aligned.apk 115 | jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ./platform.keystore aligned.apk testkey 116 | ``` 117 | 118 | 5. Install modified APK: 119 | 120 | ```bash 121 | adb install -r aligned.apk 122 | ``` 123 | 124 | #### Changing Default IP by [tarokeitaro](https://github.com/AlienWolfX/UZ801-USB_MODEM/issues/11#issuecomment-2473418269) 125 | 126 | 1. Replace IP addresses in the decompiled APK: 127 | - Search for all instances of `192.168.100.` in the `MifiService` folder 128 | - Replace with your desired IP range (e.g., `192.168.1.` or `192.168.0.`) 129 | 130 | > [!NOTE] 131 | > Use VS Code's global search and replace feature (Ctrl+Shift+H) to find and replace all instances efficiently. 132 | 133 | 2. Recompile the APK: 134 | 135 | ```bash 136 | java -jar apktool.jar b -o unsigned.apk MifiService 137 | ``` 138 | 139 | 3. Sign and align the APK (PASS: android): 140 | 141 | ```bash 142 | zipalign -v 4 unsigned.apk aligned.apk 143 | jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ./platform.keystore aligned.apk testkey 144 | ``` 145 | 146 | 4. Install the modified APK: 147 | 148 | ```bash 149 | adb install -r aligned.apk 150 | ``` 151 | 152 | 5. Mount `/system` partition as read-write: 153 | 154 | ```bash 155 | mount -o rw,remount,rw /system 156 | ``` 157 | 158 | 6. Edit the initialization script: 159 | 160 | ```bash 161 | busybox vi /system/bin/initmifiservice.sh 162 | ``` 163 | 164 | Find line 22: `ifconfig br0 192.168.100.1 up` and change the IP to match your chosen range. 165 | 166 | > [!NOTE] 167 | > This script sets the bridge interface IP. Make sure it matches your APK modifications. 168 | 169 | 7. Pull the Android services framework: 170 | 171 | ```bash 172 | adb pull /system/framework/services.jar 173 | ``` 174 | 175 | 8. Decompile the services framework: 176 | 177 | ```bash 178 | java -jar apktool.jar d -o services services.jar 179 | ``` 180 | 181 | 9. Update IP addresses in services framework: 182 | - Search for all instances of `192.168.100.` in the `services` folder 183 | - Replace with your chosen IP range to maintain consistency 184 | 185 | 10. Recompile the services framework: 186 | 187 | ```bash 188 | java -jar apktool.jar b -c -f -o services.jar services 189 | ``` 190 | 191 | 11. Push the modified services framework back to device: 192 | 193 | ```bash 194 | adb push services.jar /system/framework/ 195 | ``` 196 | 197 | 12. Remount `/system` as read-only: 198 | 199 | ```bash 200 | mount -o ro,remount,ro /system 201 | ``` 202 | 203 | 13. Reboot device for changes to take effect: 204 | 205 | ```bash 206 | adb reboot 207 | ``` 208 | 209 | > [!WARNING] 210 | > Ensure all three components (APK, script, and services.jar) use the same IP range, or the device may not function correctly. -------------------------------------------------------------------------------- /wiki/OpenWRT.md: -------------------------------------------------------------------------------- 1 | 2 | ## Important Notes 3 | 4 | > [!WARNING] 5 | > The OpenWRT build is based on an older version of OpenWRT. While some packages and applications may have limited functionality, the build remains usable. This guide is intended for users with OpenWRT experience. 6 | 7 | > [!IMPORTANT] 8 | > If you cannot get a signal after installation, please refer to the [Region Change Guide](Troubleshooting.md#changing-modem-region). 9 | 10 | ## Installation Steps 11 | 12 | ### Prerequisites 13 | 14 | - Download [`openwrt-UZ801.tar.xz`](https://github.com/AlienWolfX/UZ801-USB_MODEM/releases) from releases 15 | - Ensure device is in EDL mode 16 | - Backup your current firmware (recommended) 17 | 18 | ### Installation Process 19 | 20 | 1. Extract the archive: 21 | 22 | ```bash 23 | tar xf openwrt-UZ801.tar.xz 24 | cd OpenWRT-UZ801 25 | ``` 26 | 27 | 2. Run the appropriate flash script: 28 | 29 | - **Windows**: 30 | 31 | ```batch 32 | flash.bat 33 | ``` 34 | 35 | - **Linux**: 36 | 37 | ```bash 38 | chmod +x flash.sh 39 | ./flash.sh 40 | ``` 41 | 42 | ### Verification 43 | 44 | After successful installation, you should see: 45 | 46 | - Alternating red and blue LED blinks 47 | - Device appears in network connections 48 | - Web interface accessible at 192.168.1.1 49 | -------------------------------------------------------------------------------- /wiki/References.md: -------------------------------------------------------------------------------- 1 | 2 | This project references the following resources: 3 | 4 | - [Wim van 't Hoog](https://wvthoog.nl/openstick/) - For Debian build and instructions. 5 | 6 | - [ddscentral](https://github.com/ddscentral) - For Debian build and instructions. 7 | 8 | - [postmarketOS]() - Information and Board pinout image 9 | 10 | - [edl](https://github.com/bkerler/edl) - Primary tool for dumping the Original firmware 11 | 12 | - [adrian-bl](https://github.com/adrian-bl) - Instruction for modifying Web UI 13 | 14 | - [HandsomeYingyan](https://github.com/HandsomeYingyan) - For HandsomeMod source code 15 | 16 | These resources have been instrumental in the creation of this documentation. 17 | -------------------------------------------------------------------------------- /wiki/Troubleshooting.md: -------------------------------------------------------------------------------- 1 | 2 | ## OpenWRT Issues 3 | 4 | ### No Network/Modem Stuck at Searching 5 | 6 | First, extract the contents of `modem.bin` from your firmware dump. If you used `edl` without the `--genxml` flag, you need to open the bin file with PowerISO or another software and extract the partition with type `GPT FAT16`. 7 | 8 | Once you have the `IMAGE` folder, navigate to this directory: `IMAGE\MODEM_PR\MCFG\CONFIGS\MCFG_SW\GENERIC\` and choose the folder according to your region: 9 | 10 | - **APAC** - Asia Pacific 11 | - **CHINA** - China 12 | - **COMMON** - Use this if your region is not listed 13 | - **EU** - Europe 14 | - **NA** - North America 15 | - **SA** - South America 16 | - **SEA** - South East Asia 17 | 18 | Once you have selected your region, you'll find folders typically representing Telcos in your area. Navigate through the appropriate folder until you locate `MCFG_SW.MBN`. 19 | 20 | **To apply the fix:** 21 | 22 | 1. Transfer the file to your dongle: `adb push MCFG_SW.MBN /lib/firmware` 23 | 2. Reboot the device: `adb reboot` 24 | 3. Your modem should now have internet access 25 | 26 | > [!NOTE] 27 | > If the modem doesn't automatically work, you may need to execute: 28 | > 29 | > ```bash 30 | > adb shell 31 | > mmcli -m 0 -e 32 | > ``` 33 | > 34 | > This will manually enable your modem. 35 | 36 | ### Connection Refused 37 | 38 | If you encounter this problem, configure the following settings in your OpenWRT dashboard: 39 | 40 | ```bash 41 | Name 42 | INTERNET 43 | 44 | Protocol 45 | Any 46 | 47 | Outbound zone 48 | wan modem 49 | 50 | Source address 51 | any 52 | 53 | Destination address 54 | any 55 | 56 | Action 57 | MASQUERADE - Automatically rewrite to outbound interface IP 58 | ``` 59 | 60 | ### Can't Use RNDIS After Installation 61 | 62 | Download the [RNDIS Driver](https://github.com/milkv-duo/duo-files/raw/main/common/RNDIS_drivers_20231018.zip) and add it to your device manager. 63 | 64 | Alternatively you can use `Microsoft USB RNDIS` driver. 65 | 66 | ## Android (Stock) 67 | 68 | ### Missing IMEI 69 | 70 | 1. adb connect to the device 71 | 2. execute `modem_at AT+WRIMEI={YOUR_IMEI}` 72 | 3. reboot 73 | 74 | ## Debian 75 | 76 | ### No internet connection via RNDIS using Wi-Fi 77 | 78 | `nmcli connection modify usb0 ipv4.method shared` 79 | 80 | ```bash 81 | nmcli connection down usb0 82 | nmcli connection up usb0 83 | ``` 84 | --------------------------------------------------------------------------------