我目前正在使用XposedBridge处理应用程序,我有很多问题。我将从简单的开始。
如何获取debug.log文件?
我找不到debug.log文件。我尝试过手机外壳以及两种adb方式: A. adb shell data / data / de.robv.android.xposed.installer / log / debug.log B. adb shell“su -c'cat数据/ data / de.robv.android.xposed.installer / log / debug.log'” C. adb shell cat data / data / de.robv.android.xposed.installer / log / debug.log
adb说:“没有这样的文件或目录”
手机外壳可以cd到/ data和/ data / data但不能用。不能没有数据的。拒绝访问。当我尝试adb ls时adb也是如此。
手机Moto E XT1023扎根了。尽管如此,shell无法读取某些目录。我在这里发布了一个问题,但似乎没有人愿意回答。
我不得不去ES文件资源管理器。管理到/ data。 ES说文件夹为空。管理到Emulator / 0 / de.robv.android.xposed.installer或类似的东西。有一个名为files的子目录。里面是安装程序。没有debug.log。
使用ES搜索debug.log的所有目录。什么都没找到。
一旦我在项目的单独文件中创建了XposedBridge类,一旦我做了XposedBridge应该做的任何事情(覆盖方法,在方法之前和之后插入代码,等等)覆盖的方法或方法使用代码在之前和之后运行,或者覆盖的数据将继续被覆盖,直到应用程序退出。这是真的?
是否有任何简单但功能强大且全面的手册或参考,或者最好的教程?
我可以为debug.log.file指定另一个目录吗?
如果我能够手动创建目录\ data \ data,这会使Xposed保存debug.log吗?
我很高兴我设法部分回答了第一个问题,这个问题不仅与XposedBridge有关,而且对于有根电话来说是一个全球性的根本问题,所以我现在甚至都想不出任何其他问题。我没有debug.log,但我有error.log,我知道如何阅读这些。以下是有兴趣的人:
为了能够reed XposedBridge日志文件:
转到专业的Moto E adb(也可以使用标准的)。
输入:
************
* adb root *
************
确保root访问权限。
美元符号$必须在命令前显示为符号。 $表示已输入adb shell环境。
在$之后,输入:
******
* su *
******
Sharp Sign#必须显示为命令前的符号。 #表示已输入root。输入root后,即可完全访问手机。因此:
**************************************************
* cd /data/data/de.robv.android.xposed.installer *
**************************************************
可以执行并输入目录/data/data/de.robv.android.xposed.installer。
输入:
******
* ls *
******
查看此目录的内容。
如果存在error.log或debug.log文件,请键入:
*****************
* cat error.log *
*****************
和或
*****************
* cat debug.log *
*****************
查看这些文件。
输入:
********
* exit *
********
返回更安全的$提示符。
输入:
********
* exit *
********
退出adb。
注意:在开发项目时,adb root可能无法运行。其余的工作。
我仍然没有任何debug.log。可能是XposedBridge线不运行。将使用手册中的一些简单方法进行检查。
这是我发现的。我在计算机上创建了一个名为debug.log的空文本文件,并将文件传输到设备的主根,/ sdcard目录,然后将文件复制到/data/data/de.robv.android.xposed.installer / log只是为了看看会发生什么。什么都没发生。该文件为空。
以下是我发现的可能有用的内容:
阅读日志文件的命令:
adb shell
su
cd /data/data/de.robv.android.xposed.installer/log
cat error.log
在su shell之后使用cp SOURCE DESTINATION,#prompt,从一个文件中复制文件
设备上另一个目录。
重要注意事项:
所有Xposed类必须放在xposed_init中,否则Android Studio 1.2会将它们报告为从未使用过。
在built.gradle中,有:
/* SSB : Added manually so the gradle builds with the
XposedBridgeApi-54.jar which is in the app -> libs
but not to include the jar in the apk. */
dependencies {
provided fileTree(dir: 'libs', include: ['*.jar'])
}
这些都是手动的。
更新:我已经能够清理代码,并设法找到我没有debug.log的原因。这是因为我没有加载两个XposedBridge类(一个是zygote的初始化,另一个是带有钩子和替换的工作文件)。 error.log显示:没有找到类“package(strts without a com。)NameOfThePackageWithoutComDot.NameOfTheExposedClass in NameOfThePackageWithoutComDot-2.apk”
这是两类的说法。
答案 0 :(得分:0)
问题部分解决:
我删除了字符串"包"从xposed_init,这解决了问题。因此,而不是:
package TheNameOfThePackage.TheNameOfTheClass
xposed_init包含:
TheNameOfThePackage.TheNameOfTheClass
没有"包"在Android Studio通常提出和要求的名称前面。
现在,自定义类似乎加载OK和XMain,其中zygote是init生成一个小说。
无论如何,带有测试代码的自定义类都可以正常工作。生成debug.log文件。但是,应用程序似乎没有写入文件,debug.log只说:
d.xposed.installer/log/debug.log
内部。