Git Product home page Git Product logo

linkliar's Introduction

Version License Build Status Gitter

Prevent your Mac from leaking MACs

This is an intuitive macOS status menu application written in Swift to help you spoof the MAC addresses of your Wi-Fi and Ethernet interfaces. It is free open-source.

➡️ How do I install this?

If you star this project (by clicking on ✭ in the top-right corner), you help me to prioritize among my open-source projects.

Screenshot

Requirements

  • macOS Sierra (10.12) or later (see releases for older versions).
  • Administrator privileges (you will be asked for your root password once).

Installation

If you have Homebrew, just run brew install --cask linkliar.

To install it manually, follow these instructions in the documentation.

Documentation

What you're looking at right now is the technical documentation.

The end-user documentation is located at halo.github.io/LinkLiar.

There is also a source-code documentation in progress, see bin/docs for inspiration.

Limitations/Caveats

  • When your Wi-Fi (aka Airport) is turned off, you cannot change its MAC address. You need to turn it on first.
  • If you change a MAC address while the interface is connected, you will briefly loose connection.
  • If you rapidly close and open your MacBook, the MAC address may change while the Wi-Fi connection remains and you loose the connection (that is, if you have configured LinkLiar to re-randomize the MAC address).
  • Whenever you successfully changed your MAC address, your System Preferences will still show you the original hardware MAC address. This is normal behavior and your actual network traffic uses the new, changed MAC address.
  • 2018 MacBooks cannot change their MAC address, because of a bug in macOS.
  • As of macOS 12.3 (Monterey), the MAC address of an interface cannot be modified while connected to a network. That's why LinkLiar will disassociate from any connected network before modifying the MAC address.

Troubleshooting

You can create this logfile and whenever it exists, all LinkLiar components will write to it:

touch "/Library/Application Support/LinkLiar/linkliar.log"

Delete the log file again to silence logging.

Once LinkLiar is started and the menu is visible, you can hold the Option ⌥ key for advanced options. This is only intended for developers.

If you want a more colorful output, clone this git repository and run bin/logs. That's what I use when I'm debugging. This utility is also bundled in LinkLiar so you can run it with

# Run this in a Terminal for live debugging logs.
/Applications/LinkLiar.app/Contents/Resources/logs

Development

HelpBook

To update the HelpBook (end-user documentation), change the source files in LinkLiarHelp/en.lproj and then generate the output with bin/docs.

Future work

  • Add badge with test coverage to README

Thanks

  • The icon in Link/Images.xcassets is from Iconmonstr.

License

MIT 2012-2021 halo. See MIT-LICENSE.

linkliar's People

Contributors

dependabot[bot] avatar halo avatar raybb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

linkliar's Issues

No longer works with the 2018 MBPs

Has anyone ever managed to find a way to spoof MAC addresses on macos for 2018 MBPs? Since it looks like even the manual sudo ifconfig en0 ether xx:xx:xx:xx:xx:xx no longer changes anything...

Thanks for the help!

Hardware/Original MAC

Hi, is it possible to add a "revert to original" feature? or just show the original MAC?

Like in "ChangeMAC 1.6", another similar utility, you can see the HW MAC and the fake MAC, then revert:
s

Would make this utility perfect, THANKS! =)

Warn user about the possibility of loosing connection

From @GnrGnr extracted from this issue

When changing the MAC address, the current (wifi) connection becomes unusable. The network adapter probably has to renegotiate its connection once the MAC address changes. If this is the standard procedure, it would be much more convenient to the user if LinkLiar kills the ethernet/wifi connection(s) and re-establishes it once a MAC address change has been initiated by the user. The "suddenly unusable network connection" could become a major headache for people forgetting (or not knowing) that they have to re-establish their network connection. A quick drop and re-connect by LinkLiar could probably avoid this.

“LinkLiar.app” can’t be opened because Apple cannot check it for malicious software.

I've just installed the app onto my Monterey 12.6.1 (21G217) and once I started it, I got next error:

“LinkLiar.app” can’t be opened because Apple cannot check it for malicious software.
This software needs to be updated. Contact the developer for more information.

Please publish a signed version of the app, so that macOS accepts it without any issues

high sierra: mac does not change in "Network Utility"

Thanks for the project. The UI is really minimal and nice.

ifconfig en0 |grep ether do show changed mac address. However "Network Utility" still shows the original mac address.

The same thing happens when trying to set the mac manually using command line as well:

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z
sudo ifconfig en0 ether xxx
networksetup -detectnewhardware

Give every AP an unique address

I'm getting trouble with an Access point that have MAC address filter. Every time I reboot system, software will give me a new address. So I can't connect to my AP. we should add a new pattern that give every AP a unique address, just like what we got from iOS14

Apple TV

I am trying to make my mac address an Apple TV mac to spoof a hotel internet. I cannot apply a manual from the Apple TV.

How to confirm its working?

I used macchanger to see if the mac address in linkliar would match to see if it is really working, how can we confirm its actually working? ie. what command can we enter to see the mac address matches what it says in linkliar?

Thanks

Small code issue

In Xcode, going to LinkLiar/LinkTools/FileObserver.swift:41 throws error C function pointer signature '(ConstFSEventStreamRef, UnsafeMutableRawPointer?, Int, UnsafeMutableRawPointer, UnsafePointer<FSEventStreamEventFlags>?, UnsafePointer<FSEventStreamEventId>?) -> Void' (aka '(OpaquePointer, Optional<UnsafeMutableRawPointer>, Int, UnsafeMutableRawPointer, Optional<UnsafePointer<UInt32>>, Optional<UnsafePointer<UInt64>>) -> ()') is not compatible with expected type 'FSEventStreamCallback' (aka '@convention(c) (OpaquePointer, Optional<UnsafeMutableRawPointer>, Int, UnsafeMutableRawPointer, UnsafePointer<UInt32>, UnsafePointer<UInt64>) -> ()’) when compiling.

Also, LinkLiar/LinkTools/MACAddress.swift throws three warnings: 'characters’ is deprecated: Please use String or Substring directly. for each return statement. It seems to be fixed by just deleting characters...

Cannot set manual MAC address

Whenever I try to set a MAC address I want my computer manually (running macOS 10.12.4 and LinkLiar 1.1.2), it doesn't work. For example, I tried setting my MAC address to "fc:db:b3:59:47:cb" from the previously made random one (being "00:07:93:da:4d:4b") and nothing changed (I was unable to get any manual MAC address to work at all, not just that one specifically). It seems to just revert to whatever one was defined before by the "random" option. Also, it would be nice to allow the user to paste in a MAC address they would like to use manually, as it seems that you can only type it in. Anyways, here are the Logs from LinkLiar when I am defining a MAC address manually as "fc:db:b3:59:47:cb" (I have removed my actual MAC address):

Apr 14 19:07:27 MBAAJK Link[14512]: Yeah, this is the Helper I want.
Apr 14 19:09:13 MBAAJK Link[14512]: Refreshing menu before opening it...
Apr 14 19:09:13 MBAAJK Link[14512]: Going to refresh...
Apr 14 19:09:13 MBAAJK Link[14512]: Proxying from Synchronizer to Intercom...
Apr 14 19:09:13 MBAAJK Link[14512]: Intercom is going to check HelperTool version...
Apr 14 19:09:13 MBAAJK Link[14512]: connectAndExecuteCommandBlock
Apr 14 19:09:13 MBAAJK Link[14512]: Connecting to Helper Tool...
Apr 14 19:09:13 MBAAJK Link[14512]: running command...
Apr 14 19:09:13 MBAAJK Link[14512]: Yeah, this is the Helper I want.
Apr 14 19:09:45 MBAAJK Link[14512]: User specified fc:db:b3:59:47:cb
Apr 14 19:09:45 MBAAJK Link[14512]: Defining hardware MAC **MYACTUALMAC** of Wi-Fi ∙ en0 to be fc:db:b3:59:47:cb
Apr 14 19:09:45 MBAAJK Link[14512]: Going to refresh...
Apr 14 19:09:45 MBAAJK Link[14512]: Proxying from Synchronizer to Intercom...
Apr 14 19:09:45 MBAAJK Link[14512]: Intercom is going to check HelperTool version...
Apr 14 19:09:45 MBAAJK Link[14512]: connectAndExecuteCommandBlock
Apr 14 19:09:45 MBAAJK Link[14512]: Connecting to Helper Tool...
Apr 14 19:09:45 MBAAJK Link[14512]: running command...
Apr 14 19:09:45 MBAAJK Link[14512]: Yeah, this is the Helper I want.
Apr 14 19:09:45 MBAAJK Link[14512]: Defining hardware MAC **MYACTUALMAC** of Wi-Fi ∙ en0 to MAC 
Apr 14 19:09:45 MBAAJK Link[14512]: applyAddress to BSD...
Apr 14 19:09:45 MBAAJK Link[14512]: connectAndExecuteCommandBlock
Apr 14 19:09:45 MBAAJK Link[14512]: Connecting to Helper Tool...
Apr 14 19:09:45 MBAAJK Link[14512]: running command...
Apr 14 19:09:45 MBAAJK Link[14512]: A MAC address has been updated...
Apr 14 19:09:45 MBAAJK Link[14512]: Going to refresh...
Apr 14 19:09:45 MBAAJK Link[14512]: Proxying from Synchronizer to Intercom...
Apr 14 19:09:45 MBAAJK Link[14512]: Intercom is going to check HelperTool version...
Apr 14 19:09:45 MBAAJK Link[14512]: connectAndExecuteCommandBlock
Apr 14 19:09:45 MBAAJK Link[14512]: Connecting to Helper Tool...
Apr 14 19:09:45 MBAAJK Link[14512]: running command...
Apr 14 19:09:45 MBAAJK Link[14512]: reply = 1
Apr 14 19:09:45 MBAAJK Link[14512]: Yeah, this is the Helper I want.

But yet, when checking Terminal to see if it was actually changed (I ran this command before and after I tried to set it manually) I found that it still returned the same, older address from before:

MBAAJK:~ ajkblue$ ifconfig en0| grep ether
	ether 00:07:93:da:4d:4b 
MBAAJK:~ ajkblue$ ifconfig en0| grep ether
	ether 00:07:93:da:4d:4b 

Also, LinkLiar still shows the older randomized MAC address before I tried to change it manually, while still leaving the "Define Manually" option checked as if it worked:
screen shot 2017-04-14 at 7 16 59 pm

LinkLiar crash almost immediately

I just installed LinkLiar (OS X Yosemite, 10.10.5) and it hangs then crashes almost immediately after I click on its menu bar icon to interact with it. I've turned on debug mode, and would be happy to send logs if you guide me on what to send.

Installation (of helper tool) fails

I unfortunately was unable to get the new release to install properly. After running LinkLiar.app, the password entry window shows up briefly but disappears again automatically after a second.

Feature Request: Randomize address when switching networks

It would be a useful privacy feature (maybe as an option in the menu bar) to randomize the MAC address between network changes, e.g. for in the times when I switch between "Café Wifi" and "My Home Wifi". I think something like this, if implemented, would work best if changed between switching networks, when there is no other connection available so it doesn't mess with the current network (as macOS's wifi seems to struggle enough to reconnect when manually changed while connected).

