Android SELinux policy blocks NETLINK_KOBJECT_UEVENT sockets for regular
apps, causing libusb's hotplug event monitor to fail and libusb_init to
return LIBUSB_ERROR_OTHER.
Set LIBUSB_OPTION_NO_DEVICE_DISCOVERY before libusb_init so libusb skips
both the netlink setup and /dev/bus/usb enumeration. Neither is needed
when the camera fd is injected via libusb_wrap_sys_device.
Apply the same option in the gp_libusb1_open fallback path that allocates
port->pl when gp_libusb1_init failed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
gp_libusb1_init calls libusb_init which can fail on Android (netlink
socket restricted). When it fails port->pl is freed and set to NULL,
causing a SIGSEGV in gp_libusb1_open.
- Allocate port->pl lazily in gp_libusb1_open's Android fd path so
open succeeds even if init left port->pl NULL.
- Silence gp_port_init return in Android gp_port_set_info path since
the open-time fallback handles the failure.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- gphoto2-camera.c: bypass ltdl for statically-linked ptp2 driver on Android
- gphoto2-port-info-list.c: add usb:fd:N port entry directly (Android has no
scannable IOLIBS path); guard NULL library_filename in list copy
- libusb1.c: open USB device from pre-opened fd via libusb_wrap_sys_device
(Android UsbManager fd injection), skip enumeration for usb:fd:N paths
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The digigr8 camlib erroneously sent command 0x1440 to the
connected camera which led to the camera entering webcam capture
mode which caused subsequent commands to fail.
https://github.com/gphoto/libgphoto2/issues/920
handle some more rawcompression methods for Z9
handle some more focus metering values for Z9
taken from data in git@github.com:NorthOfYou/libgphoto2.git
- evfoutputdevice is 32bit, adjusted calls and config table
- focusmode is 32bit, adjusted config table and calls
- added af method config
- multiaspect / aspectratio is 32bit