小白网-奉贤部落-奉贤免费信息发布平台

查看: 52|回复: 0

网件路由器装插件(路由器web办事器)

[复制链接]

2万

主题

0

回帖

8万

积分

论坛元老

Rank: 8Rank: 8

积分
88256
发表于 2025-7-26 12:41 | 显示全部楼层 |阅读模式
  • 缘由刚考完研讨生,起头偶然候写文章他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。温习的时辰经常不由得折腾各类工具,因而有一天看中了我手里的华为路由器他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。什么?华为路由器,你能够有这个疑问他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。华为路由器不是自研芯片吗?就像我手里的这个华为路由器,是华为自己研发的凌霄芯片他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。它差池外开放他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。怎样折腾?因而就有了下面的研讨进程他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
  • 扔什么?首先,你能折腾什么?就像我手里的草莓派一样,刷OpenWrt系统垂手可得他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。有些人能够会有一些疑问他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。什么是OpenWrt系统?实在这是一个开源的路由器操纵系统他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。很多路由器系统都是在此根本上开辟的,这个系统可玩性很高他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。可是华为路由器连固件下载都没有翻开,这样折腾系统不太合适他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
    开辟路由器插件呢?看似可行,但此时我只晓得路由器插件只能在华为的公用路由器市场安装,而且路由器已经买了好几年了他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。插件很少,主如果IOT家电控制利用,但这条路理论上可行,所以我决议折腾路由器插件的开辟他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
  • 申请调试固件今朝华为路由器理论上支持路由器插件的开辟,只要有插件利用市场,很多其他品牌的路由器也支持他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。不外每个路由器的开辟方式都纷歧样,可以参考官方文档他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。今朝我只要华为的路由器,型号是Pro2,是几年前的路由器他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。都下市了,固件也不更新他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。经过华为官网文档,我把路由器序列号发到华为的联系邮箱,期待路由器适配完成,更新固件,然后切换到调试版本他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
  • 领会插件系统华为运转OpenEE开辟平台,插件在此根本上开辟他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。同时路由器硬件经过OSGI接口供给对外挪用才能,插件运转在JVM上他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。JVM?没错,就是我们Java法式员喜好的JVM他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。调试版可以间接登录root用户运转的路由器背景,支持根基的Linux号令他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。然后我在路由器上找到了JVM,研讨了一下他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。究竟上,我研讨了rt.jar的源代码,这个JVM是一个极为简化的版本他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。去掉了很多与路由器操纵无关的类,增加了很多华为自己写的类他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。但是,我们编程中最常用的类仍然没有被简化他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
    插件开辟分为前端和后端他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。后端可以开辟基于JVM的API接口供前端挪用他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。前端可以利用HTML等任何前端技术间接开辟,但只能利用特定的函数挪用后端API他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。最初,开辟的利用可以上传到路由器上运转,利用也可以间接在路由器市场翻开、运转、卸载他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
  • 运转演示可以依照官方文件操纵,这里就不贴链接了他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。倘使有开辟需求,可以间接在华为开辟者官网搜索路由器开辟文档,也可以和我会商他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。首先你需要预备好开辟情况,JDK1.8和Maven根基够用,然后运转官方剧本将华为的几个Jar包导入Maven当地库他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
    演示项目是Maven范例的项目他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。熟悉Java开辟的人应当熟悉,可以用自己喜好的软件停止开辟他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。比如我喜好用idea做开辟他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。履行mvn install时,天生响应的Jar包,然后由官方剧本打包成Apk文件他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。对,是Apk文件,但不是安卓上的Apk,而是华为路由器对应的Apk文件他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。然后,官方还供给了一个上传利用的工具他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。间接上传就行了他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
    就这样,一个Hello Word利用跑到了路由器上他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。但官方演示项目没有前端,响应的输出只能在背景控制台上检察他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。假如需要开辟前端,需要将响应的前端文件上传到公网办事器,经过IP挪用他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
  • 在路由器上实现Web办事器演示利用法式正在运转,所以我预备做下一步他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。由于路由器运转的是JVM,所以运转Web利用应当没有题目,而且我的路由器还有512M内存,所以低负载的Web利用应当没有题目他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。在这个根本上,我们可以做任何我们想做的工作,比如做NAS办事器,做内部博客办事器等等他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。固然,假如你有公网条件,也可以作为小型博客办事器他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。这里只会商内部网利用他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。JDK1.8最初构建了一个简单的HttpServer类他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。不幸的是,路由器JVM精简了这个类,所以我写了下面的类文件他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
    包ml . minli . tool . util;import javax . activation . mimetypesfiletypemap;导入Java . io . *;导入Java . net . *;公共类HttpServer扩大线程{private final int port;私有办事器套接字办事器套接字;private static final MimetypesFileTypeMap MimetypesFileTypeMap = new MimetypesFileTypeMap();public http server(int port){this . port = port;}@ Overridepublic void run(){try {server socket = new server socket(port);while(true){Socket Socket = server Socket . accept();http request handler http request handler = new http request handler(socket);http request handler . handle();socket . close();}} catch(Exception e){e . printstacktrace();}最初{if (serverSocket!= null  amp amp!server socket . is closed()){try {server socket . close();} catch(Exception e){e . printstacktrace();}}}}私有静态类http request handler {私有终极套接字Socket;public http request handler(Socket Socket){this . Socket = Socket;}public void handle(){try {StringBuilder StringBuilder = new StringBuilder();InputStreamReader InputStreamReader = new InputStreamReader(socket . getinputstream());char[]chars = new char[1024];int标志;while((mark = inputstreamreader . read(chars))!=-1){stringbuilder . append(chars,0,mark);if(mark  lt;chars . length){break;}}if(stringbuilder . length()= = 0){return;}//阻挡每一行请求string[]lines = string builder . tostring()他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。拆分("  r  n ");假如(!行[0]他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。isempty(){/intercept URLstring[]infos = lines[0]他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。拆分(" ");String info = URL decoder . decode(infos[1]," UTF-8 ");File文件;if(info . equals("/"){File = new File(USB info . USB path+"/index . html ");} else {File = new File(USB info . USB path+info);}/文件不存在他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。返回404if(!file . exists()){socket . get output stream()他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。write(("HTTP/1.1 404未找到 r  n "+" Content-Type:text/html;charset=utf-8rn" +"rn ")他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。getBytes());返回;}String content type = mimetypesfiletypemap . get content type(file);socket.getOutputStream()他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。写((" HTTP/1.1 200 OK  r  n "+" Content-Type:"+Content Type+";charset=utf-8rn" +"rn ")他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。getBytes());FileInputStream文件输入流=新文件输入流(文件);byte[] bytes =新字节[1024];int length;while((length = file inputstream . read(bytes))!=-1){socket . get output stream()他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。write(字节,0,长度);}}} catch(Exception e){e . printstacktrace();}最初{if (socket!= null  amp amp!socket . is closed()){try {socket . close();} catch(Exception e){e . printstacktrace();}}}}}}
    由于我只筹算先实现静态web办事器的分析,所以我筹算这样实现:前端文件,如HTML、CSS、JS等他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。,都存储在u盘里,然后办事器剖析文件返回,这样就简单多了他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。只需获得请求并剖析它他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。可是,返回需要适当的内容范例,是以需要判定文件范例他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。所以用的是javax.activation包,本来是JDK1.8自带的,惋惜路由器JVM精简了他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。可是,您可以经过Maven插件打包文件他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。

    org . Apache . Felixmaven-bundle-plugin5 . 1 . 2true{ project . name }{ project . description }李玟ml . minli . tool . activatorOSGI-INF/USB info . XML*;scope = compile | runtimeinline=false
    最初,在启动的实例类中挪用它他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。这里,端口2222用于测试他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。值得留意的是,有些端口是路由器自己占用的,所以我们只能利用其他端口他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
    包ml . minli . tool;导入ml . minli . tool . util . http server;import org . OSGi . framework . bundle activator;导入org . OSGi . framework . bundle context;public class Activator实现bundle Activator {public Activator(){}@ Overridepublic void start(bundle context bundle context){new http server(22222)他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。start();}@ Overridepublic void stop(bundle context bundle context){}}
    同时也要留意权限的题目他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。在很多地方,没有权限的法式会抛出异常他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。权限以下所示他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
    (org . OSGi . framework . package permission " * " import ")(Java . util . logging . logging permission " control ")(org . OSGi . framework . service permission " com . Huawei . hi link . rest . rest resource " " register ")(Java . io . file permission "/mnt/-" " read ")(com . Huawei . hi link . coreapi . perm . USB permission " * " list))(org . OSGi . framework
    终极成功实现了路由器运转Web利用的功用,可以运转任何网页他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。同时,假如是一些常见的文件,经过URL拜候相当于下载,那末做一个简单的NAS办事器似乎很轻易他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
  • 后续行动成果临时告一段落,由于那时还在预备考研,现在刚写完这些内容,现在可以再折腾一下,看看有什么可以申请的他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。倘使有什么停顿,我会继续分享他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
    这是我第一次在平台上分享技术内容他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。接待和我交换探讨他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。请喜好并关注我!
  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|小白网-奉贤部落-奉贤免费信息发布平台  

    GMT+8, 2025-11-12 17:13 , Processed in 0.201127 second(s), 21 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表