Active Topics

 


Reply
Thread Tools
Posts: 567 | Thanked: 2,965 times | Joined on Oct 2009
#1
This post is basically a dump of which binaries use which kernel interfaces and whether they are open source so we can ID which ones we can fix directly through code, which ones we dont need to change at all and which ones we need to fix some other way (e.g. binary patching, LD_PRELOAD hack, kernel changes, custom kernel modules or otherwise)

First up, users of /sys/*: (actual paths being used will only be mentioned in the case where its not open source or directly changeable and where its not going away for other reasons)
/etc/event.d/bluetooth-sysinfo (will go away, whatever bluetooth chip being used will have its own way of doing things)
/etc/event.d/bme (BME has been replaced, will go away)
/etc/event.d/cmt-act-dead (ssc-daemon package will need to be replaced, will go away)
/etc/event.d/pulseaudio (open source as part of pulseaudio package)
/etc/event.d/rcS-late (open source as part of system-services package)
/etc/event.d/sgx (Neo900 wont be using the N900 drivers, it will be using drivers provided by TI or Imagination or whoever and that will come with its own stuff that talks to whatever kernel interface the kernel part of those drivers ends up providing)
/etc/event.d/testserver (testserver package not required, this can go away)
/etc/init.d/hal (open source as part of the hal package)
/etc/init.d/rcS (open source as part of the mini-rc package)
/etc/init.d/softupd.rcS (softupd package not required, this can go away)
/etc/omapcam/omap3camd.conf (part of omap3camd package, is a config file, can change it easily)
/etc/osso-backup/restore.d/always/bluez-restore.sh (part of maemo-bluez-compat package, is a shell script, can change it easily)
/home/opt/lib/qt4/plugins/mediaservice/libqtmedia_v4lengine.so (open source as part of libqtm-multimedia package)
/home/opt/lib/qt4/plugins/sensors/libqtsensors_n900.so (open source as part of libqtm-sensors package)
/home/opt/lib/libqtsysteminfo.so.1.0.2 (open source as part of libqtm-systeminfo package)
/lib/libblkid.so.1.0 (open source as part of libblkid1 package)
/lib/udev/mmc_id (open source as part of udev package)
/sbin/dosfsck (open source as part of dosfstools package)
/sbin/mce (open source as part of cloned mce package)
/sbin/preinit (open source as part of cloned getbootstate package)
/sbin/read_cfg.awk (open source as part of cloned getboostate package)
/usr/bin/fmradio-tool (open source as part of n900-fmrx-enabler package)
/usr/bin/rtcom-messaging-ui.launch (part of rtcom-messaging-ui package, uses /sys/kernel/low_watermark)
/usr/bin/testserver (testserver package not required, this can go away)
/usr/bin/xorg (open source as part of xserver-xorg-core package)
/usr/lib/testserver/modules/handlers/accessory.so.0.0.0 (testserver package not required, this can go away)
/usr/lib/xorg/modules/drivers/fbdev_drv.so (Neo900 wont be using the N900 drivers, it will be using drivers provided by TI or Imagination or whoever and that will come with its own stuff that talks to whatever kernel interface the kernel part of those drivers ends up providing)
/usr/lib/testserver/modules/handlers/fm_radio.so.0.0.0 (testserver package not required, this can go away)
/usr/lib/testserver/modules/handlers/light.so.0.0.0 (testserver package not required, this can go away)
/usr/lib/testserver/modules/handlers/nvd.so.0.0.0 (testserver package not required, this can go away)
/usr/lib/testserver/modules/handlers/phone_info.so.0.0.0 (testserver package not required, this can go away)
/usr/lib/testserver/modules/handlers/selftests.so.0.0.0 (testserver package not required, this can go away)
/usr/lib/testserver/modules/handlers/sensor.so.0.0.0 (testserver package not required, this can go away)
/usr/lib/testserver/modules/handlers/sos_ape_light.so.0.0.0 (testserver package not required, this can go away)
/usr/lib/testserver/modules/handlers/sos_mmc.so.0.0.0 (testserver package not required, this can go away)
/usr/lib/testserver/modules/handlers/sos_panel.so.0.0.0 (testserver package not required, this can go away)
/usr/lib/testserver/modules/handlers/sos_switch.so.0.0.0 (testserver package not required, this can go away)
/usr/lib/testserver/modules/handlers/sos_usb.so.0.0.0 (testserver package not required, this can go away)
/usr/lib/hal/hald-addon-als (open source as part of hal package)
/usr/lib/hal/hald-addon-cpufreq (open source as part of hal package)
/usr/lib/hal/hald-addon-ipw-killswitch (open source as part of hal package)
/usr/lib/hal/hald-addon-usb-cable (open source as part of hal package)
/usr/lib/mce/modules/libaccelerometer.so (open source as part of cloned mce package)
/usr/lib/mce/modules/libcamera.so (open source as part of cloned mce package)
/usr/lib/mce/modules/libdisplay.so (open source as part of cloned mce package)
/usr/lib/mce/modules/libfilter-brightness-als.so (open source as part of cloned mce package)
/usr/lib/mce/modules/libkeypad.so (open source as part of cloned mce package)
/usr/lib/mce/modules/libled.so (open source as part of cloned mce package)
/usr/lib/mce/modules/libvibrator.so (open source as part of cloned mce package)
/usr/lib/dsme/libstate.so.0.0.0 (open source as part of dsme package)
/usr/lib/microb-engine/libfreebl3.so (open source as part of libnss3 package)
/usr/lib/microb-engine/libxul.so (open source as part of microb-engine package)
/usr/lib/microb-engine/components/libatlas.so (part of nokia-maps-core package, uses /sys/class/i2c-adapter/i2c-3/3-001d/coord)
/usr/lib/pulse-0.9.15/modules/libalsa-util.so (open source as part of pulseaudio package)
/usr/lib/pulse-0.9.15/modules/module-nokia-voice.so (part of module-nokia-voice package, uses /sys/devices/platform/omap-mcbsp.2/st_ch0gain, /sys/devices/platform/omap-mcbsp.2/st_ch1gain, /sys/devices/platform/omap-mcbsp.2/st_enable, /sys/devices/platform/omap-mcbsp.2/st_taps and /sys/power/vdd2_lock)
/usr/lib/xorg/modules/linux/libfbdevhw.so (open source as part of xserver-xorg-core package)
/usr/lib/libcameraalg.so (part of libipp-nokia package, uses /sys/bin/CameraAlgProc)
/usr/lib/liboil-0.3.so.0.3.0 (open source as part of liboil0.3 package)
/usr/lib/libosso.so.1.3.0 (open source as part of libosso1 package)
/usr/lib/libpciaccess.so.0.10.2 (open source as part of libpciaccess0 package)
/usr/libexec/n900-fmrx-enabler (open source as part of n900-fmrx-enabler package)
/usr/sbin/bluetoothd (open source as part of bluez package)
/usr/sbin/bme_rx-51 (BME has been replaced, will go away)
/usr/sbin/fmtxd (open source as part of cloned fmtx-middleware package)
/usr/sbin/hald (open source as part of hal package)
/usr/sbin/hulda (open source as part of ke-recv-extra package)
/usr/sbin/icd2 (from icd2 package, uses /sys/class/net/%s/idletimer
/usr/sbin/osso-usb-mass-storage-disable.sh (open source as part of ke-recv package)
/usr/sbin/osso-usb-mass-storage-enable.sh (open source as part of ke-recv package)
/usr/sbin/osso-usb-mass-storage-is-used.sh (open source as part of ke-recv package)
/usr/sbin/softupd (softupd package not required, this can go away)
/usr/sbin/sscd (ssc-daemon package will need to be replaced, will go away)
/usr/sbin/wlancond (open source as part of osso-wlan package)
/usr/share/policy/rules/rx51/policy.dresc (from policy-settings-rx51 package, uses /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq and /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

So to distil this information a bit further, the following closed binaries use files under /sys:
/usr/bin/rtcom-messaging-ui.launch
/usr/lib/microb-engine/components/libatlas.so
/usr/lib/pulse-0.9.15/modules/module-nokia-voice.so
/usr/lib/libcameraalg.so
/usr/sbin/icd2
/usr/share/policy/rules/rx51/policy.dresc

And they use the following /sys files
/sys/kernel/low_watermark
/sys/class/i2c-adapter/i2c-3/3-001d/coord
/sys/devices/platform/omap-mcbsp.2/st_ch0gain
/sys/devices/platform/omap-mcbsp.2/st_ch1gain
/sys/devices/platform/omap-mcbsp.2/st_enable
/sys/devices/platform/omap-mcbsp.2/st_taps
/sys/power/vdd2_lock
/sys/bin/CameraAlgProc
/sys/class/net/%s/idletimer
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

No idea if any of the above files are changing in the new kernels and if so, how. Or what the correct fix is to make them keep working (modifying the kernel, kernel module, patching the binary, symlink, LD_PRELOAD or what). None of the binaries on the list look to be particularly easy to clone.

Coming up next, I will be repeating the exercise but for users of /proc and /dev
 

The Following 18 Users Say Thank You to jonwil For This Useful Post:
Posts: 567 | Thanked: 2,965 times | Joined on Oct 2009
#2
users of /proc/:
open source or otherwise editable or part of packages that will go away/be replaced:
/bin/busybox (open source as part of busybox package)
/bin/lsmod (open source as part of module-init-tools package)
/etc/network/if-up.d/00_temp_disable_icmp_echo_reply (part of icd2 package, is a script, can be replaced)
/etc/x11/xsession.d/10hildon_welcome (part of hildon-welcome package, is a script, can be replaced)
/etc/udev/rules.d/50-udev.rules (open source as part of udev package)
/etc/init.d/alsa-utils (open source as part of alsa-utils package)
/etc/event.d/csd (csd package will need to be replaced, will go away)
/etc/event.d/dbus (open source as part of dbus package)
/etc/init.d/dbus (open source as part of dbus package)
/etc/event.d/dbus-actdead (open source as part of dbus package)
/etc/init.d/fb-progress.sh (open source as part of osso-af-utils package)
/etc/init.d/glibc.sh (open source as part of libc6 package)
/etc/init.d/hal (open source as part of hal package)
/etc/udev/libs.conf (open source as part of udev package)
/etc/init.d/module-init-tools (open source as part of module-init-tools package)
/etc/init.d/networking (open source as part of netbase package)
/etc/event.d/pulseaudio (open source as part of pulseaudio package)
/etc/init.d/rcs (open source as part of the mini-rc package)
/etc/event.d/rcs-late (open source as part of system-services package)
/etc/event.d/sgx (Neo900 wont be using the N900 drivers, it will be using drivers provided by TI or Imagination or whoever and that will come with its own stuff that talks to whatever kernel interface the kernel part of those drivers ends up providing)
/etc/init.d/softupd.rcs (softupd package not required, this can go away)
/etc/event.d/testserver (testserver package not required, this can go away)
/etc/network/if-post-down.d/zz_enable_icmp_echo_reply (part of icd2 package, is a script, can be replaced)
/home/opt/usr/bin/chessui.launch (open source as part of osso-chess-ui package)
/home/opt/lib/libqtscript.so.4.7.0 (open source as part of qt4-script package)
/home/opt/lib/libqtsysteminfo.so.1.0.2 (open source as part of libqtm-systeminfo package)
/home/opt/lib/libqtwebkit.so.4.7.0 (open source as part of libqt4-webkit package)
/lib/ld-2.5.so (open source as part of libc6 package)
/lib/libblkid.so.1.0 (open source as part of libblkid1 package)
/lib/libc-2.5.so (open source as part of libc6 package)
/lib/libext2fs.so.2.4 (open source as part of e2fslibs package)
/lib/libiw.so.30 (open source as part of libiw30 package)
/lib/libpthread-2.5.so (open source as part of libc6 package)
/lib/librt-2.5.so (open source as part of libc6 package)
/lib/libsegfault.so (open source as part of libc6 package)
/lib/libsysfs.so.2.0.1 (open source as part of libsysfs2 package)
/lib/libusb-0.1.so.4.4.4 (open source as part of libusb-0.1-4 package)
/sbin/dosfsck (open source as part of dosfstools package)
/sbin/dsme (open source as part of dsme package)
/sbin/dsme-exec-helper (open source as part of dsme package)
/sbin/dsme-server (open source as part of dsme package)
/sbin/e2fsck (open source as part of e2fsprogs package)
/sbin/fiasco-do-update (softupd package not required, this can go away)
/sbin/fsck (open source as part of e2fsprogs package)
/sbin/fsck.ext2 (open source as part of e2fsprogs package)
/sbin/fsck.ext3 (open source as part of e2fsprogs package)
/sbin/fsck.ext4 (open source as part of e2fsprogs package)
/sbin/fsck.ext4dev (open source as part of e2fsprogs package)
/sbin/getbootstate (open source as part of cloned getbootstate package)
/sbin/ldconfig (open source as part of libc6 package)
/sbin/makedev (open source as part of makedev package)
/sbin/mce (open source as part of cloned mce package)
/sbin/modprobe (open source as part of module-init-tools package)
/sbin/preinit (open source as part of cloned getbootstate package)
/sbin/rmmod (open source as part of module-init-tools package)
/sbin/sfdisk (open source as part of busybox package)
/sbin/softupd-change-state (softupd package not required, this can go away)
/sbin/start-stop-daemon (open source as part of dpkg package)
/sbin/udevd (open source as part of udev package)
/usr/bin/alsamixer (open source as part of alsa-utils package)
/usr/bin/dbus-daemon (open source as part of dbus package)
/usr/bin/hildon-application-manager.launch (open source as part of hildon-application-manager package)
/usr/bin/hildon-desktop.launch (open source as part of hildon-desktop package)
/usr/bin/intellisyncd (nokiamessaging package not required, this can go away)
/usr/bin/maemo-application-running (open source as part of hildon-application-manager package)
/usr/bin/maemo-invoker (open source as part of maemo-launcher package)
/usr/bin/maemo-launcher (open source as part of maemo-launcher package)
/usr/bin/ohm-session-agent (open source as part of ohm-plugins-misc package, opened as part of meego)
/usr/bin/osso-xterm.launch (open source as part of osso-xterm package)
/usr/bin/profiled (open source as part of cloned profiled package)
/usr/bin/testserver (testserver package not required, this can go away)
/usr/bin/xorg (open source as part of xserver-xorg-core package)
/usr/lib/apt/methods/http (open source as part of apt package)
/usr/lib/apt/methods/https (open source as part of apt-transport-https package)
/usr/lib/dbus-1.0/dbus-daemon-launch-helper (open source as part of dbus package)
/usr/lib/dsme/liblifeguard.so.0.0.0 (open source as part of dsme package)
/usr/lib/dsme/librunlevel.so.0.0.0 (open source as part of dsme package)
/usr/lib/hal/hal-storage-cleanup-all-mountpoints (open source as part of hal package)
/usr/lib/hal/hal-storage-cleanup-mountpoint (open source as part of hal package)
/usr/lib/hal/hal-straoge-closetray (open source as part of hal package)
/usr/lib/hal/hal-storage-eject (open source as part of hal package)
/usr/lib/hal/hal-storage-mount (open source as part of hal package)
/usr/lib/hal/hal-storage-unmount (open source as part of hal package)
/usr/lib/hal/hal-system-lcd-get-brightness-linux (open source as part of hal package)
/usr/lib/hal/hal-system-lcd-set-brightness-linux (open source as part of hal package)
/usr/lib/hal/hal-unmount.sh (open source as part of hal package)
/usr/lib/hal/hald-addon-cpufreq (open source as part of hal package)
/usr/lib/hal/hald-addon-bme (open source as part of cloned hald-addon-bme package)
/usr/lib/hildon-desktop/ham-notifier-status-menu-item.so (open source as part of hildon-application-manager package)
/usr/lib/hildon-desktop/ham-updates-status-menu-item.so (open source as part of hildon-application-manager package)
/usr/lib/hildon-desktop/usb_plugin.so (open source as part of cloned hildon-status-bar-usb package)
/usr/lib/maemo-launcher/defender (open source as part of maemo-launcher package)
/usr/lib/mce/libaccelerometer.so (open source as part of cloned mce package)
/usr/lib/mce/libalarm.so (open source as part of cloned mce package)
/usr/lib/mce/libaudiorouting.so (open source as part of cloned mce package)
/usr/lib/mce/libbattery.so (open source as part of cloned mce package)
/usr/lib/mce/libcallstate.so (open source as part of cloned mce package)
/usr/lib/mce/libcamera.so (open source as part of cloned mce package)
/usr/lib/mce/libdisplay.so (open source as part of cloned mce package)
/usr/lib/mce/libfilter-brightness-als.so (open source as part of cloned mce package)
/usr/lib/mce/libfilter-brightness-simple.so (open source as part of cloned mce package)
/usr/lib/mce/libhomekey.so (open source as part of cloned mce package)
/usr/lib/mce/libinactivity.so (open source as part of cloned mce package)
/usr/lib/mce/libkeypad.so (open source as part of cloned mce package)
/usr/lib/mce/libled.so (open source as part of cloned mce package)
/usr/lib/mce/libvibrator.so (open source as part of cloned mce package)
/usr/lib/microb-engine/libfreebl3.so (open source as part of libnss3 package)
/usr/lib/microb-engine/libjemalloc.so (open source as part of microb-engine package)
/usr/lib/microb-engine/libmozjs.so (open source as part of microb-engine package)
/usr/lib/microb-engine/libxul.so (open source as part of microb-engine package)
/usr/lib/libmcd_voip_filter.so (part of osso-mission-control package, uses /proc/self/status and /proc/self/maps)
/usr/lib/ohm/libohm_cgroups.so) (open source as part of ohm-plugins-misc package, opened as part of meego)
/usr/lib/perl/5.8.3/config.pm (open source as part of perl-base package)
/usr/lib/pulse-0.9.15/modules/module-policy-enforcement.so (open source as part of pulseaudio-policy-enforcement package, opened as part of meego)
/usr/lib/testserver/modules/handlers/sos_usb.so.0.0.0 (testserver package not required, this can go away)
/usr/lib/testserver/modules/handlers/sos_wlan.so.0.0.0 (testserver package not required, this can go away)
/usr/lib/tracker/libtracker-common.so.0.695.0 (open source as part of tracker package)
/usr/lib/tracker/libtracker-db.so.0.695.0 (open source as part of tracker package)
/usr/lib/tracker/trackerd (open source as part of tracker package)
/usr/lib/xorg/modules/drivers/fbdev_drv.so (Neo900 wont be using the N900 drivers, it will be using drivers provided by TI or Imagination or whoever and that will come with its own stuff that talks to whatever kernel interface the kernel part of those drivers ends up providing)
/usr/lib/libalarm.so.2 (open source as part of libalarm2 package)
/usr/lib/libdrm.so.2.3.1 (open source as part of libdrm2 package)
/usr/lib/libffi.so.5.0.8 (open source as part of libffi5 package)
/usr/lib/libgio-2.0.so.0.2000.3 (open source as part of libglib2.0-0 package)
/usr/lib/libglib-2.0.so.0.2000.3 libglib2.0-0 (open source as part of libglib2.0-0 package)
/usr/lib/libmaemosec.so.0.0.0 (open source as part of libmaemosec0 package, opened by Nokia on gitorius)
/usr/lib/libmlocknice.so.0.0.0 (open source as part of libmlocknice package)
/usr/lib/libnl.so.1.1 (open source as part of libnl1 package)
/usr/lib/liboil-0.3.so.0.3.0 (open source as part of liboil0.3 package)
/usr/lib/libopenvg.so (Neo900 wont be using the N900 drivers, it will be using drivers provided by TI or Imagination or whoever and that will come with its own stuff that talks to whatever kernel interface the kernel part of those drivers ends up providing)
/usr/lib/libosso.so.1.3.0 (open source as part of libosso1 package)
/usr/lib/libossoproductinfo.so.0.7.3 (open source as part of cloned libossoproductinfo0 package)
/usr/lib/libperl.so.5.8.3 (open source as part of perl-base package)
/usr/lib/libpixman-1.so.0.17.3 (open source as part of libpixman-1-0 package)
/usr/lib/libprolog.so.0.0.0 (open source as part of libprolog0 package, opened as part of meego)
/usr/lib/libpulse.so.0.8.0 (open source as part of libpulse0 package)
/usr/lib/libpulsecommon-0.9.15.so (open source as part of libpulse0 package)
/usr/lib/libqtcore.so.4.7.0 (open source as part of libqt4-core package)
/usr/lib/libsdl-1.2.so.0.11.1 (open source as part of libsdl1.2 package)
/usr/lib/libsrv_um.so (Neo900 wont be using the N900 drivers, it will be using drivers provided by TI or Imagination or whoever and that will come with its own stuff that talks to whatever kernel interface the kernel part of those drivers ends up providing)
/usr/libexec/dsp-recover (part of dsp-manager package, is a shell script, can change it easily)
/usr/libexec/gnome-vfs-daemon (open source as part of libosso-gnomevfs2-common package)
/usr/libexec/hildon-thumbnailerd (open source as part of hildon-thumbnail package)
/usr/sbin/alarmd (open source as part of alarmd package)
/usr/sbin/bme_rx-51 (BME has been replaced, will go away)
/usr/sbin/hald (open source as part of hal package)
/usr/sbin/hulda (open source as part of ke-recv-extra package)
/usr/sbin/ke-recv (open source as part of ke-recv package)
/usr/sbin/lsusb (open source as part of usbutils package)
/usr/sbin/maemo-optify-lib.sh (open source as part of maemo-optify-runonce package)
/usr/sbin/ohmd (open source as part of ohm package)
/usr/sbin/osso-mmc-mount.sh (open source as part of ke-recv package)
/usr/sbin/osso-mmc-umount.sh (open source as part of ke-recv package)
/usr/sbin/softupd (softupd package not required, this can go away)
/usr/sbin/sscd (ssc-daemon package will need to be replaced, will go away)
/usr/sbin/umountfs (open source as part of mini-rc package)
/usr/share/perl5/debiannet.pm (open source as part of netbase package)
/usr/share/e2fsprogs/initrd.ext3-add-journal (open source as part of e2fsprogs package)
maemo-optify-runonce preinst script (package is open source)
module-init-tools postinst script (package is open source)

closed source:
/usr/bin/eapd (part of osso-wlan-security package, uses /proc/sys/kernel/random/uuid)
/usr/bin/mission-control (part of osso-mission-control package, uses /proc/self/status and /proc/self/maps)
/usr/bin/rtcom-call-ui.launch (part of rtom-call-ui package, uses /proc/%d/cmdline)
/usr/bin/rtcom-messaging-ui.launch (part of rtcom-messaging-ui, uses /proc/loadavg)
/usr/lib/browser/plugins/libflashplayer.so (part of adobe-flashplayer package, uses /proc/meminfo, /proc/mounts and /proc/cpuinfo)
/usr/lib/hildon-desktop/libhildon-plugins-notify-sv.so (part of hildon-plugins-notify-sv package, uses /proc/%d/cmdline)
/usr/lib/icd2/libicd_network_gprs.so (part of libicd-network-gprs package, uses /proc/net/dev)
/usr/lib/icd2/libicd_network_ipv4.so (part of libicd-network-ipv4 package, uses /proc/net/route and /proc/net/dev)
/usr/lib/libascommonutils.so.0.0.0 (part of libas-common-utils-0 package, uses /proc/%d/cmdline)
/usr/lib/libconnui.so.0.0.0 (part of libconnui package, uses /proc/sys/kernel/random/uuid)
/usr/lib/liblomesa.so.0.0.0 (part of liblomesa0 package, uses /proc/meminfo)
/usr/lib/librtcom-call-ui.so.0.0.0 (part of librtcom-call-ui0 package, uses /proc/%d/cmdline)
/usr/lib/libsysinfo.so.0 (part of libsysinfo0 package, uses /proc/component_version)
/usr/sbin/ota-settings (part of ota-settings package, uses /proc/sys/kernel/random/uuid)
/usr/sbin/icd2 (from icd2 package, uses /proc/sys/kernel/random/uuid)
/usr/sbin/as-daemon (part of as-daemon-0 package, uses /proc/%d/cmdline)
/usr/sbin/gprs-provisioning (part of gprs-provisioning package, uses
/proc/sys/kernel/random/uuid)
 

The Following 7 Users Say Thank You to jonwil For This Useful Post:
Reply

Thread Tools

 
Forum Jump


All times are GMT. The time now is 07:00.