aluminum-ice / pwnagotchi

(⌐■_■) - Deep Reinforcement Learning instrumenting bettercap for WiFi pwning.
https://pwnagotchi.ai/
Other
769 stars 55 forks source link

[BUG] Auto-Update from 1.7.9 > 1.8.0 breaks pwnagotchi.service #72

Closed MykeHalk closed 11 months ago

MykeHalk commented 1 year ago

Same as #63

Steps to reproduce the behavior:

  1. Install 1.7.9
  2. Connect pwnagotchi to network/internet
  3. Allow to auto update.
  4. After update pwnagotchi reboots and fails to initialize pwnagotchi.service.

Expected behavior Should update from 1.7.9 to 1.8.0 without breaking service.

Environment

Additional context If flashing 1.8.0 directly without updating from 1.7.9, pwnagotchi.service functions and everything seems to be working.

"sudo pwnagotchi-launcher" output:

pwnagotchi Traceback (most recent call last): File "/usr/local/bin/pwnagotchi", line 152, in plugins.load(config) File "/usr/local/lib/python3.7/dist-packages/pwnagotchi/plugins/init.py", line 124, in load enabled = [name for name, options in config['main']['plugins'].items() if File "/usr/local/lib/python3.7/dist-packages/pwnagotchi/plugins/init.py", line 125, in 'enabled' in options and options['enabled']] TypeError: argument of type 'int' is not iterable

aluminum-ice commented 12 months ago

So the error only happens when you do an auto-update? A fresh flash direct onto a new card gives no error? What about when you reconfigure the new flashed image to have the same config.toml file?

Your snippet suggests its something with the plugins. Can you please tell me what happens if you make the config.toml file on the new flashed image match exactly the file for the image that auto-updated?

MykeHalk commented 12 months ago

Yes fresh flash works fine, auto update breaks, tried editing config.toml as well, completely removing everything except leaving -

ui.display.enabled = true ui.display.type = "waveshare_3" ui.display.rotation = 180 ui.display.color = "black"

but still same "pwnagotchi-launcher" error/output, service and ui not functioning.

aluminum-ice commented 12 months ago

Yes fresh flash works fine, auto update breaks, tried editing config.toml as well, completely removing everything except leaving -

ui.display.enabled = true ui.display.type = "waveshare_3" ui.display.rotation = 180 ui.display.color = "black"

but still same "pwnagotchi-launcher" error/output, service and ui not functioning.

Interesting. Maybe it's an issue with the auto-update plugin. It must not be updating everything correctly. Not sure why. Can you attach the log from the pwnagotchi you upgrade via the auto-update? There might be a clue there.

Also could you do a clean flash of v1.7.9 and then let the auto-update plugin update it to v1.8.0 and tell me if even that fails?

MykeHalk commented 12 months ago

log is same as in #63

[INFO] [update] checking for updates ... [2023-11-05 08:17:36,815] [WARNING] update for aluminum-ice/pwnagotchi available (local version is '1.7.9'): https://github.com/aluminum-ice/pwnagotchi/archive/1.8.0.zip [2023-11-05 08:17:36,817] [INFO] [update] downloading https://github.com/aluminum-ice/pwnagotchi/archive/1.8.0.zip to /tmp/updates/pwnagotchi/pwnagotchi_1.8.0.zip ... [2023-11-05 08:17:39,600] [INFO] [update] extracting /tmp/updates/pwnagotchi/pwnagotchi_1.8.0.zip to /tmp/updates/pwnagotchi ... [2023-11-05 08:17:40,937] [INFO] [update] installing pwnagotchi ... [2023-11-05 08:18:13,779] [INFO] [update] done [2023-11-05 08:18:13,809] [WARNING] rebooting ... [2023-11-05 08:18:23,850] [WARNING] syncing.

aluminum-ice commented 12 months ago

Could you please also do a clean flash of v1.7.9 and then let the auto-update plugin update it to v1.8.0 and tell me if even that fails?

MykeHalk commented 12 months ago

