react-native 调用Settings.Secure.getstring获取了android_id / app上架违规获取android_id被拒

2023-05-16

华为上架时,被违规获取android_id原因拒绝上架, 使用HookLoginDemo检测结果如下

2022-06-08 10:36:49.956 28518-28550/? D/HookLogin: 调用Settings.Secure.getstring获取了android_id
2022-06-08 10:36:49.957 28518-28550/? E/HookLogin: java.io.IOException
        at com.example.hooklogin.HookLogin.getMethodStack(HookLogin.java:213)
        at com.example.hooklogin.HookLogin.access$000(HookLogin.java:23)
        at com.example.hooklogin.HookLogin$6.afterHookedMethod(HookLogin.java:184)
        at de.robv.android.xposed.DexposedBridge.handleHookedArtMethod(DexposedBridge.java:265)
        at me.weishu.epic.art.entry.Entry64.onHookObject(Entry64.java:64)
        at me.weishu.epic.art.entry.Entry64.referenceBridge(Entry64.java:239)
        at com.learnium.RNDeviceInfo.RNDeviceModule.getUniqueIdSync(RNDeviceModule.java:658)
        at com.learnium.RNDeviceInfo.RNDeviceModule.getConstants(RNDeviceModule.java:162)
        at com.facebook.react.bridge.JavaModuleWrapper.getConstants(JavaModuleWrapper.java:128)
        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:26)
        at android.os.Looper.loop(Looper.java:227)
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:225)
        at java.lang.Thread.run(Thread.java:919)

HookLoginDemo使用方式百度一下

经过排查at com.learnium.RNDeviceInfo.RNDeviceModule.getUniqueIdSync(RNDeviceModule.java:658)确定是第三方依赖react-native-device-info导致的问题

解决方案 : 将import导入改为内联应用

import DeviceInfo from 'react-native-device-info';
const getDevicesId = () => {
	return DeviceInfo.getUniqueId()
}

修改为

const getDevicesId = () => {
	const DeviceInfo = require('react-native-device-info').default;
	return DeviceInfo.getUniqueId()
}

补充:该方法还是会获取android_id,,,此处理的原因是,调用该组件的方法前,用户已经同意隐私政策,即:用户首次启动并同意隐私政策,后续使用该组件库的时候再获取android_id,不会被商店视为违规

原文: http://t.csdn.cn/jswba

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

