Monday, February 14, 2022

apt doesn't auto purge unused packages

problem: apt doesn't auto purge unused packages

By default, at least on my Debian systems apt and aptitude don't automatically purge unused packages. 

I'm sure you've come to purge a package and some other packages are proposed to be automatically removed but not automatically purged... 

The difference between remove and purge? "remove" removes the main package files but often the configuration is left intact. "purge" removes everything it can related to a given package including configuration.

Note that /var data and similar data created by running package executables/daemons is often not removed during package removal or purge because this data is written outside of the visibility or control of dpkg.

impact: cruft build up on the system.

solution: run aptitude with some apt options

⚠⚠⚠ DISCLAIMER ⚠⚠⚠ this approach can be destructive.
Make sure you really want to purge the unused  packages!

To remove the usrmerge package:

aptitude -o Aptitude::Delete-Unused=1 -o Aptitude::Purge-Unused=1 purge usrmerge

⚠⚠⚠ DISCLAIMER ⚠⚠⚠ this approach can be destructive

You can also autoclean and purge unused packages:

aptitude -o Aptitude::Delete-Unused=1 -o Aptitude::Purge-Unused=1 install

 

Tuesday, February 16, 2021

LinkedIn attempt at persistent device fingerprinting?

My firewall* detected a UDP outbound connection from Firefox desktop (v85.0.2) when visiting the LinkedIn sign in page: https://www.linkedin.com/login

* Windows Firewall Control: https://www.binisoft.org/wfc

Non-authoritative answer:
Name: stun.l.google.com
Addresses: 2a00:1450:400c:c0a::7f
64.233.167.127

I was interested to check the code that was making the request, because it doesn't show up in developer tools or uBlock's Logger (as far as I could see).

The request that delivered the js payload was: https://static-exp1.licdn.com/sc/h/6jblk5oqhlo45xbkmcr7s4zix

In the packed code was reference to stun:stun.l.google.com:19302?transport=udp. I did a auto unpack with de4js and the UDP call is related to static.getIPs method.

Packed code here (expired) for reference. Auto unpacked here (expired).

I'm not sure why LinkedIn is executing this code on clients. There were some potentially questionable ethics in the js. For example: static.getAdBlock and static.incognitoKey static.doNotTrackKey.

Looks like this is a fingerprinting script that might belong or relate to fingerprintjs. Here is an older commit showing very similar code to the packed version I found on LinkedIn CDN.

Makes a website visitor identifier from a browser fingerprint. Unlike cookies and local storage, fingerprint stays the same in incognito/private mode and even when browser data is purged.

Niiice. 😲🤮

2025-09-01 update

Firefox version 137.0.2. Visiting https://www.linkedin.com on a temporary browser profile caused the same firewall prompt as in 2021. Confirms that LinkedIn is still practising this behaviour.

Looks like the 2021 pastes on paste.hostux.net have expired. So in this update I'm including a LZMA compressed base64 encoded version of the packed code that is returned from https://static-exp1.licdn.com/sc/h/6jblk5oqhlo45xbkmcr7s4zix should anyone be looking for a copy to analyse in the future.

The sha1sums are as follows:
base64 encoded: b66915ab52e0056007f23a7fe83ec34fe04636d8
original content: e71ba2c95cec048ac13fbdd1d528715220021e20

A example decoding and decompression pipeline would look like this:

base64 -d 6jblk5oqhlo45xbkmcr7s4zix.lzma.b64 | plzip --decompress --stdout | less 
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
8cTEgLcvmy40/gAAAAAAAFA3AAAAAAAA

Saturday, January 9, 2021

Xbox One Controller For Windows not recognised correctly via Bluetooth

problem: Xbox One via Bluetooth on windows not working as expected

The "USB Game Controllers" calibration window is missing the LT and RT triggers/buttons axis etc when connected via Bluetooth. It works as expected when connected via USB.

impact: Games cannot use the L2 and R2 axis/triggers

solution: update windows 10

I wanted to write down the steps that helped me get my controller working on USB AND Bluetooth. USB was fine but Bluetooth was not working as expected with the LT and RT buttons/triggers/axis were not working nor showing up in the "Game Controllers" calibration GUI under windows.

Quick note, even after following these steps with everything working as expected, connected via USB the controller shows up as a "Controller (Xbox One For Windows)", and via Bluetooth it shows up as a "6 axis 16 button gamepad with hat switch", at least on my system. After these steps, the LT and RT buttons/triggers worked as expected via Bluetooth.

  1. Install and use the Microsoft Store app called "Xbox Accessories" and connect the controller via USB-C and ensure the controller has the latest firmware.

  2. Upgrade windows via the "Update Assistant" download tool from Microsoft.

  3. After the update assistant is fully done installing/rebooting (its normally a few cycles), force a windows update to ensure you have the most recent cumulative updates. There is a specific cumulative update that includes the latest controller drivers with fixes the issue. Details here.

    Note: Step 4 might not be required, but I did them for good measure.

  4. I recommend to un-pair and uninstall (via device mgmt WIN+x, m) the previous Xbox controller Bluetooth device(s). Afterwards re-pair the controller.

You should be all set.

footnote: I cannot recall 100% correctly but I think the Bluetooth controller label first showed up with less axis in the "Game Controllers" window, and the the LT / RT axis was definitely missing under the calibration GUI.

citation:

When researching this issue, this thread was very helpful: https://redd.it/jrhkeu

Tuesday, December 29, 2020

windows startup "elevated" shortcut for a non admin user

problem: you cannot create a windows startup shortcut that requires elevated (admin) rights for a non admin user

I spent hours trying to get this to work... I hope this saves some time for future me or anyone googling.