That's what I did, I installed 1.7.9 last night a couple hours before 1.8.0 was re-released. Once I connected to internet my pwnagotchi would reboot by itself after a few minutes and then fail, I realized after re-flashing it a couple times that it was auto updating while I was viewing the log. I then checked the release page and noticed that 1.8.0 was released a couple hours after I had downloaded 1.7.9. Had me a bit confused.

MykeHalk commented 12 months ago

Okay so i installed 1.7.9

edited config.toml to include

ui.display.enabled = true ui.display.type = "waveshare_3" ui.display.rotation = 180 ui.display.color = "black" main.plugins.bt-tether.enabled = true main.plugins.bt-tether.devices.android-phone.enabled = true main.plugins.bt-tether.devices.android-phone.search_order = 1 main.plugins.bt-tether.devices.android-phone.mac = "MYMACADDRESS" main.plugins.bt-tether.devices.android-phone.ip = "192.168.44.44" main.plugins.bt-tether.devices.android-phone.netmask = 24 main.plugins.bt-tether.devices.android-phone.interval = 1 main.plugins.bt-tether.devices.android-phone.scantime = 10 main.plugins.bt-tether.devices.android-phone.max_tries = 10 main.plugins.bt-tether.devices.android-phone.share_internet = true main.plugins.bt-tether.devices.android-phone.priority = 1 main.custom_plugins = "/usr/local/share/pwnagotchi/custom-plugins/"

Restarted pwnagotchi with "systemctl restart pwnagotchi"

Enabled logtail

Paired bluetooth tether

Auto updated

rebooting

[2023-11-21 03:19:20,127] | [WARNING] | update for aluminum-ice/pwnagotchi available (local version is '1.7.9'): https://github.com/aluminum-ice/pwnagotchi/archive/1.8.0.zip -- | -- | -- [2023-11-21 03:19:20,148] | [INFO] | [update] downloading https://github.com/aluminum-ice/pwnagotchi/archive/1.8.0.zip to /tmp/updates/pwnagotchi/pwnagotchi_1.8.0.zip ... [2023-11-21 03:20:25,316] | [INFO] | [update] extracting /tmp/updates/pwnagotchi/pwnagotchi_1.8.0.zip to /tmp/updates/pwnagotchi ... [2023-11-21 03:20:28,239] | [INFO] | [update] installing pwnagotchi ... [2023-11-21 03:21:21,700] | [INFO] | [update] done [2023-11-21 03:21:22,518] | [WARNING] | rebooting ... [2023-11-21 03:21:32,946] | [WARNING] | syncing...

Screenshot 2023-11-20 192606

Screenshot 2023-11-20 192854

Anything else you want me to check?

retiolus commented 12 months ago

It is possible that this config options are rasing the errors?

main.plugins.ntfy.on_internet_available_enabled = true
main.plugins.ntfy.on_handshake_enabled = true
main.plugins.ntfy.on_peer_detected_enabled = true
main.plugins.ntfy.on_peer_lost_enabled = true

This line is raising an error because above config options do indeed have "enabled" in their text, but not "enabled" argument: https://github.com/aluminum-ice/pwnagotchi/blob/master/pwnagotchi/plugins/__init__.py#L125

Safi-Dev commented 12 months ago

Okay so i installed 1.7.9

edited config.toml to include

ui.display.enabled = true ui.display.type = "waveshare_3" ui.display.rotation = 180 ui.display.color = "black" main.plugins.bt-tether.enabled = true main.plugins.bt-tether.devices.android-phone.enabled = true main.plugins.bt-tether.devices.android-phone.search_order = 1 main.plugins.bt-tether.devices.android-phone.mac = "MYMACADDRESS" main.plugins.bt-tether.devices.android-phone.ip = "192.168.44.44" main.plugins.bt-tether.devices.android-phone.netmask = 24 main.plugins.bt-tether.devices.android-phone.interval = 1 main.plugins.bt-tether.devices.android-phone.scantime = 10 main.plugins.bt-tether.devices.android-phone.max_tries = 10 main.plugins.bt-tether.devices.android-phone.share_internet = true main.plugins.bt-tether.devices.android-phone.priority = 1 main.custom_plugins = "/usr/local/share/pwnagotchi/custom-plugins/"

