保护Root权限的方法及装置与流程

文档序号:12125657阅读:390来源:国知局
保护Root权限的方法及装置与流程

本发明涉及移动终端技术领域,尤其涉及一种保护Root权限的方法及装置。



背景技术:

随着Android产品越来越多,其友好的操作界面,丰富的扩展应用,以及开源性质,都是Android系统目前在智能设备市场上占用率遥遥领先的原因。随着用户对Android系统的深入了解,一些用户开始不满足只拥有普通的用户权限,纷纷对Android终端进行root,以获取更高的权限。

目前,用户一般都是借助于一些root工具来对终端的操作系统进行root,这些root工具的原理基本都是利用一些安全漏洞,获取到最高权限,然后在操作系统中加入一个任何用户都可以登陆的SU(Switch User切换用户)程序,任意应用程序都可以通过调用该SU程序来获得root权限。

Root权限虽然能够给用户带来某些方面的便利,但是也暴露了系统的最高权限,若有恶意程序利用root权限,几乎可以访问和修改终端内的所有文件,复制所有的敏感信息,照片,视频等等,上传至恶意程序指定的任意地址,后果非常严重。另外,使用root权限进行不当的操作是相当危险的,轻微的可能导致终端死机,严重的则会导致终端无法正常开机。由于Android系统是基于linux的,目前市面上能够利用的linux漏洞很多,而且有很多漏洞掌握在少数人手中并没有泄露出来,故目前并没有办法能够完全的防止终端被root,而终端的操作系统一旦被root之后,终端的root权限就会完全暴露,从而威胁终端内数据的安全性。



技术实现要素:

本发明的主要目的在于提出一种保护Root权限的方法及装置,旨在解决现有技术中终端的操作系统root之后,终端的root权限就会完全暴露的技术问题,提高终端内数据的安全性。

为实现上述目的,本发明提供一种保护Root权限的方法,包括:

预先在终端的操作系统中添加伪环境变量;

当检测到所述终端的操作系统root之后,获取所述操作系统中存储SU程序的环境变量对应存储目录的读取优先级;

根据获取到的所述环境变量对应存储目录的读取优先级设置所述伪环境变量对应存储目录的读取优先级,其中,所述伪环境变量对应存储目录设置后的读取优先级高于获取到的所述环境变量对应存储目录的读取优先级。

优选地,所述预先在终端的操作系统中添加一个伪环境变量之后还包括:

将预先编译完成的伪SU程序保存在所述伪环境变量对应的存储目录中。

优选地,在所述终端的操作系统root之后,所述方法还包括:

若检测到任意应用发送的用于调用SU程序的调用指令,则将所述伪环境变量对应存储目录中的伪SU程序发送至所述应用。

优选地,所述将预先编译完成的伪SU程序保存在所述伪环境变量对应的存储目录中之后还包括:

将所述伪SU程序的文件属性设置为只读,或者将所述伪SU程序的文件属性设置为不可删除。

优选地,所述方法还包括:

预先在所述伪SU程序中添加提醒消息或者警告消息,当任意应用接收到所述伪SU程序之后,则输出所述提醒消息或者警告消息,以提醒用户获取root权限失败。

此外,为实现上述目的,本发明还提供一种保护Root权限的装置,所述装置包括:

添加模块,用于预先在终端的操作系统中添加伪环境变量;

获取模块,用于当检测到所述终端的操作系统root之后,获取所述操作系统中存储SU程序的环境变量对应存储目录的读取优先级;

设置模块,用于根据获取到的所述环境变量对应存储目录的读取优先级设置所述伪环境变量对应存储目录的读取优先级,其中,所述伪环境变量对应存储目录设置后的读取优先级高于获取到的所述环境变量对应存储目录的读取优先级。

优选地,所述添加模块还用于:

将预先编译完成的伪SU程序保存在所述伪环境变量对应的存储目录中。

优选地,所述装置还包括:

调用模块,用于若检测到任意应用发送的用于调用SU程序的调用指令,则将所述伪环境变量对应存储目录中的伪SU程序发送至所述应用。

优选地,所述添加模块还用于:

在将预先编译完成的伪SU程序保存在所述伪环境变量对应的存储目录中之后,将所述伪SU程序的文件属性设置为只读,或者将所述伪SU程序的文件属性设置为不可删除。

优选地,所述装置还包括:

提醒模块,用于预先在所述伪SU程序中添加提醒消息或者警告消息,当任意应用接收到所述伪SU程序之后,则输出所述提醒消息或者警告消息,以提醒用户获取root权限失败。

本发明所提供的保护Root权限的方法及装置,包括预先在终端的操作系统中添加伪环境变量,当检测到所述终端的操作系统root之后,获取所述操作系统中存储SU程序的环境变量对应存储目录的读取优先级,根据获取到的所述环境变量对应存储目录的读取优先级设置所述伪环境变量对应存储目录的读取优先级,使得所述伪环境变量对应存储目录设置后的读取优先级高于获取到的所述环境变量对应存储目录的读取优先级。本发明通过预先在终端的操作系统中添加一个伪环境变量,并设置该伪环境变量对应存储目录的读取优先级高于root之后的操作系统中存储SU程序的环境变量对应存储目录的读取优先级,使得应用程序无法调用存储的SU程序,进而无法获取到任何root权限,解决了现有技术中终端的操作系统root之后,终端的root权限就会完全暴露的技术问题,提高了终端内数据的安全性。

附图说明

图1为本发明保护Root权限的方法第一实施例的流程示意图;

图2为本发明保护Root权限的方法第二实施例的流程示意图;

图3为本发明保护Root权限的方法第三实施例的流程示意图;

图4为本发明保护Root权限的装置第一实施例的功能模块示意图;

图5为本发明保护Root权限的装置第二实施例的功能模块示意图;

图6为本发明保护Root权限的装置第三实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

参照图1,图1为本发明保护Root权限的方法第一实施例的流程示意图,在本实施例中,所述保护Root权限的方法应用与终端或者终端的操作系统中,所述方法包括:

步骤S10,预先在终端的操作系统中添加伪环境变量。

本实施例中,需要预先在终端的操作系统中添加一个伪环境变量,具体可以在终端出厂之前就进行添加。例如,在终端出厂之前在终端的操作系统中添加一个伪环境变量“/security”。

可以理解的是,环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,如临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path环境变量中指定的路径去寻找。即环境变量主要是用于指定一个程序软件的路径,其包含诸如驱动器、路径或文件名之类的字符串,且环境变量控制着多种程序的行为,只有管理员才能添加、修改或删除操作系统系统环境变量。

进一步地,上述步骤S10中所述的在终端的操作系统中添加伪环境变量之后还包括:

将预先编译完成的伪SU程序保存在所述伪环境变量对应的存储目录中。

其中,预先编译一个伪SU程序,然后将该伪SU程序保存在上述伪环境变量对应的存储目录中,例如保存在上述伪环境变量对应的存储目录“/security”中。

其中,正常的SU程序可以让一个普通用户切换为超级用户或其他用户,并可临时拥有所切换用户的权限,及任意应用程序都可通过调用SU程序来获得root权限。而本实施例中所述的伪SU程序为空的程序文件或者不包括任何权限的安全程序,即应用程序通过调用本实施例中所述的伪SU程序时是无法获得任何root权限的。

步骤S20,当检测到所述终端的操作系统root之后,获取所述操作系统中存储SU程序的环境变量对应存储目录的读取优先级。

本实施例中,当终端的操作系统被root之后,则对操作系统进行root的root工具会将编译好的SU程序存储在其建立的环境变量对应的存储目录中,例如将编译好的SU程序存储在其建立的环境变量对应的存储目录“/system/bin”或“/system/xbin”中。

