LSPosed 安装、模块开发笔记

前言

最近几天从零接触LSPosed(xposed),需要自己开发模块进行使用,做一下学习笔记。

本篇内容在已经root并且成功刷入了Magisk的基础上进行。

注意:LSPosed只支持安卓版本8.x+的设备。如果在8.0以下需要使用xposed。他们的模块开发接口也是一样的。

什么是Magisk

我理解它是需要root权限的工具类软件的载体,通过它来获取root权限(现在的安卓手机都不能直接获取root权限),同时也起到一种“隐身”的作用,防止被应用程序知道被有root权限的工具操作了。(有用过手游外挂或者gg修改器的人应该懂什么意思🤪)

引用AI的回答:

Magisk是一个非常流行的Android系统修改工具,由XDA开发者开发。它的核心功能是提供一个系统级的界面,允许用户在不改变系统分区的情况下,以模块化的方式对Android系统进行修改和定制。Magisk的主要特点和作用包括:

系统分区保护:Magisk通过在系统启动过程中注入代码,实现了对系统分区的无损修改。这意味着用户可以在享受定制化功能的同时,保持系统的纯净状态,便于官方系统更新。

Root权限管理:Magisk提供了一个灵活的SU(SuperUser)管理机制,允许用户控制哪些应用程序可以获得root权限,提高了安全性。

模块支持:Magisk的一个关键特性是支持各种模块,这些模块可以是功能增强、界面美化、系统优化等。用户可以根据需求安装不同的Magisk模块来扩展或修改系统功能,LSPosed就是其中之一。

隐藏特性:Magisk还具有“隐身”功能,能够隐藏系统被修改的事实,这对于某些需要安全验证的应用(如银行应用)特别有用。

至于为什么LSPosed需要使用Magisk,这是因为:

安全性和便利性:Magisk为LSPosed这样的系统级修改框架提供了一个安全可靠的安装环境。通过Magisk管理器,用户可以轻松安装、更新或卸载LSPosed,而不会影响到系统的完整性。
权限管理:LSPosed需要root权限来执行其核心的Hook功能,Magisk提供的SU管理机制正好满足了这一需求,同时允许用户精细控制权限分配,确保安全。

模块化集成:作为Magisk的一个模块,LSPosed可以无缝集成到Magisk生态系统中,与其他模块共存,共同为用户提供一个高度可定制的Android体验。

什么是LSPosed(xposed)

简单说就是可以在不修改应用程序的情况下Hook应用程序。类似于使用frida进行hook app。LSPosed的作用就是你可以自己开发一个安卓Hook应用,然后使用LSPosed加载它,并且指定对某个app进行hook。

引用AI回答:

LSPosed是一种针对Android系统的高级定制和修改框架,它是Edxposed的一个分支项目。LSPosed的设计目标是在不修改任何应用和系统组件的情况下,通过hook技术实现在运行时修改应用程序行为的能力,类似于知名的Xposed框架。这一框架为Android用户和开发者提供了强大的功能,允许他们定制系统和应用程序,比如修改系统设置、视觉效果、或者增强应用功能等,而无需触及原始的应用程序代码或重新编译系统。

LSPosed的关键特性包括:

基于Riru的ART Hook框架:LSPosed建立在Riru的基础上,Riru是一个低层次的Hook框架,能够在Android系统的ART(Android Runtime)层面上工作,支持从Android 8.0到11的版本。

与Xposed兼容的API:它提供了与原版Xposed相同的API,这意味着许多为Xposed开发的模块可以直接在LSPosed上运行,降低了迁移成本。

更高的效率和稳定性:相比其前身Edxposed,LSPosed被设计得更加简洁、高效且稳定,减少了潜在的崩溃和性能问题。

长期更新和支持:由于Edxposed面临着停更的风险和稳定性问题,LSPosed作为一个活跃维护的项目,承诺提供长期的更新支持,不断集成新功能并保持与最新Android版本的兼容性。
使用YAHFA或SandHook进行Hook:这两种技术帮助LSPosed在应用启动时动态插入代码,实现无痕且高效的Hook操作,无需重启手机即可使Hook模块生效。

对于希望深度定制自己Android设备体验的高级用户和开发者而言,LSPosed是一个强大且灵活的工具。不过,使用此类框架通常需要root权限,并且涉及系统级别的修改,因此也伴随着一定的风险和挑战。

准备

官方仓库:(如果没有🪜下载太慢可以关注公众号(IT绿色恐龙)回复`LSPosed`获取网盘链接)
LSPosed:https://github.com/LSPosed/LSPosed/releases