Restarted pwnagotchi with "systemctl restart pwnagotchi"

Enabled logtail

Paired bluetooth tether

Auto updated

rebooting

[2023-11-21 03:19:20,127] [WARNING] update for aluminum-ice/pwnagotchi available (local version is '1.7.9'): https://github.com/aluminum-ice/pwnagotchi/archive/1.8.0.zip [2023-11-21 03:19:20,148] [INFO] [update] downloading https://github.com/aluminum-ice/pwnagotchi/archive/1.8.0.zip to /tmp/updates/pwnagotchi/pwnagotchi_1.8.0.zip ... [2023-11-21 03:20:25,316] [INFO] [update] extracting /tmp/updates/pwnagotchi/pwnagotchi_1.8.0.zip to /tmp/updates/pwnagotchi ... [2023-11-21 03:20:28,239] [INFO] [update] installing pwnagotchi ... [2023-11-21 03:21:21,700] [INFO] [update] done [2023-11-21 03:21:22,518] [WARNING] rebooting ... [2023-11-21 03:21:32,946] [WARNING] syncing... Screenshot 2023-11-20 192606

Screenshot 2023-11-20 192854

Anything else you want me to check?

Can confirm that I received the exact same errors after an auto-update from 1.7.9--> 1.8.0, I flashed my sd card to 1.8.0 and it is fully functional.

retiolus commented 12 months ago

Could someone share the full content of their config.toml after the auto-update?

buave commented 12 months ago

I have the same problem This is my config.toml after auto-update:

main.name = "pwnagotchi"
main.lang = "en"
main.whitelist = [
]
main.plugins.grid.enabled = true
main.plugins.grid.report = false
main.plugins.grid.exclude = [
]

main.plugins.auto-update.enabled = true
main.plugins.auto-update.install = true
main.plugins.auto-update.interval = 1

main.plugins.net-pos.enabled = true
main.plugins.net-pos.api_key = "test"

main.plugins.gps.enabled = false
main.plugins.gps.speed = 19200
main.plugins.gps.device = "/dev/ttyUSB0"

main.plugins.webgpsmap.enabled = true

main.plugins.onlinehashcrack.enabled = false
main.plugins.onlinehashcrack.email = "nope"
main.plugins.onlinehashcrack.dashboard = "nope"
main.plugins.onlinehashcrack.single_files = false
main.plugins.onlinehashcrack.whitelist = [
]

main.plugins.wpa-sec.enabled = true
main.plugins.wpa-sec.api_key = "nope"
main.plugins.wpa-sec.api_url = "https://wpa-sec.stanev.org"
main.plugins.wpa-sec.download_results = true
main.plugins.wpa-sec.whitelist = []
main.plugins.wpa-sec.founds.insert.enabled = true

main.plugins.wigle.enabled = false
main.plugins.wigle.api_key = ""
main.plugins.wigle.whitelist = []
main.plugins.wigle.donate = true

main.plugins.bt-tether.enabled = true
main.plugins.bt-tether.devices.android-phone.enabled = true
main.plugins.bt-tether.devices.android-phone.search_order = 1
main.plugins.bt-tether.devices.android-phone.mac = "nope"
main.plugins.bt-tether.devices.android-phone.ip = "192.168.44.100"
main.plugins.bt-tether.devices.android-phone.netmask = 24
main.plugins.bt-tether.devices.android-phone.interval = 1
main.plugins.bt-tether.devices.android-phone.scantime = 10
main.plugins.bt-tether.devices.android-phone.max_tries = 10
main.plugins.bt-tether.devices.android-phone.share_internet = true
main.plugins.bt-tether.devices.android-phone.priority = 1