react-native 调用Settings.Secure.getstring获取了android_id / app上架违规获取android_id被拒 的相关文章

  • 使用Java Reflection,你能检测一个方法是否是Native的吗?

    使用 Java Reflection 您可以检测所有方法及其返回类型 但是有没有办法检测一个方法是否被声明为native or not 是的 你可以 方法getModifiers 返回一个应用了正确掩码的 int 可以告诉您该方法是否是本机
  • 更改重复键阈值 C++

    我正在构建一个 C 俄罗斯方块游戏 不是 C Net 我感觉我的控制很奇怪 我想要做到这一点 以便当用户按下其中一个箭头键时 按住它大约 10 毫秒将启动 Windows 的重复功能 默认设置为 500 毫秒左右 对于我的游戏来说太延迟了
  • Android 3.0 使用物理键盘设置

    背景 我最近购买了一台摩托罗拉 XOOM 平板电脑以及桌面扩展坞和蓝牙键盘配件 扩展坞和键盘工作得很好 但是当我将平板电脑从扩展坞上取下并远离办公桌时 键盘仍然与设备配对 我必须手动更改设置才能使用软键盘 当我将其放回坞站时也是如此 我需要
  • C# .NET 应用程序设置和升级

    我使用 Settings Default MySettingName 和 Settings Default Save 来保存和加载设置 当我更改版本号时 如何从旧版本获取设置并将其应用到新版本 我只是不太明白 Settings Upgrad
  • git 空格问题

    空白冲突很糟糕 空白最终对我来说是一种可怕的痛苦 在使用 git 时 git config apply whitespace strip 似乎增加了你发生冲突的机会 当你脱掉 不需要的空白 然后其他合作者会看到被剥离的空白 空格作为他们提交
  • Windows 窗体应用程序中的.设置文件,最佳实践

    我有一个 Win Form 应用程序 它将一些每个用户的设置存储在 UserSettings Settings 文件中 到目前为止 这效果很好 但是当我发布更新时 设置文件似乎会被 重置 我所做的ClickOnce 这是预期的行为吗 我可以
  • 如何以编程方式保存用户设置?

    我有一个按钮 可以打开窗口颜色托盘 然后将选择的颜色分配给某个虚拟工作室中的选定元素 用户首先通过鼠标单击选择元素 然后根据元素 ID 分配颜色 因此 每次单击按钮时 相同或不同元素的颜色都会发生变化 元素 ID 是从当鼠标单击某个元素时触
  • iphone/ipad dev - 如何以编程方式启动系统设置应用程序

    在设置 gt 常规中有一个开关可以打开 关闭定位服务 在地图应用中 当定位服务关闭时 如果用户单击 查找我 按钮 则会弹出警报并要求用户在设置中打开定位服务 然后退出应用程序并启动设置应用程序 我如何在我的应用程序中以编程方式执行此操作 从
  • 为什么在 Android 上重定向 stdout/stderr 不起作用?

    我下载了 SDL 1 3 并在我的 android 2 2 设备上将其与 OpenGL ES 一起进行了测试 它工作正常 但我没有得到输出printf来电 我尝试了下面的命令 如安卓开发者页面 http developer android
  • 如何禁止chrome打开“新窗口”和“标签”?

    他们是否可以通过 Chrome 浏览器设置将互联网上的所有页面保留在一个窗口中 或者我可以用一个插件 插件来做到这一点 当我单击某些链接时 我不希望在新选项卡和 或新窗口中打开网页 如果有人有任何建议请告诉我 谢谢 a href http
  • 如何保存WPF UI状态?

    我有一个TabControl在它下面我有几个元素 例如TreeView and DataGrid 当我展开树并调整数据网格列的大小时 如果我然后切换到另一个选项卡并返回 整个 UI 状态都会被忘记 我必须重新展开树并调整列的大小 是否有一种
  • iOS 获取代理设置

    在我的项目中 我使用 libcurl 通过互联网下载数据 问题是 libcurl 无法检测 wifi 连接的代理设置 我必须手动设置 libcurl 的设置 所以我想知道如何获取 wifi 连接的代理设置 我在钥匙串中找到了一些有关信息的线
  • 基础目标、活动目标、部署目标

    我知道这个问题的部分内容有多种不同的形式 但我想确保我的答案是正确的 以下是我的假设和理解 我想在提交之前知道它们是否正确 我的应用程序假定所有操作系统都支持功能 因此我应该 将Active SDK设置为最新 当前为SDK 3 0 将部署目
  • 在 iOS 中加载/保存设置

    我在 AppDelegate 中定义了以下两个过程 保存设置和加载设置 单击保存按钮后 我将在 AppDidFinishLaunching 方法中调用 loadSettings 过程 并在设置视图中调用 saveSettings 过程 这两
  • 如何在.NET中针对不同环境使用不同的.settings文件?

    NET 允许您使用 settings 文件来管理应用程序设置 我想单独存储生产 开发和测试设置 我可以这样做 EnvironmentSettings environmentSettings get the current environme
  • E/未知:React:本机调用中出现异常

    我通过模拟器运行 Android 应用程序 但出现了如下错误 不知道如何修复它 有知道解决办法的人吗 请帮忙 thanks E unknown React Exception in native call java lang Runtime
  • 删除不需要的空行 Eclipse 编辑器

    当我在 eclipse 中打开任何文件时 它在所有代码行和空白行之后显示替代空白行 我怎样才能删除它 In eclipse preference setting you can remove all the unwanted blank l
  • 如何从 php 代码更改 php 设置?

    我想更改 php 设置 但从 php 页面而不是 php ini 更改 我要更改的设置是 upload max filesize post max size and memory limit 如果您有AllowOverride 选项 您可以
  • Android Studio 3.0 - 设置未保存

    我已将 文件 gt 设置 gt 编辑器 gt 代码样式 中的 右边距 列 从默认的 100 增加到 140 不幸的是 每次重新启动 Android Studio 后 该边距都会重置 我还尝试导出和导入我的设置 但这并不能阻止重置右边距 希望
  • .Net应用程序设置路径

    默认情况下 Windows 应用程序设置保存在该目录中 USERPROFILE Local Settings Application Data

随机推荐