安装LSPosed

推送文件到手机

# 连接了多台设备,指定一台进行push,如果你只用usb或者使用了tcpip连接了一台设备可以直接adb push
adb -s 1f79e024 push ~/Downloads/LSPosed-v1.9.2-7024-zygisk-release.zip /sdcard/

安装

1、首先确保,你的Magisk能够读取到版本。
2、如果`Zygisk` 显示 否,需要在进入设置,勾选上 `Zygisk ... 在Zygote中运行Magisk` 
3、然后在Magisk的`模块`中点击`从本地安装` 选择刚才推送进手机的LSPosed.zip文件然后确认安装。
4、等待安装提示完成后根据提示重启手机。
5、重启完成后进入Magisk进入模块界面,勾选上`Zygisk LSPosed`。然后你在桌面可能会发现找不到应用图标,然后进入拨号界面输入`*#*#5776733#*#*` 就能打打开LSPosed。
6、然后进入LSPosed的设置,选择`创建快捷方式`。
7、完成安装。

安装环境(Android Studio) 用于开发LSPosed模块

准备

如果你安装了JetBrains的ToolBox,可以找到Android Studio然后安装。
Android Studio官网:https://developer.android.google.cn/studio?hl=zh-cn
下载完成后根据文字提示安装就行,看不懂英语就打开翻译软件。
注意:目前还不需要🪜,下载速度很快。

Android Studio汉化(如果你喜欢看英文请跳过)

1、安装完成后进入`Welcome` 界面,选择左边的`Plugins`,在选择上方的Marketplace。
2、然后搜索`chinese`,看看有没有一个名字为`Chinese ​(Simplified)​ Language Pack / 中文语言包`的插件,如果有的话直接安装,然后就重启就可以了。如果没有则进入下一步。
3、点击左下角齿轮进入about窗口找到当前的版本号(标题下面那一串)。比如我现在的Build #AI-233.14808.21.2331.11709847.....  233.14808就是我的版本号。
汉化包下载链接(如果进不去可以去公众号回复`IDE汉化`获取,只有233.148版本的):https://plugins.jetbrains.com/plugin/13710-chinese-simplified-language-pack----/versions#tabs
4、找到接近的版本的汉化包然后下载。上面的Compatibility :ide....不用管,默认就行。
5、解压刚才下载到的汉化包,解压到一个存放目录,最好是专门用来放汉化包的目录,这个汉化包不能删除。然后回到 Android Studio 的`Welcome` 界面,选择`Plugins` 选择上方的`installed`,点击小齿轮然后选择`Insall Plugin from Disk` 选择刚才解压的汉化包目录。找到/lib/zh.233.148.jar,然后确认,根据提示重启就可以了。

开发LSPosed模块

创建基础项目

1、新建项目,选择`No Activity`,选择下一步。
2、语言改成Java,如果你会Kotlin也可以选Kotlin,其他可以默认,然后确定。
3、第一次启动需要初始化Gradle这玩意需要🪜,不然很慢,还可能超时。
4、初始化后左边的目录结构可能会有点变化,找到 Gradle Scripts 然后选择下面的子文件
在下面的dependencies结构中添加`compileOnly 'de.robv.android.xposed:api:82'`
dependencies {
    ....
    compileOnly 'de.robv.android.xposed:api:82'
}
5、然后在选择同级目录的`settings.gradle` 在`repositories`中添加 maven { url 'https://api.xposed.info/' }

repositories {
        google()
        mavenCentral()
        maven { url 'https://api.xposed.info/' }

    }
    
6、然后点击上面蓝色字体`Sync now`更新你刚才改动的内容,并且自动下载依赖。
7、然后在根目录找到/app/src/main/AndroidManifest.xml,在<application></application>内添加以下内容,原本的结构应该是<application .... /> 记得把/>改成</application>
<!--        定义这是一个xposed模块-->
        <meta-data
            android:name="xposedmodule"
            android:value="true" />
        <!--     xposed 模块描述-->
        <meta-data
            android:name="xposeddescription"
            android:value="HookQQ短视频" />
        <!--   xposed 支持最小版本-->
        <meta-data
            android:name="xposedminversion"
            android:value="82" />
8、然后在app目录下新建目录,选择新建->Folder->Assets Folder ,不用勾选改变路径,然后在该目录下创建文件xposed_init,这个文件是用来存放Hook启动类路径的。如:com.lspmodule.qqhook.HookMain
9、在你创建好的包主目录新建类,假设类名HookMain。
则把`package com.lspmodule.qqhook;`下面的代码改成以下内容:
import android.util.Log;