main.plugins.bt-tether.devices.ios-phone.enabled = false
main.plugins.bt-tether.devices.ios-phone.search_order = 2
main.plugins.bt-tether.devices.ios-phone.mac = ""
main.plugins.bt-tether.devices.ios-phone.ip = "172.20.10.6"
main.plugins.bt-tether.devices.ios-phone.netmask = 24
main.plugins.bt-tether.devices.ios-phone.interval = 5
main.plugins.bt-tether.devices.ios-phone.scantime = 20
main.plugins.bt-tether.devices.ios-phone.max_tries = 0
main.plugins.bt-tether.devices.ios-phone.share_internet = false
main.plugins.bt-tether.devices.ios-phone.priority = 999

main.plugins.memtemp.enabled = true
main.plugins.memtemp.scale = "celsius"
main.plugins.memtemp.orientation = "horizontal"

main.plugins.paw-gps.enabled = false
main.plugins.paw-gps.ip = "192.168.44.1:8080"

main.plugins.ups_lite.enabled = false
main.plugins.ups_lite.shutdown = 2

main.plugins.gpio_buttons.enabled = false

main.plugins.led.enabled = true
main.plugins.led.led = 0
main.plugins.led.delay = 200
main.plugins.led.patterns.loaded = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.updating = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.unread_inbox = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.ready = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.ai_ready = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.ai_training_start = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.ai_best_reward = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.ai_worst_reward = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.bored = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.sad = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.excited = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.lonely = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.rebooting = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.wait = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.sleep = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.wifi_update = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.association = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.deauthentication = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.handshake = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.epoch = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.peer_detected = "oo  oo  oo oo  oo  oo  oo"
main.plugins.led.patterns.peer_lost = "oo  oo  oo oo  oo  oo  oo"

main.plugins.logtail.enabled = true
main.plugins.logtail.max-lines = 10000

main.plugins.session-stats.enabled = false
main.plugins.session-stats.save_directory = "/var/tmp/pwnagotchi/sessions/"

main.plugins.hashie.enabled = false

main.plugins.aircrackonly.enabled = false
main.plugins.aircrackonly.face = "(>.<)"

main.plugins.webcfg.enabled = true

main.plugins.display-password.enabled = true
main.plugins.display-password.orientation = "horizontal"
main.plugins.display-password.path_handshakes = "/root/handshakes"

main.plugins.ntfy.enabled = true
main.plugins.ntfy.name = "minigotchi"
main.plugins.ntfy.serverlink = "https://ntfy.sh/zdzdzdzdzz"
main.plugins.ntfy.token = ""
main.plugins.ntfy.priority = "3"
main.plugins.ntfy.icon = "https://files.catbox.moe/1toze0.jpg"

main.plugins."wpa-sec.founds.insert".enabled = true

main.plugins.example.enabled = false

main.plugins.quickdic.enabled = false
main.plugins.quickdic.face = "(·ω·)"

main.plugins.wpa-cracked-insert.enabled = false

main.confd = "/etc/pwnagotchi/conf.d/"
main.custom_plugins = "/usr/local/share/pwnagotchi/installed-plugins/"
main.custom_plugin_repos = [
 "https://github.com/evilsocket/pwnagotchi-plugins-contrib/archive/master.zip",
 "https://github.com/Teraskull/pwnagotchi-community-plugins/archive/master.zip",
]
main.iface = "mon0"
main.mon_start_cmd = "/usr/bin/monstart"
main.mon_stop_cmd = "/usr/bin/monstop"
main.mon_max_blind_epochs = 50
main.no_restart = false
main.filter = ""
main.log.debug = false
main.log.path = "/var/log/pwnagotchi.log"
main.log.rotation.enabled = true
main.log.rotation.size = "10M"

ui.display.enabled = true
ui.display.type = "waveshare_2"
ui.display.rotation = 180
ui.display.color = "black"

ui.web.username = "bov"
ui.web.password = "nope"
ui.web.enabled = true
ui.web.address = "0.0.0.0"
ui.web.origin = ""
ui.web.port = 8080
ui.web.on_frame = ""

ui.fps = 0
ui.font.name = "DejaVuSansMono"
ui.font.size_offset = 0