其中,在操作系统中,环境变量对应的存储目录都具有读取优先级,即任意应用程序在调用环境变量中的程序时需要按照环境变量对应存储目录的读取优先级进行调用,故本实施例中,当检测到所述终端的操作系统root之后,获取所述操作系统中存储SU程序的环境变量对应存储目录的读取优先级。

步骤S30,根据获取到的所述环境变量对应存储目录的读取优先级设置所述伪环境变量对应存储目录的读取优先级,其中,所述伪环境变量对应存储目录设置后的读取优先级高于获取到的所述环境变量对应存储目录的读取优先级。

本实施例中,在获取到所述环境变量对应存储目录的读取优先级之后,根据获取到的所述环境变量对应存储目录的读取优先级设置所述伪环境变量对应存储目录的读取优先级,使得所述伪环境变量对应存储目录设置后的读取优先级高于获取到的所述环境变量对应存储目录的读取优先级。

其中,当所述伪环境变量对应存储目录的读取优先级设置为高于操作系统root之后建立的所述环境变量对应存储目录的读取优先级之后,任何应用程序都只能调用优先级较高的伪环境变量对应存储目录中的伪SU程序,无法调用优先级较低的所述环境变量对应存储目录中的SU程序,从而无法获取到任何root权限。

本实施例所述的保护Root权限的方法,包括预先在终端的操作系统中添加伪环境变量,当检测到所述终端的操作系统root之后,获取所述操作系统中存储SU程序的环境变量对应存储目录的读取优先级,根据获取到的所述环境变量对应存储目录的读取优先级设置所述伪环境变量对应存储目录的读取优先级,使得所述伪环境变量对应存储目录设置后的读取优先级高于获取到的所述环境变量对应存储目录的读取优先级。本实施例通过预先在终端的操作系统中添加一个伪环境变量,并设置该伪环境变量对应存储目录的读取优先级高于root之后的操作系统中存储SU程序的环境变量对应存储目录的读取优先级,使得应用程序无法调用存储的SU程序,进而无法获取到任何root权限,解决了现有技术中终端的操作系统root之后,终端的root权限就会完全暴露的技术问题,提高了终端内数据的安全性。

进一步地,参照图2,图2为本发明保护Root权限的方法第二实施例的流程示意图,基于上述图1所述的实施例,本实施例中,在所述终端的操作系统root之后,上述保护Root权限的方法还包括:

步骤S40,若检测到任意应用发送的用于调用SU程序的调用指令,则将所述伪环境变量对应存储目录中的伪SU程序发送至所述应用。

当所述终端的操作系统root之后,root工具会在所述终端的操作系统中添加一个编译好的SU程序,然后任意应用程序就可以通过调用所述SU程序来获得root权限。

其中,由于本实施例中用于存储伪SU程序的伪环境变量对应存储目录的读取优先级,高于root工具在所述终端操作系统中建立的用于存储SU程序的环境变量对应存储目录的读取优先级,故在检测到任意应用发送的用于调用SU程序的调用指令后,都只能调用优先级较高的伪环境变量对应存储目录中的伪SU程序,即若检测到任意应用发送的用于调用SU程序的调用指令,则将优先级较高的所述伪环境变量对应存储目录中的伪SU程序发送至所述应用。

其中,本实施例中,在伪环境变量对应存储目录的读取优先级高于所述环境变量对应存储目录的读取优先级的情况下,应用程序只能提取到优先级较高的伪环境变量对应存储目录中的伪SU程序,而不能提取到优先级较低的所述环境变量对应存储目录中的SU程序。

本实施例所述的保护Root权限的方法,在所述终端的操作系统root之后,若检测到任意应用发送的用于调用SU程序的调用指令,则将所述伪环境变量对应存储目录中的伪SU程序发送至所述应用,使得所述应用无法获取到root工具建立的SU程序,从而无法获取到任何root权限,实现了在所述终端的操作系统root之后,有效保护root权限的目的。