import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.callbacks.XC_LoadPackage;


public class HookMain implements IXposedHookLoadPackage {

    private static final String TAG = "HookQQ";

    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
        Log.i(TAG, "Hook Start....");
        Log.i(TAG, "packageName:" + lpparam.packageName);
    }
}
10、然后右键这个类文件,然后选择`复制路径/引用->复制引用` 然后粘贴到刚才创建好的xposed_init目录。
11、完结,LSPosed模块的基本结构就是这样,然后就可以构建成APK,然后推送到手机上安装,安装好后在LSPosed中就可以自动识别到模块。

结束

如果文章内容有什么地方不对,欢迎评论或者私信提醒。

如果你有更多的案例也可以私信我添加到文章内容中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/607493.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3.ERC4626

ERC4626是一个vault&#xff0c;在DAI中&#xff0c;使用ETH换取DAI。其流程为先充值ETH到maker vault。 Vault 资产的管理、分红用户充值某项资产获取某个凭证该凭证作为分红、推出的依据Yield Farming/借贷/质押等 以太坊改进提案EIP:ethereum improvemwnt proposal 最初E…

Mysql8.0.30一次表锁问题的解决

起因 给material_config_field_data表的字段建立全文索引的时&#xff0c;发现该表卡死&#xff0c;然后无法对该表进行任何操作。 查找问题 执行sql #这个命令会显示InnoDB存储引擎的详细状态信息&#xff0c;包括锁等待和锁争用的信息 SHOW ENGINE INNODB STATUS结果 复制S…

​Inf-DiT:Upsampling Any-Resolution Image、Vidu、MVDiff、Trio-ViT

本文首发于公众号&#xff1a;机器感知 ​Inf-DiT&#xff1a;Upsampling Any-Resolution Image、Vidu、MVDiff、Trio-ViT Inf-DiT: Upsampling Any-Resolution Image with Memory-Efficient Diffusion Transformer Diffusion models have shown remarkable performance in im…

树莓派4-使用systemctl设置开机自启oled播放服务ip地址与logo

一、目标&#xff1a; 开机自启oled显示服务ip与端口&#xff0c;并播放logo 二、过程&#xff1a; 1、出现luma库不存在问题&#xff0c;修改.service文件&#xff0c;增加用户与用户组。在本地测试过程中可以使用python script.py执行python脚本&#xff0c;所以将.servic…

java递归-(迷宫问题)

前面 这里我们来玩个有趣的事情&#xff0c;链接是0221_韩顺平Java_老鼠出迷宫1_哔哩哔哩_bilibili 我们要找的是小老鼠按路径走到右下点 要点 我们这里方法调用时对于引用类型&#xff1a;如java中引用数据类型有哪些&#xff1f;_java引用数据类型-CSDN博客 会共享引用类型…

斯坦福大学的在线密码学课程

密码学是保护计算机系统信息不可或缺的工具。在本课程中&#xff0c;您将了解密码系统的内部工作原理&#xff0c;以及如何在实际应用中正确使用它们。课程首先将详细讨论当强大的对手窃听和篡改流量时&#xff0c;拥有共享密钥的双方如何进行安全通信。我们将研究许多已部署的…

部署Gerapy

1.Gerapy 是什么&#xff1f; Gerapy 是一款基于 Python 3 的分布式爬虫管理框架&#xff0c;它旨在简化和优化分布式爬虫的部署、管理和监控过程。 2.作用与功能&#xff1f; 2.1分布式管理&#xff1a; Gerapy 允许用户在多台机器上部署和管理Scrapy爬虫&#xff0c;实现爬虫…

【计算机毕设】小型企业办公自动化系统+vue - 免费源码(私信领取)

免费领取源码 &#xff5c; 项目完整可运行 &#xff5c; v&#xff1a;chengn7890 诚招源码校园代理&#xff01; 1. 研究目的 本项目旨在设计并实现一个小型企业办公自动化系统&#xff0c;利用Vue作为前端框架&#xff0c;为企业员工提供便捷的办公管理工具&#xff0c;提升…

基于51单片机的八路抢答器—加随机抽选功能

基于51单片机的八路抢答器 &#xff08;仿真&#xff0b;程序原理图&#xff0b;设计报告&#xff09; 功能介绍 具体功能&#xff1a; 1.主持人按键控制开始抢答&#xff1b; 2.开始抢答按下&#xff0c;数码管20秒倒计时&#xff1b; 3.8个按键代表八位选手&#xff0c;谁…

