首页
社区
课程
招聘
[原创]修改LineageOS 15.1源码,实现内录(已测试)
发表于: 2018-5-26 16:46 22127

[原创]修改LineageOS 15.1源码,实现内录(已测试)

2018-5-26 16:46
22127

参考LineageOS:Build for oneplus3

记得在源码根目录执行. build/envsetup.sh,方便我们使用godir快速切换目录。

Android源码中的文件和目录结构经常发生变化,即使7.1和8.1的版本也有很大变化,我们在LineageOS 15.1的frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp文件中定位下面的代码,并且添加+后面的的两行代码:

这两行代码的意思大概是输出到REMOTE_SUBMIX的同时,也在耳机(WIRED_HEADPHONE)或扬声器(SPEAKER)输出声音。

如果使用其它版本的源码,在这个文件可能找不到相应的代码,可以先用godir audiopolicy搜索关键的目录,然后在那个目录中使用grep -rn getDeviceForStrategy或者其它相关字符串定位关键代码。

$ godir audiopolicy
[1] ./frameworks/av/services/audiopolicy
[2] ./frameworks/av/services/audiopolicy/common
[3] ./frameworks/av/services/audiopolicy/common/include
...........
...........
[28] ./frameworks/av/services/audiopolicy/service
[29] ./frameworks/base/media/java/android/media/audiopolicy
[30] ./prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/include

Select one: 1
$ grep -rn AUDIO_DEVICE_OUT_REMOTE_SUBMIX\;
enginedefault/src/Engine.cpp:484: device2 = availableOutputDevices.types() & AUDIO_DEVICE_OUT_REMOTE_SUBMIX;
managerdefault/AudioPolicyManager.cpp:1208: newDevice = AUDIO_DEVICE_OUT_REMOTE_SUBMIX;

LineageOS系统内置一个录制工具,源代码位于packages/apps/Recorder/,录制视频时可以选择是否录制麦克风,我们把相关代码做一点改动,把录制麦克风改成内录。这样的话不管录制游戏还是音乐视频,都不会有外面的声音:

如上图,首先在AndroidManifest.xml中添加一行:

然后把RecordingDevice.java中输入源由MIC替换为REMOTE_SUBMIX

至少要有200G的剩余空间,在i5-7500处理器、16G内存的台式机编译一次用时3小时8分40秒。编译后生成的文件基本都在./out目录下

刷机前先Backup备份数据,然后Wipe恢复出厂设置,否则可能会刷机失败,进不去系统。如果刷机失败,或者不想用自己编译的系统,可以Restore重置先前备份的系统。

修改少量代码后,重新编译系统,只用了6分29秒。如果执行repo sync同步代码后再编译,时间可能会长一点。

我在比较吵的环境下录制手机屏幕,同时手机在播放一个音乐,结果视频在我手机上打不开,但是把录制的视频文件拖到电脑后发现没有杂音。我刚开始以为是权限的原因,但是重置之前的系统后发现又可以正常播放,我还不知道是什么原因。

也有可能是因为我刷机后,发现Recorder应用的AndroidManifest.xml忘记修改了,但是我又不想重新编译系统,于是只编译了这个应用。在重刷系统后,在recovery中挂载system分区直接替换掉system/priv-app/Recorder/Recorder.apk文件导致的。

找到原因了,刷机后大概一些关键系统进程还没有启动导致图库也打不开、也看不到SD卡中的大部分文件,等个十来分钟就会恢复,应该是Google为了提高Android刷机后首次启动的速度,让不那么关键的进程在开机后再慢慢启动。

现在TWRP也有图案解锁,系统也有图案解锁,数据安全性提高了很多。如果重置之前备份的系统,发现图案解锁失败(没错,我就遇到了),可以重新进入recovery模式,删掉/data/system/locksettings.db文件,就可以绕过开机图案解锁了。

Google: Audio Terminology

Google: MediaRecorder.AudioSource

 
 
 
 
 

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-11-7 08:27 被Explorerl编辑 ,原因: 更新grep
收藏
免费 1
支持
分享
最新回复 (13)
雪    币: 3181
活跃值: (1801)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
有时间来篇  小白刷机文  ?
2018-5-29 16:54
0
雪    币: 6818
活跃值: (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
2018-5-29 23:21
0
雪    币: 6682
活跃值: (1156)
能力值: ( LV5,RANK:158 )
在线值:
发帖
回帖
粉丝
4

小白刷机教程

刷机不难,重在实践。刷机过程中你会遇到各种奇怪的问题,解决各种奇怪的问题,难以一一讲述。只要随时做好救砖的准备就行了!我刷机几十次,只救过一次砖。有时候为了体验不同的系统,一个小时可以刷三五次,比装电脑系统快多了!

刷机前注意事项

  • 手机冲足电
  • 下载好救砖工具(可能只能在某个Windows版本下运行)、第三方recovery(如TWRP),待刷入的ROM
  • 已经备份数据的手机(建议使用二手一加,因为便宜、刷机简单)

刷机步骤

下面几步只需要第一次刷机时执行,除非你手动锁定才需要重新解锁

  • 在开发者选项中允许解锁(适用于一加。小米、华为需要向官网申请解锁码)
  • 重启系统进入fastboot模式(adb reboot bootloader)
  • 解锁bootloader,可能需要管理员/root权限(fastboot oem unlock)

第一次刷第三方ROM时必须执行,如果recovery版本更新,也可以选择执行

  • 刷入第三方recovery(fastboot flash recovery twrp-xxx.img)

每次刷机需要执行的步骤,推送ROM到SD卡视情况而定

  • 重启手机进入recovery中,恢复出厂设置
  • 把待刷入的ROM推送到SD卡中,这一步也可以放到前面执行,但是如果恢复出厂设置同时也清空SD卡数据,还是在这里执行吧(adb push lineageos-15.1-xxx.zip sdcard)
  • 刷入ROM,重启手机进入新的系统

上面的twrp-xxx.imglineageos-15.1-xxx.zip可以根据自己下载的具体版本做修改。

最后于 2018-5-30 08:42 被Explorerl编辑 ,原因:
2018-5-30 08:22
0
雪    币: 3181
活跃值: (1801)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
给赞 
2018-5-30 10:18
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
厉害了!!!
2019-11-6 13:06
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这样的话录音的时候不会外放没声音吗?
我记得普通的Track只有单一的Target我记得

2019-11-9 11:20
0
雪    币: 758
活跃值: (78)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
点赞
2019-11-12 14:05
0
雪    币: 16
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
看了下 LineageOS 没有对应我手机(Sony XZPremium),不知道题主是否还有什么方法跟意见
2020-4-25 14:31
0
雪    币: 211
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
Healer月 看了下 LineageOS 没有对应我手机(Sony XZPremium),不知道题主是否还有什么方法跟意见
LineageOS 里面有教程,教你怎么在自己手机上做固件我记得。
2020-6-17 15:47
0
雪    币: 156
活跃值: (3806)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
学习了
2020-8-19 10:16
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
楼主 可以共享下rom吗
2021-7-18 22:12
0
雪    币: 1671
活跃值: (2188)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
13
只想要你的虚拟机
2021-7-18 22:56
0
游客
登录 | 注册 方可回帖
返回
//