进一步地,基于上述图1所述的实施例,本实施例中,在将预先编译完成的伪SU程序保存在所述伪环境变量对应的存储目录中之后还包括:

将所述伪SU程序的文件属性设置为只读,或者将所述伪SU程序的文件属性设置为不可删除。

其中,为了防止恶意软件修改或者删除上述预先添加的伪SU程序,从而提取root工具建立的SU程序来获得root权限,故本实施例中,在将预先编译完成的伪SU程序保存在所述伪环境变量对应的存储目录中之后,将所述伪SU程序的文件属性设置为只读,或者将所述伪SU程序的文件属性设置为不可删除。

另外,本实施例中所述的伪SU程序可以为空白的SU程序,其不包括任何用于调用root权限的命令,故任意应用在获取到所述伪SU程序之后,是无法获得任何root权限的。

本实施例所述的保护Root权限的方法,在将预先编译完成的伪SU程序保存在所述伪环境变量对应的存储目录中之后,将所述伪SU程序的文件属性设置为只读,或者将所述伪SU程序的文件属性设置为不可删除。本实施例通过将所述伪SU程序的文件属性设置为只读或者不可删除的方式,能够有效防止恶意软件通过修改或者删除所述伪SU程序来提取root工具建立的SU程序以获得root权限,实现了在所述终端的操作系统root之后,有效保护所述终端root权限的目的。

进一步地,参照图3,图3为本发明保护Root权限的方法第三实施例的流程示意图,基于上述图1和图2所述的实施例,本实施例中,所述保护Root权限的方法还包括:

步骤S50,预先在所述伪SU程序中添加提醒消息或者警告消息,当任意应用接收到所述伪SU程序之后,则输出所述提醒消息或者警告消息,以提醒用户获取root权限失败。

本实施例中,预先在所述伪SU程序中添加提醒消息或者警告消息,例如“获取root权限失败”或者“禁止获取root权限”等,用来提醒用户获取root权限失败,或者警告用户为了终端内数据的安全,禁止获取root权限,以及当有恶意应用程序想要获取root程序时,用来及时提示用户进行防范等等。当任意应用接收到所述伪SU程序之后,则输出所述伪SU程序中的提醒消息或者警告消息。

其中,可以将所述提醒消息或者警告消息输出至所述应用的操作界面,或者也可以直接将所述提醒消息或者警告消息输出终端的显示界面中,以提醒用户。

本实施例所述的保护Root权限的方法,通过预先在所述伪SU程序中添加提醒消息或者警告消息,当任意应用接收到所述伪SU程序之后,则输出所述提醒消息或者警告消息,以提醒用户获取root权限失败的方式,能够在终端root之后,提醒用户获取root失败,或者提醒用户为了终端内数据的安全禁止该应用获取root权限,从而进一步保护了终端在root之后,终端内数据的安全。

参照图4,图4为本发明保护Root权限的装置第一实施例的功能模块示意图,在本实施例中,所述保护Root权限的装置为终端中的一部分,所述保护Root权限的装置100包括:

添加模块10,用于预先在终端的操作系统中添加伪环境变量。

本实施例中,需要预先在终端的操作系统中添加一个伪环境变量,具体可以在终端出厂之前就进行添加。例如,在终端出厂之前在终端的操作系统中添加一个伪环境变量“/security”。

可以理解的是,环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,如临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path环境变量中指定的路径去寻找。即环境变量主要是用于指定一个程序软件的路径,其包含诸如驱动器、路径或文件名之类的字符串,且环境变量控制着多种程序的行为,只有管理员才能添加、修改或删除操作系统系统环境变量。

进一步地,上述添加模块10还用于:

在所述终端的操作系统中添加伪环境变量之后,将预先编译完成的伪SU程序保存在所述伪环境变量对应的存储目录中。