scenario:

  1. You have windows account(s) that are NOT an admin because that is a good general practice.
  2. So you have a dedicated admin account on-demand for things that require admin rights.
  3. You have graphical program that you want to launch automatically at startup (log in) for the non-admin user(s).
  4. The program requires elevated admin rights to launch.
  5. Using the standard ways to try and create a startup shortcut don't work, the program is not launched.

impact: you have to launch the shortcut manually

... which means you will forget from time to time, this can be bad news for some critical programs, like energy or temperature controlling software, or software that applies hardware tweaks or similar power tools/toys.

solution: you need a little help from a windows power-toy called "elevate"

After trying various ways to create startup "log in" shortcuts, including shell:startup folder, the registry autostart, and task scheduler "log in" triggers...

The major sticking point seemed to be the fact non of the above was working for a non-admin user. The missing elevated token for the standard users was causing things to fail, the shortcut/program just failed to run or failed to run with the required elevated rights.

I caved in with the built in methods and used a .vbs and .cmd script combo from an official Microsoft PowerToy. Here is the git repo, this power toy was originally published in TechNet Magazine, June 2008.

The resulting shortcut placed in the user shell:startup folder looks like this:

"E:\Portable\elevate.cmd" "E:\Portable\ControlStation-FanControl.bat"
When the shell:startup is triggered during post log in, this shortcut is run, and fires a UAC prompt to elevate and launch whatever it is you want. So your admin credentials e.g. fingerprint are required to launch the software with admin rights. Hitting ESC or similar skips the launch.

citation:

Props to: Mark Richardson for putting the code on GitHub, and John Stephens and Michael Murgolo for the original work and scripts.

Saturday, October 26, 2019

Virtualise a running legacy physical Linux server (P2V)

problem: You have a legacy physical Linux server, live in production, that you would like to virtualise (P2V) with near zero downtime?

My goal was to take a physical Linux P node running live-production and virtualise it. Primarily so the physical hardware could be repurposed as a hypervisor or retired. I didn't want to create and allocate multi terabyte disks that were present in the P partition table, nor have to use md raid in the V guest which the P node was using, because the target hypervisor (Proxmox 5) used ZoL/ZFS. I also wanted to mitigate downtime/reboots on the running P node as it was busy performing production tasks.

solution: I have documented the steps I took without using specific P2V tools

After researching multiple ways of solving this problem, I documented my steps on server fault.

There were multiple questions on the Stack Exchange network and some of the answered helped but there wasn't really an end to end guide on the process, at least not for my circumstances and goals. So after documenting and running my own steps, I posted the answer for others to use as a reference.

Check the answer on server fault for the details: https://serverfault.com/a/988703/64325.

Once I had successfully V'ed the P node, and had the V node running in my Proxmox PVE lab, I also posted my steps for repurposing the P node as a Proxmox hypervisor. This was a little tricky but with tips from the Proxmox forum I was able to make a clean Proxmox install with native ZoL/ZFS via network booted rescue image on the Hetzner service provider.
It was then possible to take a backup of the V node and transfer it to the new hypervisor and restore it with qmrestore.

Everything worked as hoped in the end. In the journey I had refreshed on some Linux knowledge and picked up a few new techniques. I had successfully repurposed the P node as a hypervisor and had the legacy Linux node running as a V in the new hypervisor. All with near zero downtime to production.

citation:

Props to:
Various Q&A authors @ the Stack Exchange network.
Various post authors @ Proxmox forums.
The various wiki authors @ the Proxmox wiki page for Migration of servers to Proxmox VE.
I also cited some useful links in my answer on server fault.

Firefox instances using profiles are grouped in a single group

problem: Windows from separate Firefox instances using profiles are grouped in a single group on the taskbar 

Lets say you have 3 Firefox profiles (about:profiles), or 3 portable Firefox instances, and you have the separate instances all running at the same time. I had the issue that all the windows from the various profile instances were grouped into a single group on the task bar, and I could not find a way to un-group them.

Until recently I've been primarily been a Chrome user, so I was used to separate profile instances having their own taskbar group. Excessive CPU/resource utilisation aka fan noise and less battery have pushed me back towards Firefox.

impact: hard to know which windows relate to which profile

This problem impacts productivity and increases frustration because you've no immediate idea which windows relate to which profiles. If you're like me and like to keep certain topics clean and separate, like work and private life, and various project work, this is a major issue.

solution: there is a config tweak workaround

There was an official bug fix for this issue titled "No way to un-group separate instances on Windows 7 TaskBar". It took me at least an hour of research to find and get this setting working after a number of dead ends, so sharing it here.
  1. Open about:config
  2. change browser.startup.blankWindow and the value to false.
  3. Right click "new" > "boolean"
  4. When prompted set the name to taskbar.grouping.useprofile and the value to true.
  5. Restart Firefox
Note that the new setting does not use the browser. prefix.

citation:

Props to:
ptsampoukas @ MozillaZine forums for pointing me in the right direction.

Friday, May 4, 2018

Microsoft Visio 2013 :: Import of image file failed: '[name of the image file]'

problem: I cannot insert an image file into Visio 2013 (INSERT > PICTURES > (any graphic formats .png, .jpg, etc).

The popup message is: "Import of image file failed: '[name of the image file]'". Pasting the image also didn't work and complained with a pop up about not enough memory.

impact: cannot import images in Visio

solution: install Visio KB3114720

Here is a link to the update for Visio 2013 (KB3114720) (Applies to: Microsoft Visio 2013 Service Pack 1)

Interestingly enough making a new windows profile and trying to insert an image in Visio in the new profile worked fine. Opening that saved drawing in the profile that was not working showed a box with an X inside where the image had been successfully inserted in another profile.

Pasting from mspaint did work, but things like transparency were lost in this case.

citation(s):

Props to:
Pieter Pessemier @ answers.microsoft.com