Skip to content
Snippets Groups Projects
Select Git revision
  • 72e69f5efb6359b273a44b2f082591a2241cf9eb
  • master default protected
  • android-7.1.2_r28_klist
  • pie-cts-release
  • pie-vts-release
  • pie-cts-dev
  • oreo-mr1-iot-release
  • sdk-release
  • oreo-m6-s4-release
  • oreo-m4-s12-release
  • pie-release
  • pie-r2-release
  • pie-r2-s1-release
  • oreo-vts-release
  • oreo-cts-release
  • oreo-dev
  • oreo-mr1-dev
  • pie-gsi
  • pie-platform-release
  • pie-dev
  • oreo-cts-dev
  • android-o-mr1-iot-release-1.0.4
  • android-9.0.0_r8
  • android-9.0.0_r7
  • android-9.0.0_r6
  • android-9.0.0_r5
  • android-8.1.0_r46
  • android-8.1.0_r45
  • android-n-iot-release-smart-display-r2
  • android-vts-8.1_r5
  • android-cts-8.1_r8
  • android-cts-8.0_r12
  • android-cts-7.1_r20
  • android-cts-7.0_r24
  • android-o-mr1-iot-release-1.0.3
  • android-cts-9.0_r1
  • android-8.1.0_r43
  • android-8.1.0_r42
  • android-n-iot-release-smart-display
  • android-p-preview-5
  • android-9.0.0_r3
41 results

ioctl_macros

Blame
  • collect_uprobes.py 1.59 KiB
    #!/usr/bin/python3
    
    import os
    import sys
    import time
    
    MOUNTPOINT = '/sys/kernel/debug/tracing/'
    
    if len(sys.argv) > 1:
        outfile = sys.argv[1]
    else:
        outfile = '/tmp/collected_uprobes'
    
    max_unchanged_rounds = -1
    if len(sys.argv) > 2:
        max_unchanged_rounds = int(sys.argv[2])
    
    
    outfd = open(outfile, 'w')
    
    folders = set(f.name for f in os.scandir(MOUNTPOINT + 'events/uprobes') if f.is_dir())
    iteration = 1
    changed = True
    unchanged_rounds = 0
    
    while folders:
        if changed:
            print('Starting round {} with {} active events'.format(iteration, len(folders)))
            sys.stdout.flush()
        changed = False
        removed = set()
        for name in folders:
            event_dir = MOUNTPOINT + 'events/uprobes/' + name + '/'
            with open(event_dir + 'enable', 'r') as fd:
                status = fd.readline().strip()
                if status == '0*':
                    with open(event_dir + 'trigger', 'w') as triggerfd:
                        triggerfd.write('!disable_event:uprobes:{}'.format(name))
                        outfd.write('{}\n'.format(name))
                        #print('disabled {}'.format(name))
                        removed.add(name)
                elif status == '0':
                    #print('disabled {}'.format(name))
                    outfd.write('{}\n'.format(name))
                    removed.add(name)
    
        folders = folders.difference(removed)
        outfd.flush()
        if len(removed) == 0:
            unchanged_rounds += 1
            if max_unchanged_rounds > 0 and unchanged_rounds == max_unchanged_rounds:
                break
            time.sleep(10)
        else:
            unchanged_rounds = 0
            changed = True
        iteration += 1