其中,预先编译一个伪SU程序,然后将该伪SU程序保存在上述伪环境变量对应的存储目录中,例如保存在上述伪环境变量对应的存储目录“/security”中。

其中,正常的SU程序可以让一个普通用户切换为超级用户或其他用户,并可临时拥有所切换用户的权限,及任意应用程序都可通过调用SU程序来获得root权限。而本实施例中所述的伪SU程序为空的程序文件或者不包括任何权限的安全程序,即应用程序通过调用本实施例中所述的伪SU程序时是无法获得任何root权限的。

获取模块20,用于当检测到所述终端的操作系统root之后,获取所述操作系统中存储SU程序的环境变量对应存储目录的读取优先级。

本实施例中,当终端的操作系统root之后,则对操作系统进行root的root工具会将编译好的SU程序存储在其建立的环境变量对应的存储目录中,例如将编译好的SU程序存储在其建立的环境变量对应的存储目录“/system/bin”或“/system/xbin”中。

其中,在操作系统中,环境变量对应的存储目录都具有读取优先级,即任意应用程序在调用环境变量中的程序时需要按照环境变量对应存储目录的读取优先级进行调用,故本实施例中,当检测到所述终端的操作系统root之后,获取所述操作系统中存储SU程序的环境变量对应存储目录的读取优先级。

设置模块30,用于根据获取到的所述环境变量对应存储目录的读取优先级设置所述伪环境变量对应存储目录的读取优先级,其中,所述伪环境变量对应存储目录设置后的读取优先级高于获取到的所述环境变量对应存储目录的读取优先级。

本实施例中,在获取到所述环境变量对应存储目录的读取优先级之后,根据获取到的所述环境变量对应存储目录的读取优先级设置所述伪环境变量对应存储目录的读取优先级,使得所述伪环境变量对应存储目录设置后的读取优先级高于获取到的所述环境变量对应存储目录的读取优先级。

其中,当所述伪环境变量对应存储目录的读取优先级设置为高于操作系统root之后建立的所述环境变量对应存储目录的读取优先级之后,任何应用程序都只能调用优先级较高的伪环境变量对应存储目录中的伪SU程序,无法调用优先级较低的所述环境变量对应存储目录中的SU程序,从而无法获取到任何root权限。

本实施例所述的保护Root权限的装置,包括预先在终端的操作系统中添加伪环境变量,当检测到所述终端的操作系统root之后,获取所述操作系统中存储SU程序的环境变量对应存储目录的读取优先级,根据获取到的所述环境变量对应存储目录的读取优先级设置所述伪环境变量对应存储目录的读取优先级,使得所述伪环境变量对应存储目录设置后的读取优先级高于获取到的所述环境变量对应存储目录的读取优先级。本实施例通过预先在终端的操作系统中添加一个伪环境变量,并设置该伪环境变量对应存储目录的读取优先级高于root之后的操作系统中存储SU程序的环境变量对应存储目录的读取优先级,使得应用程序无法调用存储的SU程序,进而无法获取到任何root权限,解决了现有技术中终端的操作系统root之后,终端的root权限就会完全暴露的技术问题,提高了终端内数据的安全性。

进一步地,参照图5,图5为本发明保护Root权限的装置第二实施例的功能模块示意图,基于上述图4所述的实施例,本实施例中,在所述终端的操作系统root之后,上述保护Root权限的装置100还包括:

调用模块40,用于若检测到任意应用发送的用于调用SU程序的调用指令,则将所述伪环境变量对应存储目录中的伪SU程序发送至所述应用。

当所述终端的操作系统root之后,root工具会在所述终端的操作系统中添加一个编译好的SU程序,然后任意应用程序就可以通过调用所述SU程序来获得root权限。