ui.faces.look_r = "( ⚆_⚆)"
ui.faces.look_l = "(☉_☉ )"
ui.faces.look_r_happy = "( ◕‿◕)"
ui.faces.look_l_happy = "(◕‿◕ )"
ui.faces.sleep = "(⇀‿‿↼)"
ui.faces.sleep2 = "(≖‿‿≖)"
ui.faces.awake = "(◕‿‿◕)"
ui.faces.bored = "(-__-)"
ui.faces.intense = "(°▃▃°)"
ui.faces.cool = "(⌐■_■)"
ui.faces.happy = "(•‿‿•)"
ui.faces.excited = "(ᵔ◡◡ᵔ)"
ui.faces.grateful = "(^‿‿^)"
ui.faces.motivated = "(☼‿‿☼)"
ui.faces.demotivated = "(≖__≖)"
ui.faces.smart = "(✜‿‿✜)"
ui.faces.lonely = "(ب__ب)"
ui.faces.sad = "(╥☁╥ )"
ui.faces.angry = "(-_-')"
ui.faces.friend = "(♥‿‿♥)"
ui.faces.broken = "(☓‿‿☓)"
ui.faces.debug = "(#__#)"
ui.faces.upload = "(1__0)"
ui.faces.upload1 = "(1__1)"
ui.faces.upload2 = "(0__1)"

fs.memory.enabled = true
fs.memory.mounts.log.enabled = true
fs.memory.mounts.log.mount = "/var/log"
fs.memory.mounts.log.size = "50M"
fs.memory.mounts.log.sync = 60
fs.memory.mounts.log.zram = true
fs.memory.mounts.log.rsync = true

fs.memory.mounts.data.enabled = true
fs.memory.mounts.data.mount = "/var/tmp/pwnagotchi"
fs.memory.mounts.data.size = "10M"
fs.memory.mounts.data.sync = 3600
fs.memory.mounts.data.zram = false
fs.memory.mounts.data.rsync = true

ai.enabled = true
ai.path = "/root/brain.nn"
ai.laziness = 0.1
ai.epochs_per_episode = 50
ai.params.gamma = 0.99
ai.params.n_steps = 1
ai.params.vf_coef = 0.25
ai.params.ent_coef = 0.01
ai.params.max_grad_norm = 0.5
ai.params.learning_rate = 0.001
ai.params.alpha = 0.99
ai.params.epsilon = 1e-5
ai.params.verbose = 1
ai.params.lr_schedule = "constant"

personality.advertise = true
personality.deauth = true
personality.associate = true
personality.channels = []
personality.min_rssi = -200
personality.ap_ttl = 30
personality.sta_ttl = 60
personality.recon_time = 5
personality.max_inactive_scale = 3
personality.recon_inactive_multiplier = 1
personality.hop_recon_time = 5
personality.min_recon_time = 1
personality.max_interactions = 1
personality.max_misses_for_recon = 3
personality.excited_num_epochs = 5
personality.bored_num_epochs = 5
personality.sad_num_epochs = 5
personality.bond_encounters_factor = 20000

bettercap.scheme = "http"
bettercap.hostname = "localhost"
bettercap.port = 8081
bettercap.username = "pwnagotchi"
bettercap.password = "nope"
bettercap.handshakes = "/root/handshakes"
bettercap.silence = [
 "ble.device.new",
 "ble.device.lost",
 "ble.device.disconnected",
 "ble.device.connected",
 "ble.device.service.discovered",
 "ble.device.characteristic.discovered",
 "wifi.client.new",
 "wifi.client.lost",
 "wifi.client.probe",
 "wifi.ap.new",
 "wifi.ap.lost",
 "mod.started",
]
retiolus commented 12 months ago

I couldn't find the error, which probably comes from the auto-update plugin. Maybe it should be removed, or we should point out that it's not working properly the next time there's an update.

diogo-abp-costa commented 12 months ago

I was having the same issue, I was able to solve the issue by adding main.plugins.wpa-sec-download_interval = "3600" to my config.toml. There seems to be an issue parsing the int so adding the quotation marks solved the problem for me.

retiolus commented 12 months ago

You mean this line? https://github.com/aluminum-ice/pwnagotchi/blob/5ff97c82b73a98a691c06c497ff8dabc505ecca3/pwnagotchi/defaults.toml#L52C1-L52C46 @diogo-abp-costa