I've noticed that I don't turn my Mac off very often, as most of the time it just sleeps, and the only time that LinkLiar automatically changes the address is upon boot. Too many times I've gone for weeks and weeks on end before realizing that my device and where I've been has been completely trackable among the many networks I switch between because I forget to change my MAC address beforehand. Could something like this be implemented?

Possibly broken in Monterey

When I try the command ifconfig en0 ether f9:e8:15:e3:39:dd (as sudo or not), I get the message

ifconfig: ioctl (SIOCAIFADDR): Operation not supported on socket

So I downloaded this app hoping it might work, just no joy. No error or anything, the MAC just stays the same no matter the settings.

Ethernet over Thunderbolt enabled?

Any chance you can update it to allow for Ethernet over Thunderbolt to be changed? The only options I get are Ethernet and Wi-FI. Thanks!
BTW, I am on Mountain Lion.

Selected replacement MAC not accepted

Not only was this and has this always been an issue, but in this very early beta there is no indication that the new IP did not work, it's always annoying to have a dialogue box to basically tell you something that you can't do anything about, in this instance I'd take the approach that a prevention is better than a cure and as such always have the code work, but I understand this might well be a prevailing problem for a reason - too many combinations to be known which will and will not work.

How about then, if possible, have a red background flash for a second behind the IP not changed? I have disability settings configured so that the window will flash when an error occurs, it's a nice effect, but not on by default, to my knowledge. Is there then a way to highlight the fact, to possibly draw the users eyes to the area of contention, that a change has not been made without the need for a dialogue box or a GROWL notification?