python面向函数

组织好的&#xff0c;可重复利用的&#xff0c;用来实现单一&#xff0c;或相关联功能的代码段&#xff0c;避免重复造轮子&#xff0c;增加程序复用性。 定义方法为def 函数名 (参数) 参数可动态传参&#xff0c;即使用*args代表元组形式**kwargs代表字典形式&#xff0c;代替…

tsconfig 备忘清单

前言 ❝ Nealyang/blog0 使用 ts 已多年&#xff0c;但是貌似对于 tsconfig 总是记忆不清&#xff0c;每次都是 cv 历史项目&#xff0c;所以写了这篇备忘录&#xff0c;希望能帮助到大家。 本文总结整理自 Matt Pocock 的一篇文章3&#xff0c;加以个人理解&#xff0c;并做了…

【爬虫基础1.1课】——requests模块

目录索引 requests模块的作用&#xff1a;实例引入&#xff1a; 特殊情况&#xff1a;锦囊1&#xff1a;锦囊2: 这一个栏目&#xff0c;我会给出我从零开始学习爬虫的全过程。感兴趣的小伙伴可以关注一波&#xff0c;用于复习和新学都是不错的选择。 那么废话不多说&#xff0c…

【Matlab-动画-附源码】3分钟教你用Matlab做一个Lorenz动画

lorenz-x-y-z Lorenz三个维度数据 在科研工作中&#xff0c;经常需要将数据可视化以便更好地理解和传达研究成果。 但大家主要放静态图片&#xff0c;而视频或动画通常比静态图片更具吸引力和表现力。AE, Manim太难学&#xff0c;Matlab就可以用来制作动画。 在这篇博客中&…

Linux-信号执行

1. 信号什么时候被处理 当进程从内核态返回到用户态的时候&#xff0c;进行信号的检测和处理 什么内核态&#xff0c;什么又是用户态呢&#xff1f; 当进程在CPU上运行时&#xff0c;内核态&#xff1a;允许进程访问操作系统的代码和数据&#xff0c;用户态&#xff1a;进程只…

视频降噪算法 hqdn3d 原理分析

视频降噪 视频降噪是一种处理技术&#xff0c;旨在减少视频中的噪声&#xff0c;提高画面质量。噪声可能来自多种源头&#xff0c;包括摄像机的传感器、压缩算法、传输过程中的干扰等。降噪处理对于视频监控、视频会议、电影后期制作以及任何需要高画质输出的应用场景都非常重…

【面经】网络

了解TCP/IP协议,了解常用的网络协议&#xff1a;study-area 一、TCP/IP协议 TCP/IP协议是一组网络通信协议&#xff0c;旨在实现不同计算机之间的信息传输。 1、TCP/IP四层模型&#xff1a; 网络接口层、网络层、传输层和应用层。 网络接口层&#xff1a;定义了数据的格式和…

揭秘抖音快速涨10000粉的方法:巨量千川投流让你轻松快速增粉

抖音已经成为了当今社交平台的热门之一&#xff0c;而如何快速涨粉已经成为了很多人关注的焦点。本文将揭秘一种高效的方式——巨量千川投流&#xff0c;通过官方真实流量和真实粉丝&#xff0c;每天快速涨关注&#xff0c;实现快速增粉1000~10万。 巨量千川投流是一种专业的抖…

Python-VBA函数之旅-pow函数

目录 一、pow函数的常见应用场景 二、pow函数使用注意事项 三、如何用好pow函数&#xff1f; 1、pow函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a;神奇夜光杯-CSDN博客 一、pow函数的常见应用场景 Py…

中小学校活动向媒体投稿报道宣传有哪些好方法

作为一所中小学校的教师,我肩负着向外界展示学校风采、宣传校园文化活动的重要使命。起初,每当学校举办特色活动或取得教学成果时,我都会满怀热情地撰写新闻稿,希望通过媒体的平台让更多人了解我们的故事。然而,理想丰满,现实骨感,我很快发现,通过电子邮件向媒体投稿的过程充满…

如何进行资产梳理

前言 为什么要进行资产梳理&#xff1f; 资产梳理方式一: 一、安全防护设备资产 二、对外开放服务项目资产 三、项目外包业务流程资产 资产梳理方式二: 一、业务资源梳理 二、设备资产梳理 三、第三方的服务信息梳理 风险梳理 风险有哪些&#xff1f; 一,账号权限风…
最新文章