I don't think the app initiates autolanding as stopping this behaviour would be as simple as killing the app. It's possible but unlikely.
I believe the app updates the dynamic NFZs and the aircraft figures out if it should land based on its GPS location. That's why I've observed this issue on more than one occasions when I got spotty Wi-Fi signal, being just outside of my house.
I will be able to test this behaviour this afternoon. Anyone who lives within an yellow NFZ could do the same by:
* Taking off
* Disable the authorisation of the yellow NFZ
* Kill the app before it forces landing
I expect that the aircraft will auto land regardless, but it's worth a try.
I have tested this and can confirm that unplugging/killing the app does not cancel the auto landing.
Based on this I'm quite confident that it is the aircraft that interprets the NFZs, the app only sends information about the NFZs as and when needed.
So to ensure that we do not get caught by the dynamic NFZs, one could simply fly in Airplane mode.
From a programming perspective, it makes more sense for DJI to only update its NFZ database when the aircraft is
not air-borne. These periods are:
* After the aircraft has landed
* After the app has started. We could guess that the app makes a reasonable assumption that user cannot take off before the app is connected which is generally correct, especially after firmware 800. However, it does not take into account app crashes.
Aside from having spotty connections, I believe the following situation will also cause a forced-landing:
* Taking off using a third-party app that does not support GEO System such as Litchi, in a yellow NFZ
* Close Litchi and open DJI Go
* The GEO System feature is enforced, the yellow NFZ now causes a forced landing that is triggered by the app