system_server.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. function trace(tag) {
  2. Log.e((tag || '') + Java.use('android.util.Log').getStackTraceString(Java.use('java.lang.Throwable').$new()))
  3. }
  4. function readFile(path) {
  5. var FileOutputStream = Java.use('java.io.FileOutputStream')
  6. var FileInputStream = Java.use('java.io.FileInputStream')
  7. var File = Java.use('java.io.File')
  8. var InputStreamReader = Java.use('java.io.InputStreamReader')
  9. var BufferedReader = Java.use('java.io.BufferedReader')
  10. var ByteArrayOutputStream = Java.use('java.io.ByteArrayOutputStream')
  11. var file = File.$new(path)
  12. var fileInputStream = FileInputStream.$new(file)
  13. var inputStreamReader = InputStreamReader.$new(Java.cast(fileInputStream, Java.use('java.io.InputStream')))
  14. var bufferedReader = BufferedReader.$new(inputStreamReader)
  15. var line
  16. var content = ''
  17. while ((line = bufferedReader.readLine()) !== null) {
  18. content += line + '\n'
  19. }
  20. bufferedReader.close()
  21. inputStreamReader.close()
  22. fileInputStream.close()
  23. return content
  24. }
  25. setImmediate(() => {
  26. Java.perform(function () {
  27. const Log = Java.use('android.util.Log')
  28. function log(msg) {
  29. console.log(`\x1b[30m[system_server] ${msg}\x1b[0m`)
  30. Log.d('frida-system_server', msg)
  31. }
  32. const DeviceIdentifiersPolicy = Java.use(
  33. 'com.android.server.os.DeviceIdentifiersPolicyService$DeviceIdentifiersPolicy'
  34. )
  35. DeviceIdentifiersPolicy.getSerial.overload().implementation = function () {
  36. const original = this.getSerial()
  37. const spoof = '1234567890'
  38. log(`DeviceIdentifiersPolicy.getSerial() called, returning: ${spoof}, original: ${original}`)
  39. return spoof
  40. }
  41. DeviceIdentifiersPolicy.getSerialForPackage.overload('java.lang.String', 'java.lang.String').implementation =
  42. function (callingPackage, callingFeatureId) {
  43. const original = this.getSerialForPackage(callingPackage, callingFeatureId)
  44. const spoof = '1234567890'
  45. log(
  46. `DeviceIdentifiersPolicy.getSerialForPackage(${callingPackage}, ${callingFeatureId}) called, returning: ${spoof}, original: ${original}`
  47. )
  48. return spoof
  49. }
  50. })
  51. })