diogo-abp-costa commented 12 months ago

You mean this line? https://github.com/aluminum-ice/pwnagotchi/blob/5ff97c82b73a98a691c06c497ff8dabc505ecca3/pwnagotchi/defaults.toml#L52C1-L52C46 @diogo-abp-costa

Yes, I added that to my config.toml but with quotation marks in the value and the issue was gone.

aluminum-ice commented 12 months ago

@retiolus why would only that line have this problem? Plugins can and do have number valued config.toml entries. I didn't notice this breakage earlier because I always do a fresh install and don't use the auto-updater (I don't trust anything that auto-updates).

retiolus commented 12 months ago

@retiolus why would only that line have this problem? Plugins can and do have number valued config.toml entries. I didn't notice this breakage earlier because I always do a fresh install and don't use the auto-updater (I don't trust anything that auto-updates).

I don't know. But that line disappeared after my upgrade from 1.7.9 to 1.8.0 in my case. (Adding it didn't fix the problem)

joelnb commented 12 months ago

In my case I was able to fix it like this:

sed -i 's/main.plugins.wpa-sec-download_interval/main.plugins.wpa-sec.download_interval/' /usr/local/lib/python3.7/dist-packages/pwnagotchi/defaults.toml
touch /root/.pwnagotchi-auto && systemctl restart pwnagotchi

This was because in that defaults.toml file it had a - where there should have been a ..

I don't understand exactly how the upgrade plays into this because I'm not familiar with the upgrade code but my assumption is that defaults.toml was not updated by the upgrade - I can see this was fixed in git in https://github.com/aluminum-ice/pwnagotchi/commit/da12b10c0a80e4d0d20ee3e4c094ae6ca497a0d6

EDIT: In slightly more detail this caused an entry in the plugins dictionary like:

"wpa-sec-download_interval": 3600,

&

"wpa-sec": {
        "enabled": False,
        "api_key": "",
        "api_url": "https://wpa-sec.stanev.org",
        "download_results": False,
        "whitelist": [],
}

When both should be combined in the wpa-sec plugin section.

aluminum-ice commented 12 months ago

In my case I was able to fix it like this:

sed -i 's/main.plugins.wpa-sec-download_interval/main.plugins.wpa-sec.download_interval/' /usr/local/lib/python3.7/dist-packages/pwnagotchi/defaults.toml
touch /root/.pwnagotchi-auto && systemctl restart pwnagotchi

This was because in that defaults.toml file it had a - where there should have been a ..

I don't understand exactly how the upgrade plays into this because I'm not familiar with the upgrade code but my assumption is that defaults.toml was not updated by the upgrade - I can see this was fixed in git in da12b10

EDIT: In slightly more detail this caused an entry in the plugins dictionary like:

"wpa-sec-download_interval": 3600,

&

"wpa-sec": {
        "enabled": False,
        "api_key": "",
        "api_url": "https://wpa-sec.stanev.org",
        "download_results": False,
        "whitelist": [],
}

When both should be combined in the wpa-sec plugin section.

@retiolus It seems like some of the plugin changes you made need a new PR to correct this? Would you please submit a PR? I will merge it in quickly and release v1.8.1 that will hopefully resolve the breakage that happens by the auto-update.

retiolus commented 12 months ago

I already fixed the - and . issue here: https://github.com/aluminum-ice/pwnagotchi/commit/da12b10c0a80e4d0d20ee3e4c094ae6ca497a0d6 (two weeks ago)

And I can't find anywhere else in the code where "wpa-sec-download_interval" is mentioned and incorrectly written...

MykeHalk commented 12 months ago

It doesn't look like "main.plugins.wpa-sec.download_interval" is even being added to the config.toml. If you check the response from @buave his config doesn't contain it.

aluminum-ice commented 12 months ago

I may have to see if I can find time to create a branch and remove one by one the plugins that were added to see which one causes the problem. The evidence suggests its some odd interplay between the new plugins (or changes to them) and the auto-update plugin.

joelnb commented 12 months ago

In my case it was never in config.toml but was in /usr/local/lib/python3.7/dist-packages/pwnagotchi/defaults.toml and therefore copied to /etc/pwnagotchi/default.toml on each restart. As I had never edited that file before I assumed that the change where @retiolus fixed this issue was not being correctly applied by the upgrade process (despite the file being correct in this git repo).

I checked and after changing the - to . I have these differences compared to the git version:

 pwnagotchi/defaults.toml | 28 ----------------------------
 1 file changed, 28 deletions(-)

diff --git a/pwnagotchi/defaults.toml b/pwnagotchi/defaults.toml
index a03d099..47799b8 100644
--- a/pwnagotchi/defaults.toml
+++ b/pwnagotchi/defaults.toml
@@ -125,34 +125,6 @@ main.plugins.logtail.max-lines = 10000
 main.plugins.session-stats.enabled = true
 main.plugins.session-stats.save_directory = "/var/tmp/pwnagotchi/sessions/"

-main.plugins.mastodon.enabled = false
-main.plugins.mastodon.instance_url = ""
-main.plugins.mastodon.token = ""
-main.plugins.mastodon.visibility = "unlisted"
-
-main.plugins.ntfy.enabled = false
-main.plugins.ntfy.name = "pwnagotchi"
-main.plugins.ntfy.serverlink = ""
-main.plugins.ntfy.token = ""
-main.plugins.ntfy.priority = "3"
-main.plugins.ntfy.icon = "https://files.catbox.moe/1toze0.jpg"
-main.plugins.ntfy.on_internet_available_enabled = true
-main.plugins.ntfy.on_internet_available_title = ""
-main.plugins.ntfy.on_internet_available_msg = ""
-main.plugins.ntfy.on_internet_available_tags = ""
-main.plugins.ntfy.on_handshake_enabled = true
-main.plugins.ntfy.on_handshake_title = ""
-main.plugins.ntfy.on_handshake_msg = ""
-main.plugins.ntfy.on_handshake_tags = ""
-main.plugins.ntfy.on_peer_detected_enabled = true
-main.plugins.ntfy.on_peer_detected_title = ""
-main.plugins.ntfy.on_peer_detected_msg = ""
-main.plugins.ntfy.on_peer_detected_tags = ""
-main.plugins.ntfy.on_peer_lost_enabled = true
-main.plugins.ntfy.on_peer_lost_title = ""
-main.plugins.ntfy.on_peer_lost_msg = ""
-main.plugins.ntfy.on_peer_lost_tags = ""
-
 main.log.path = "/var/log/pwnagotchi.log"
 main.log.rotation.enabled = true
 main.log.rotation.size = "10M"

~So it seems I was missing every change made to that file since the 1.7.9 release. Therefore I think I was correct that the auto-updater has not updated that file at all (at least in my case).~

EDIT: Sorry I read the commit history wrong and these other changes seem to be from AFTER the 1.8.0 release so wouldn't be expected to be there. In which case I don't really understand but will try and look into it some more.

joelnb commented 12 months ago

I had a better look and if you extract the zip for the 1.8.0 release (which the updater uses) you will see it doesn't contain the fix @retiolus made.

You can also do this in the git repo:

git checkout 1.8.0
grep -r wpa-sec-download_interval

And see the fix is not there in the 1.8.0 tag.

EDIT: Or just look at that line in the 1.8.0 tag here.

kiraitachi commented 11 months ago

it a PR? I will merge it in quickly and release v1.8.1 that will hopefully resolve the breakage that happens by the auto-update.

I understand we will need to reflash manually if we are running onto this issue to get the 1.8.1version.

Thanks!

EDIT: Running the following FIXED IT for me

sed -i 's/main.plugins.wpa-sec-download_interval/main.plugins.wpa-sec.download_interval/' /usr/local/lib/python3.7/dist-packages/pwnagotchi/defaults.toml
touch /root/.pwnagotchi-auto && systemctl restart pwnagotchi
aluminum-ice commented 11 months ago

Marking as resolved.