xda上有老外已经研究过了https://forum.xda-developers.com/oneplus-5/themes/app-enable-call-recording-boot-t3634292,并且提供了好几种方法来开启

基于此,我研究了直接修改拨号apk来实现的方法

关键字段
op_voice_recording_supported_by_mcc

dialer反编译后搜索得,在文件
Lcom/oneplus/dialer/settings/OPDialerSettingsActivity

:cond_4
sget-boolean v19, Lcom/oneplus/dialer/settings/OPDialerSettingsActivity;->IS_OVER_SEA:Z

if-eqz v19, :cond_5

invoke-virtual/range {p0 .. p0}, Landroid/content/ContextWrapper;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v19

.line 182
const-string/jumbo v20, "op_voice_recording_supported_by_mcc"

const/16 v21, 0x0

.line 181
invoke-static/range {v19 .. v21}, Landroid/provider/Settings$Global;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v19

.line 182
const/16 v20, 0x1

.line 181
move/from16 v0, v19

move/from16 v1, v20

if-ne v0, v1, :cond_14

:cond_5

关键内容sget-boolean v19, Lcom/oneplus/dialer/settings/OPDialerSettingsActivity;->IS_OVER_SEA:Z

然后向上找到存储IS_OVER_SEA:Z值的地方
.method static constructor ()V
.locals 3

.prologue
const/4 v2, 0x1

.line 106
new-array v0, v2, [I

const/4 v1, 0x0

aput v2, v0, v1

invoke-static {v0}, Landroid/util/OpFeatures;->isSupport([I)Z

move-result v0

sput-boolean v0, Lcom/oneplus/dialer/settings/OPDialerSettingsActivity;->IS_OVER_SEA:Z

.line 49
return-void
.end method

sput-boolean v0, Lcom/oneplus/dialer/settings/OPDialerSettingsActivity;->IS_OVER_SEA:Z上面加一行
const/4 v0, 0x0 即可在拨号设置中找到通话录音选项,但是打电话时仍然没有通话录音功能。

进一步研究得知通话时的通话录音功能在OPInCall中,如上炮制修改即可