我们反编译小米扫描仪应用程序并获取扫描结果

一位同事有个建议:

“为我写一罐筹码的安卓条形码阅读器,只是将结果写在我的兄弟需要的文件和时间中。” 最终,它证明不是兄弟,而且没有必要,而且一罐薯条通常很昂贵

出于兴趣,我浏览了js和android中现成的解决方案,从那以后。我想我有一个配备了现成的扫描仪应用程序的小米智能手机,为什么不尝试仅从中获取扫描结果呢?好的,我试图在Google上搜索有关从扫描仪获取数据的意图或现成的说明的信息,但徒劳无功。决定对应用程序清单进行意向确认。



  1. 查找并从手机中提取APK。



    adb shell
    ~:/pm list packages | grep scanner
    ~:/pm path com.xiaomi.scanner
    exit
    pull /system/priv-app/MiuiScanner/MiuiScanner.apk
    
  2. 我们使用在线服务反编译apk
  3. 检查清单。找到遇到的第一个动作。



    AndroidManifest.xml


  4. 创建一个新的android项目并编写一个扫描程序调用。



      val intent = Intent("miui.intent.action.scanbarcode")
       startActivityForResult(intent, 1);
    
  5. , … , , ? , . .



    ScanActivity.java




    .

  6. , EXTRA_INTENT_IS_BACKTO_THIRDAPP isBackToThirdApp.



    AppUtils.java


  7. .



      val intent = Intent("miui.intent.action.scanbarcode")
      intent.putExtra("isBackToThirdApp",true)
      startActivityForResult(intent, 1);
    
  8. .



            super.onActivityResult(requestCode, resultCode, data)
            if (resultCode==Activity.RESULT_OK){
                    result.setText(data?.extras?.getString("result"))
            } 
    
  9. .
  10. , Xiaomi ,



All Articles