The problem is when you've set the number and let it go, much like a sling-shot - one expects it to keep on travelling in the desired direction and not end in the anti-climax of the conker still in the sling, the IP should change. Perhaps then, this is just a personal preference, that only the positive elements be highlighted i.e. when the IP is successfully changed then a GROWL notification be shown.

wrong mac displayed in menu bar

As shown in the picture, when using Random or Define manually methods linkliar is displaying a different mac address (not sure where it come from).
If using the Keep Original method then it display the correct one

linkliar wrong mac

Unable to write to config.json

Despite allowing everyone read/write access to config.json LinkLiar reports its still unable to write to the config file.
Im using the pre-release version of LinkLiar 3.2.0 OS X Ventura 13.4.1.

The advanced options show that the config file is writeable. However when you attempt to change the interface to random, it reports the error below in the logs and never saves the preference, even after killing the app and restarting it.
image

Error Message:
GUI - JSONWriter - Could not write: Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “config.json” in the folder “io.github.halo.LinkLiar”." UserInfo={NSFilePath=/Library/Application Support/io.github.halo.LinkLiar/config.json, NSUserStringVariant=Folder, NSUnderlyingError=0x600002b90bd0 {Error Domain=NSPOSIXErrorDomain Code=13 "Permission denied"}}

Full Debug:
Daemon - JSONReader - Reading /Library/Application Support/io.github.halo.LinkLiar/config.json Daemon - JSONReader - Content: 289 bytes Daemon - JSONReader - Successfuly read it Daemon - LinkDaemon - Running Synchronizer because config changed... Daemon - Ifconfig - Interface en0 has the soft MAC address xx:xx:xx:xx:xx:xx Daemon - Synchronizer - Interface en0 is specified to be randomized. Daemon - Synchronizer - Checking among these prefixes: ["00:03:93", "00:05:02", "00:0a:27", "00:0a:95", "00:0d:93", "00:10:fa", "00:11:24", "00:14:51", "00:16:cb", "00:17:f2", "00:19:e3", "00:1b:63", "00:1c:b3", "00:1d:4f", "00:1e:52", "00:1e:c2", "00:1f:5b", "00:1f:f3", "00:21:e9", "00:22:41", "00:23:12", "00:23:32", "00:23:6c", "00:23:df", "00:24:36", "00:25:00", "00:25:4b", "00:25:bc", "00:26:08", "00:26:4a", "00:26:b0", "00:26:bb", "00:30:65", "00:3e:e1", "00:50:e4", "00:56:cd", "00:5b:94", "00:61:71", "00:6d:52", "00:88:65", "00:a0:40", "00:b3:62", "00:c6:10", "00:cd:fe", "00:db:70", "00:f4:b9", "00:f7:6f", "04:0c:ce", "04:15:52", "04:1e:64", "04:26:65", "04:48:9a", "04:4b:ed", "04:52:f3", "04:54:53", "04:69:f8", "04:72:95", "04:d3:cf", "04:db:56", "04:e5:36", "04:f1:3e", "04:f7:e4", "08:00:07", "08:2c:b6", "08:66:98", "08:6d:41", "08:70:45", "08:74:02", "08:e6:89", "08:f4:ab", "08:f6:9c", "08:f8:bc", "0c:15:39", "0c:30:21", "0c:3b:50", "0c:3e:9f", "0c:4d:e9", "0c:51:01", "0c:74:c2", "0c:77:1a", "0c:bc:9<…> Daemon - Synchronizer - The Interface en0 has the sanctioned prefix MACAddress(raw: "xx:xx:xx:xx:xx:xx"). Daemon - Synchronizer - Skipping randomization of Interface en0 because it is already random and no undesired address has been specified. GUI - Bar - Reloading status bar icon... GUI - Ifconfig - Interface en0 has the soft MAC address xx:xx:xx:xx:xx:xx GUI - Bar - Status bar icon reloaded. GUI - Bar - User clicked on the status bar menu icon. GUI - Menu - Updating... GUI - Menu - Reloading Interface menu items GUI - MACVendors - Looking up vendor of MAC GUI - PrefixesSubmenu - Updating... GUI - PrefixesSubmenu - Loading chosen vendors into submenu... GUI - PrefixesSubmenu - Loading chosen prefixes into submenu... GUI - PrefixesSubmenu - Loading available vendors into submenu... GUI - LaunchCtl - Querying launchctl for daemon... GUI - Intercom - The helper responded with its version GUI - Bar - Immediately refreshing GUI GUI - Ifconfig - Interface en0 has the soft MAC address xx:xx:xx:xx:xx:xx GUI - MACVendors - Looking up vendor of MAC xx:xx:xx:xx:xx:xx GUI - Bar - Immediately refreshing GUI GUI - Bar - Reloading status bar icon... GUI - Ifconfig - Interface en0 has the soft MAC address xx:xx:xx:xx:xx:xx GUI - Bar - Status bar icon reloaded. GUI - Intercom - The helper responded with its version GUI - Bar - Immediately refreshing GUI GUI - ConfigWriter - Changing config to randomize Interface en0 excluding its current address xx:xx:xx:xx:xx:xx GUI - JSONWriter - Could not write: Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “config.json” in the folder “io.github.halo.LinkLiar”." UserInfo={NSFilePath=/Library/Application Support/io.github.halo.LinkLiar/config.json, NSUserStringVariant=Folder, NSUnderlyingError=0x600002b90bd0 {Error Domain=NSPOSIXErrorDomain Code=13 "Permission denied"}} Daemon - IntervalTimer - 600.0 seconds have passed. Daemon - LinkDaemon - Time for periodic activity... Daemon - Ifconfig - Interface en0 has the soft MAC address xx:xx:xx:xx:xx:xx Daemon - Synchronizer - Interface en0 is specified to be randomized. Daemon - Synchronizer - Checking among these prefixes: ["00:03:93", "00:05:02", "00:0a:27", "00:0a:95", "00:0d:93", "00:10:fa", "00:11:24", "00:14:51", "00:16:cb", "00:17:f2", "00:19:e3", "00:1b:63", "00:1c:b3", "00:1d:4f", "00:1e:52", "00:1e:c2", "00:1f:5b", "00:1f:f3", "00:21:e9", "00:22:41", "00:23:12", "00:23:32", "00:23:6c", "00:23:df", "00:24:36", "00:25:00", "00:25:4b", "00:25:bc", "00:26:08", "00:26:4a", "00:26:b0", "00:26:bb", "00:30:65", "00:3e:e1", "00:50:e4", "00:56:cd", "00:5b:94", "00:61:71", "00:6d:52", "00:88:65", "00:a0:40", "00:b3:62", "00:c6:10", "00:cd:fe", "00:db:70", "00:f4:b9", "00:f7:6f", "04:0c:ce", "04:15:52", "04:1e:64", "04:26:65", "04:48:9a", "04:4b:ed", "04:52:f3", "04:54:53", "04:69:f8", "04:72:95", "04:d3:cf", "04:db:56", "04:e5:36", "04:f1:3e", "04:f7:e4", "08:00:07", "08:2c:b6", "08:66:98", "08:6d:41", "08:70:45", "08:74:02", "08:e6:89", "08:f4:ab", "08:f6:9c", "08:f8:bc", "0c:15:39", "0c:30:21", "0c:3b:50", "0c:3e:9f", "0c:4d:e9", "0c:51:01", "0c:74:c2", "0c:77:1a", "0c:bc:9<…> Daemon - Synchronizer - The Interface en0 has the sanctioned prefix MACAddress(raw: "xx:xx:xx:xx:xx:xx").

I appreciate you having a look, btw the MACs were masked in this debug message.

Btw the fix for this issue is to run "sudo chown -R $(whoami) /Library/Application\ Support/io.github.halo.LinkLiar/" which manually adjusts the permissions. Doing so through the OSX GUI didnt work for some reason or another.

bug? wifi unable to connect on sleep-wake

I think this was being caused by linkliar.

for a long time my laptop seemed to be unable to connect back to wifi on waking up from a sleep state. it would see the network, but hang on reconnection and eventually fail. I would have to restart the computer to get it work.

I uninstalled linkliar and I think the problem is resolved.

I originally assumed this was a hardware problem and only realized it was a soft issue because I copied my user profile to a different laptop and started having the same problem.

not sure how else to diagnose, just wanted to flag this up.

Donation link?

Donation link for BTC, ETH or Paypal?
Want to drop you $10 for the useful app.

Parts of the menu disappear (Wi-Fi, Help and Quit items)

Moved here over from #13 (comment)

@GnrGnr wrote:

Installation now works. Yet en1 (WiFi) disappears after authorization of the helper tool from the dropdown. Maybe that's what @kwolk meant/experienced. It doesn't seem to make a difference whether the adapter is active/deativated. Turning wifi on/off also doesn't bring the entry back. En0 works fine though. Like a charm :)

There was some output on the console:

16/02/15 22:58:09,467 SecurityAgent[12901]: Failed to initialize IconCache named: com.apple.iconservices with error: Error Domain=NSCocoaErrorDomain Code=4097 "Couldn’t communicate with a helper application." (connection to service named com.apple.iconservices) UserInfo=0x7fa869794d50 {NSDebugDescription=connection to service named com.apple.iconservices}
16/02/15 22:58:09,468 SecurityAgent[12901]: Error returned from iconservicesagent: Error Domain=NSCocoaErrorDomain Code=4097 "Couldn’t communicate with a helper application." (connection to service named com.apple.iconservices) UserInfo=0x7fa8695127e0 {NSDebugDescription=connection to service named com.apple.iconservices}
16/02/15 22:58:13,934 SecurityAgent[12901]: Error returned from iconservicesagent: Error Domain=NSCocoaErrorDomain Code=4097 "Couldn’t communicate with a helper application." (connection to service named com.apple.iconservices) UserInfo=0x7fa869481840 {NSDebugDescription=connection to service named com.apple.iconservices}
16/02/15 22:58:16,016 Link[12873]: <NSXPCConnection: 0x60000010e8e0> connection to service named com.funkensturm.LinkHelper: Warning: Exception caught during decoding of received reply to message 'getVersionWithReply:', dropping incoming message and calling failure block.

Exception: *** -[NSArray objectsAtIndexes:]: index 2 in index set beyond bounds [0 .. 1]
16/02/15 22:58:17,304 Link[12873]: <NSXPCConnection: 0x60000010e8e0> connection to service named com.funkensturm.LinkHelper: Warning: Exception caught during decoding of received reply to message 'getVersionWithReply:', dropping incoming message and calling failure block.

Exception: *** -[NSArray objectsAtIndexes:]: index 2 in index set beyond bounds [0 .. 1]
16/02/15 22:58:19,558 CoreServicesUIAgent[11649]: unexpected message <OS_xpc_error: <error: 0x7fff7abf9c60> { count = 1, contents =
    "XPCErrorDescription" => <string: 0x7fff7abf9f70> { length = 18, contents = "Connection invalid" }
}>

Btw: Thanks for the hint to the adequate formatting. I had a quick look yesterday - yet did not identify backticks as the appropriate markdown on first glance.

On another note: Is there any way to shut down LinkLiar except from killing the process/restarting the machine?

EDIT: I just realised that there was a "Quit" option before i authorised the helper tool. Yet after its authorisation the quit option is gone; along with en1 and the "help" entry of the pulldown.

Menu Bar icon width

This is quite a nitpicking issue, but I find that on my small MacBook Air screen, all the space I can gain in the menu bar is helpful. I have noticed that the icon width of LinkLiar is a bit wider than other applications in my menu bar, here is is (selected) compared to f.lux:
screen shot 2015-10-21 at 4 49 42 pm
screen shot 2015-10-21 at 4 50 01 pm
I know that this is not too big of an issue, but it would be great to shrink the width of the selectable area that LinkLiar uses in the menu bar. The actual icon will still fit perfectly within a smaller size. Looking at LinkLiar's icon compared to the rest of my menu bar apps, the extra space around it becomes more noticeable:
screen shot 2015-10-21 at 4 51 47 pm

Active?

This project looks awesome and a huge leap over spoof-mac, is it still active?

I think most people would use it instead of spoof-mac if they knew it was a thing.

It's still in Background apps list

I have uninstalled the app (the 4th version delta), but it's still in background running apps list. How can I remove it?
MBA 15 M3 Sonoma 14.5

CleanShot 2024-06-10 at 22 17 41

Keep going guys

Come on, let's make this a reality, it's a good project with a lot of benefits, is this project still active?

Auto randomisation checkbox option

Every now and then I like to change my IP, but it does depend on the circumstances, it's good for security and what not. This I see as an necessary human sacrifice, especially remembering, so why not automate it. A simple checkbox would do, there could be a favourites list, which would come in handy for guaranteeing changed IPs work first time, this in itself could be automated as those longest used would be automatically added, although that kind of contradicts the idea of a timed trigger action, then what of existing IPs on a network (of other connected users), those work and when they're disconnected you could assume them as your own - trixy stuff!

Implement Geo-fencing (or a workaround such as scripting access)

Is it possible to access LinkLiar with a script (such as AppleScript)? I tried looking at it with the accessibility inspector program but I can't seem to get it to work. Basically my use case is that I would like my MAC address to always be random unless I'm at my university, because for the Wi-Fi to work there they require registration with a MAC address and I'd rather not be re-registering my computer every time I connect.

What I would like to do is location based MAC address changing, such as turning it to my manually defined address whenever I'm on their network. I can detect location based changes (or SSID changes) with Little Snitch Profiles, and I'd just like to make those changes using LinkLiar rather than having to manually click it and paste a MAC address in.

WiFi fails to reconnect after LinkLiar changes MAC

I have FileVault enabled, and most of the time Wi-Fi will connect to a known network before I login and before (I assume) LinkLiar is able to start and randomize my computers MAC address. I usually assume that the network has gone down, but eventually my computer will realize that it's not getting any connection to the internet and tries to reconnect. At this point it gets stuck infinitely trying to do so. I have to manually turn Wi-Fi off and then back on again for it to work. Again, I have LinkLiar set to start at boot and is set to "random". Upon successfully connecting shortly after boot here is what is in the Console (BSSID is removed), but at the very last line I can see where Link Liar successfully changed the MAC address:

2/10/16 5:53:54.000 PM kernel[0]: AirPort: Link Down on en0. Reason 8 (Disassociated because station leaving).
2/10/16 5:53:54.000 PM kernel[0]: en0: channel changed to 1
2/10/16 5:53:54.000 PM kernel[0]: en0::IO80211Interface::postMessage bssid changed
2/10/16 5:53:54.981 PM configd[55]: dhcp_arp_router: en0 SSID unavailable
2/10/16 5:53:55.309 PM airportd[61]: airportdProcessDLILEvent: en0 attached (up)
2/10/16 5:53:55.000 PM kernel[0]: en0: channel changed to 1
2/10/16 5:53:56.000 PM kernel[0]: en0: channel changed to 1
2/10/16 5:53:56.000 PM kernel[0]: en0: 802.11d country code set to 'US'.
2/10/16 5:53:56.000 PM kernel[0]: en0: Supported channels 1 2 3 4 5 6 7 8 9 10 11 36 40 44 48 52 56 60 64 100 104 108 112 116 120 124 128 132 136 140 144 149 153 157 161 165
2/10/16 5:53:59.000 PM kernel[0]: AirPort: Link Up on en0
2/10/16 5:53:59.000 PM kernel[0]: en0: BSSID changed to
2/10/16 5:53:59.000 PM kernel[0]: en0: channel changed to 149,+1
2/10/16 5:53:59.000 PM kernel[0]: en0::IO80211Interface::postMessage bssid changed
2/10/16 5:53:59.000 PM kernel[0]: AirPort: RSN handshake complete on en0
2/10/16 5:54:00.902 PM UserEventAgent[45]: Captive: [CNInfoNetworkActive:1748] en0: SSID 'Spectre' making interface primary (protected network)
2/10/16 5:54:00.903 PM UserEventAgent[45]: Captive: CNPluginHandler en0: Evaluating
2/10/16 5:54:00.909 PM UserEventAgent[45]: Captive: en0: Probing 'Spectre'
2/10/16 5:54:01.082 PM configd[55]: network changed: v4(en0!:10.0.1.15) DNS+ Proxy+ SMB
2/10/16 5:54:01.562 PM UserEventAgent[45]: Captive: CNPluginHandler en0: Authenticated
2/10/16 5:54:07.624 PM sudo[524]:     root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig en0 ether 00:25:01:c5:d6:ae

Unfortunately, I am already connected to the network at that point and it will not try to reconnect again for quite a few minutes. Then this group of messages is repeated 52 times in the Console (from 5:53:56 to 6:02:01). Sometime after (during?) this point the wifi tries to reconnect but fails to do so:

2/10/16 6:00:37.000 PM kernel[0]: IO80211AWDLPeerManager::setAwdlOperatingMode Setting the AWDL operation mode from SUSPENDED to AUTO
2/10/16 6:00:37.000 PM kernel[0]: IO80211AWDLPeerManager::setAwdlAutoMode Resuming AWDL
2/10/16 6:00:38.000 PM kernel[0]: IO80211AWDLPeerManager::setAwdlOperatingMode Setting the AWDL operation mode from AUTO to SUSPENDED
2/10/16 6:00:38.000 PM kernel[0]: IO80211AWDLPeerManager::setAwdlSuspendedMode() Suspending AWDL, enterQuietMode(true)
2/10/16 6:00:42.000 PM kernel[0]: ARPT: 413.769814: wl0: Roamed or switched channel, reason #4, bssid , last RSSI -66
2/10/16 6:00:42.000 PM kernel[0]: en0: BSSID changed to 
2/10/16 6:00:42.000 PM kernel[0]: en0: channel changed to 149,+1
2/10/16 6:00:42.000 PM kernel[0]: en0::IO80211Interface::postMessage bssid changed
2/10/16 6:00:46.000 PM kernel[0]: Unexpected payload found for message 34, dataLen 2
2/10/16 6:00:46.000 PM kernel[0]: payload Data 02 00 

In the end, is there a way to prevent this problem from happing?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.