其中,由于本实施例中用于存储伪SU程序的伪环境变量对应存储目录的读取优先级,高于root工具在所述终端操作系统中建立的用于存储SU程序的环境变量对应存储目录的读取优先级,故在检测到任意应用发送的用于调用SU程序的调用指令后,都只能调用优先级较高的伪环境变量对应存储目录中的伪SU程序,即若检测到任意应用发送的用于调用SU程序的调用指令,则将优先级较高的所述伪环境变量对应存储目录中的伪SU程序发送至所述应用。

其中,本实施例中,在伪环境变量对应存储目录的读取优先级高于所述环境变量对应存储目录的读取优先级的情况下,应用程序只能提取到优先级较高的伪环境变量对应存储目录中的伪SU程序,而不能提取到优先级较低的所述环境变量对应存储目录中的SU程序。

本实施例所述的保护Root权限的装置,在所述终端的操作系统root之后,若检测到任意应用发送的用于调用SU程序的调用指令,则将所述伪环境变量对应存储目录中的伪SU程序发送至所述应用,使得所述应用无法获取到root工具建立的SU程序,从而无法获取到任何root权限,实现了在所述终端的操作系统root之后,有效保护root权限的目的。

进一步地,基于上述图4所述的实施例,本实施例中,上述添加模块10还用于:

在将预先编译完成的伪SU程序保存在所述伪环境变量对应的存储目录中之后,将所述伪SU程序的文件属性设置为只读,或者将所述伪SU程序的文件属性设置为不可删除。

其中,为了防止恶意软件修改或者删除上述预先添加的伪SU程序,从而提取root工具建立的SU程序来获得root权限,故本实施例中,在将预先编译完成的伪SU程序保存在所述伪环境变量对应的存储目录中之后,将所述伪SU程序的文件属性设置为只读,或者将所述伪SU程序的文件属性设置为不可删除。

另外,本实施例中所述的伪SU程序可以为空白的SU程序,其不包括任何用于调用root权限的命令,故任意应用在获取到所述伪SU程序之后,是无法获得任何root权限的。

本实施例所述的保护Root权限的装置,在将预先编译完成的伪SU程序保存在所述伪环境变量对应的存储目录中之后,将所述伪SU程序的文件属性设置为只读,或者将所述伪SU程序的文件属性设置为不可删除。本实施例通过将所述伪SU程序的文件属性设置为只读或者不可删除的方式,能够有效防止恶意软件通过修改或者删除所述伪SU程序来提取root工具建立的SU程序以获得root权限,实现了在所述终端的操作系统root之后,有效保护所述终端root权限的目的。

进一步地,参照图6,图6为本发明保护Root权限的装置第三实施例的功能模块示意图,基于上述图4和图5所述的实施例,本实施例中,所述保护Root权限的装置100还包括:

提醒模块50,用于预先在所述伪SU程序中添加提醒消息或者警告消息,当任意应用接收到所述伪SU程序之后,则输出所述提醒消息或者警告消息,以提醒用户获取root权限失败。

本实施例中,预先在所述伪SU程序中添加提醒消息或者警告信息,例如“获取root权限失败”或者“禁止获取root权限”等,用来提醒用户获取root权限失败,或者警告用户为了终端内数据的安全,禁止获取root权限,以及当有恶意应用程序想要获取root程序时,用来及时提示用户进行防范等等。当任意应用接收到所述伪SU程序之后,则输出所述伪SU程序中的提醒消息或者警告消息。

其中,可以将所述提醒消息或者警告消息输出至所述应用的操作界面,或者也可以直接将所述提醒消息或者警告消息输出终端的显示界面中,以提醒用户。

本实施例所述的保护Root权限的装置,通过预先在所述伪SU程序中添加提醒消息或者警告消息,当任意应用接收到所述伪SU程序之后,则输出所述提醒消息或者警告消息,以提醒用户获取root权限失败的方式,能够在终端root之后,提醒用户获取root失败,或者提醒用户为了终端内数据的安全禁止该应用获取root权限,从而进一步保护了终端在root之后,终端内数据的安全。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1