From 5d224d3c80023e6ac17d36bd73563ab58f66a790 Mon Sep 17 00:00:00 2001 From: yuyuyuyuyu <190754820@qq.com> Date: Mon, 8 Jun 2026 16:30:52 +0800 Subject: [PATCH] =?UTF-8?q?fix(AutoCheckinBigGod):=20=E4=BF=AE=E5=A4=8DDev?= =?UTF-8?q?iceId=E8=8E=B7=E5=8F=96=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=8C=E5=85=BC=E5=AE=B9=E5=A4=A7=E7=A5=9EAPP=E6=96=B0?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 问题原因:大神APP 4.18.2版本中,原有的YXFDeviceInfo.getDeviceId()返回空值,导致登录API返回参数错误 - 解决方案:精简了_get_device_id函数的Frida脚本,保留核心逻辑 - 增加UDID作为备选方案(使用android_id) - 当Frida获取失败时,自动使用settings get secure android_id作为DeviceId --- tasks/AutoCheckinBigGod/script_task.py | 31 +++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/tasks/AutoCheckinBigGod/script_task.py b/tasks/AutoCheckinBigGod/script_task.py index ab05c3470..7b51f996b 100644 --- a/tasks/AutoCheckinBigGod/script_task.py +++ b/tasks/AutoCheckinBigGod/script_task.py @@ -832,12 +832,19 @@ def _get_app_version(self): return None def _get_device_id(self, pid): - """通过 Frida 获取 DeviceId""" + """通过 Frida 获取 DeviceId,失败时使用UDID作为备选""" script = """ Java.perform(function() { try { var YXFDeviceInfo = Java.use('com.netease.gl.glbase.build.YXFDeviceInfo'); - console.log('GL_DEVICEID:' + YXFDeviceInfo.getDeviceId()); + var id = YXFDeviceInfo.getDeviceId(); + if (id && typeof id === 'string' && id != 'unknown') console.log('GL_DEVICEID:' + id); + } catch(e) {} + try { + var ctx = Java.use('android.app.ActivityThread').currentApplication().getApplicationContext(); + var sp = ctx.getSharedPreferences('gl_user_info', 0); + var deviceId = sp.getString('deviceId', ''); + if (deviceId && deviceId != 'unknown') console.log('GL_DEVICEID:' + deviceId); } catch(e) {} console.log('__DONE__'); }); @@ -846,7 +853,18 @@ def _get_device_id(self, pid): if output: for line in output.split('\n'): if 'GL_DEVICEID:' in line: - return line.split('GL_DEVICEID:')[1].strip() + device_id = line.split('GL_DEVICEID:')[1].strip() + if device_id and device_id != 'unknown' and not device_id.startswith('Java.Field'): + return device_id + + try: + udid = self._adb_shell(['settings', 'get', 'secure', 'android_id']) + if udid and udid != 'unknown': + logger.info(f'使用UDID作为DeviceId') + return udid + except Exception: + pass + return None def _login_by_urs_token(self, pid, urs_creds): @@ -1113,3 +1131,10 @@ def _claim_reward(self, bag_id, title): logger.error(f' 领取异常: {title} - {e}') return False +if __name__ == "__main__": + from module.config.config import Config + from module.device.device import Device + config = Config('oas1') + device = Device(config) + t = ScriptTask(config, device) + t.run() \ No newline at end of file